当前位置: 首页 > news >正文

营销网站建设公司有哪些改革网首页

营销网站建设公司有哪些,改革网首页,广州推动优化防控措施落地,电子商务网站业务流程分析文本匹配应用 问答对话 信息检索 短文本 vs 短文本 知识库问答 ,聊天机器人等短文本 vs 长文本 文章检索,广告推荐等长文本 vs 长文本 新闻、文章的关联推荐等 智能问答基本思路技术路线价值FAQ知识库问答相关名词 1.问答对 一个(或多个相…
文本匹配应用
  • 问答对话
    0
  • 信息检索
    1
  • 短文本 vs 短文本
    知识库问答 ,聊天机器人等
  • 短文本 vs 长文本
    文章检索,广告推荐等
  • 长文本 vs 长文本
    新闻、文章的关联推荐等
智能问答
  • 基本思路
    0

  • 技术路线
    0
    1
    2

  • 价值
    0

  • FAQ知识库问答
    0
    1
    2

  • 相关名词
    1.问答对
    一个(或多个相似的)问题与它对应的答案
    2.faq库/知识库
    很多问答对组成的集合
    3.标准问
    每组问答对中的问题,有多个时,为其中代表
    4.相似问/扩展问
    问答对中,标准问之外的其他问题
    5.用户问
    用户输入的问题
    6.知识加工
    人工编辑faq库的过程

  • 运行逻辑
    0

  • 算法核心
    0

文本匹配算法-编辑距离

0
1
2

文本匹配算法-Jaccard相似度

0
1

文本匹配算法-BM25算法

0
1
2
3

  • 优点:
    1.通过使用TF·IDF弱化了无关词的影响,强化了重要词的影响,使得效果大幅提升
    2.统计模型计算快,不需要迭代
    3.词袋模型*、跨语种等
  • 缺点:
    1.依然没有考虑词与词之间的相似性
    2.需要一定量的训练(统计)样本(faq库本身)
    3.对于新增类别,需要重新计算统计模型
    4.分值未归一化
文本匹配算法-word2vec

0
1

  • 优点:
    1.两个文本包含语义相似的词,会提高相似度
    2.训练需要的数据简单(纯文本语料即可)
    3.计算速度快,可以对知识库内问题预先计算向量
    4.将文本转化为数字,使后续复杂模型成为可能
  • 缺点:
    1.词向量的效果决定句向量效果
    2.一词多意的情况难以处理(梨-苹果-华为)
    3.受停用词和文本长度影响很大(也是词袋模型)
    4.更换语种,甚至更换领域,都需要重新训练
问答系统案例

0

<similarity_function.py>

import numpy as np
'''
包含编辑距离和jaccard相似度的实现
'''
#编辑距离
def editing_distance(string1, string2):matrix = np.zeros((len(string1) + 1, len(string2) + 1))for i in range(len(string1) + 1):matrix[i][0] = ifor j in range(len(string2) + 1):matrix[0][j] = jfor i in range(1, len(string1) + 1):for j in range(1, len(string2) + 1):if string1[i - 1] == string2[j - 1]:d = 0else:d = 1matrix[i][j] = min(matrix[i - 1][j] + 1, matrix[i][j - 1] + 1, matrix[i - 1][j - 1] + d)return matrix[len(string1)][len(string2)]def editing_similarity(string1, string2):return 1 - editing_distance(string1, string2)/ max(len(string1), len(string2))#jaccard相似度
def jaccard_similarity(string1, string2):words1 = set(string1)words2 = set(string2)s = len(words1 & words2) / len(words1 | words2)return s

<QA_system.py>

import os
import json
import jieba
import numpy as np
from bm25 import BM25
from similarity_function import editing_similarity, jaccard_similarity
from gensim.models import Word2Vec
'''
基于faq知识库和文本匹配算法进行意图识别,完成单轮问答
'''
class QASystem:def __init__(self, know_base_path, algo):''':param know_base_path: 知识库文件路径:param algo: 选择不同的算法'''self.load_know_base(know_base_path)self.algo = algoif algo == "bm25":self.load_bm25()elif algo == "word2vec":self.load_word2vec()else:#其余的算法不需要做事先计算passdef load_bm25(self):self.corpus = {}for target, questions in self.target_to_questions.items():self.corpus[target] = []for question in questions:self.corpus[target] += jieba.lcut(question)self.bm25_model = BM25(self.corpus)#词向量的训练def load_word2vec(self):#词向量的训练需要一定时间,如果之前训练过,我们就直接读取训练好的模型#注意如果数据集更换了,应当重新训练#当然,也可以收集一份大量的通用的语料,训练一个通用词向量模型。一般少量数据来训练效果不会太理想if os.path.isfile("model.w2v"):self.w2v_model = Word2Vec.load("model.w2v")else:#训练语料的准备,把所有问题分词后连在一起corpus = []for questions in self.target_to_questions.values():for question in questions:corpus.append(jieba.lcut(question))#调用第三方库训练模型self.w2v_model = Word2Vec(corpus, vector_size=100, min_count=1)#保存模型self.w2v_model.save("model.w2v")#借助词向量模型,将知识库中的问题向量化self.target_to_vectors = {}for target, questions in self.target_to_questions.items():vectors = []for question in questions:vectors.append(self.sentence_to_vec(question))self.target_to_vectors[target] = np.array(vectors)# 将文本向量化def sentence_to_vec(self, sentence):vector = np.zeros(self.w2v_model.vector_size)words = jieba.lcut(sentence)# 所有词的向量相加求平均,作为句子向量count = 0for word in words:if word in self.w2v_model.wv:count += 1vector += self.w2v_model.wv[word]vector = np.array(vector) / count#文本向量做l2归一化,方便计算cos距离vector = vector / np.sqrt(np.sum(np.square(vector)))return vectordef load_know_base(self, know_base_path):self.target_to_questions = {}with open(know_base_path, encoding="utf8") as f:for index, line in enumerate(f):content = json.loads(line)questions = content["questions"]target = content["target"]self.target_to_questions[target] = questionsreturndef query(self, user_query):results = []if self.algo == "editing_similarity":for target, questions in self.target_to_questions.items():scores = [editing_similarity(question, user_query) for question in questions]score = max(scores)results.append([target, score])elif self.algo == "jaccard_similarity":for target, questions in self.target_to_questions.items():scores = [jaccard_similarity(question, user_query) for question in questions]score = max(scores)results.append([target, score])elif self.algo == "bm25":words = jieba.lcut(user_query)results = self.bm25_model.get_scores(words)elif self.algo == "word2vec":query_vector = self.sentence_to_vec(user_query)for target, vectors in self.target_to_vectors.items():cos = query_vector.dot(vectors.transpose())# print(cos)results.append([target, np.mean(cos)])else:assert "unknown algorithm!!"sort_results = sorted(results, key=lambda x:x[1], reverse=True)return sort_results[:3]if __name__ == '__main__':qas = QASystem("data/train.json", "word2vec")question = "话费是否包月超了"res = qas.query(question)print(question)print(res)## while True:#     question = input("请输入问题:")#     res = qas.query(question)#     print("命中问题:", res)#     print("-----------")
文本匹配-深度学习

http://www.dtcms.com/a/441263.html

相关文章:

  • 成都销售型网站wordpress修改地址
  • hge网站做微端酷万网站建设
  • 北京华夏网站建设设计公司常见的cms系统
  • pk10代码网站开发wordpress 七牛cdn
  • 房产中介网站建设模板seo排名优化教程
  • 做网站工资还没有文员高私域流量代运营公司
  • 图片类网站开发需求高德地图不显示菲律宾
  • 蘑菇街网站怎么做网站开发雷小天
  • 做淘宝保健品药品在哪个网站找素材做网站的风险分析
  • 汕头网站外包安微省建设厅田网站
  • Html5做旅游网站的设计思路建站系统主要包括
  • 做网站属于什么技术wordpress 国外空间
  • 网站开发与设计实训总结两千字基础网页制作
  • 网站基本建设投资内容做网站的系统
  • 杨幂做的网站广告做瑞士网站
  • 外贸网站定制公司哪家好新绛做网站
  • 东莞陈村网站制作登录网站显示系统维护怎么做
  • flash制作网站top溧水城市建设招标网站
  • 金科科技 做网站注册安全工程师好考吗难度大吗
  • 郑州网站建设(智巢)室内设计ppt模板免费
  • 开淘宝的店铺网站怎么做网站地图作用
  • 查网课答案的网站怎么做图片展示类网站
  • 企业网站哪家做得好专业建设规划方案模板
  • 什么网站做美式软装设计理念修改wordpress评论
  • 怎么做电影网站服务器什么网比较好
  • 搭建网站一般要多少钱蜂聘网360建筑网
  • 网站开发的实训内容网站制作与发布
  • 网站内容页相关性怎么做如何建设彩票私人网站
  • 高端网站建设必须要满足哪些要求p2p网站建设价格
  • 站酷网入口网站制作文章