NLP(3): 问答系统介绍,文本处理流程

1、P vs NP vs NP Hard vs NP Complete

按照时间复杂度将问题分类 ,p是常数

  • 多项式复杂度 O(p^n) :不可以解决的问题,归类于NP Hard/Np Complete
    1、对于小型的问题,仍然可以采用

NP: 可以在多项式复杂度内可以verify的,给定一个解,判断这个解是不是想要的。评估解的过程只需要多项式复杂度,是个判断过程。

2、approximate algorithm:不保证获得精确的解
- 提出近似算法
- 指出时间复杂度多少
- 给出近似算法最后给出的解离我们想要的最优解有多远

3、使用量子计算

  • 指数级复杂度 O(n^p) :可以解决的问题,归类为p问题

n ! ≈ 2 n n! \approx 2^n n!2n

2、问答系统介绍:

NLP(3): 问答系统介绍,文本处理流程_第1张图片

NLP(3): 问答系统介绍,文本处理流程_第2张图片

  • 用户输入一个问题
  • 计算和语料库中的常见问题的相似度
    计算相似度
    • 正则
    • 字符串相似度
  • 选择相似度最高的问题,输出回答

基于搜索的问答系统, 对于输入的问题

step 1 对于question的预处理

  • 1、spell correction:拼接纠错
  • 2、stering lennezation ,where,go,going,同义词不同时代
  • 3、stop-words:截至词
  • 4、words filtering:过滤掉一些特殊符号 < html >
  • 5、同义词

step 2:做文本表示,将文本变成向量

  • boolean vector(0,1,1,0)
  • count vector(1,2,)词出现的个数
  • tf-idf 考虑了词频,但无法反映序列信息以及一词多义的情况
  • word2vec
  • sequence2sequence模型,直接计算出向量

做倒排索引,使得计算文本相似度的过程的时间复杂度小于O(N)

step3: 计算相似度

  • 欧氏距离
  • 余弦相似度
  • Jaccard similarity

step 4:根据相似度的排序,返回结果

选择相似度最大的question对应的answer

问答系统的核心

  • 文本的表示
  • 如何计算相似度

对于知识图谱的核心

  • 实体抽取
  • 关系抽取

3、巴普洛夫的狗

NLP(3): 问答系统介绍,文本处理流程_第3张图片

4、斯金纳的鼠——强化学习

NLP(3): 问答系统介绍,文本处理流程_第4张图片

5、文本处理的流程:

NLP(3): 问答系统介绍,文本处理流程_第5张图片

  • 分词
    中/英
  • 清洗
    1、无用的标签
    2、特殊符号
    3、停用词
    4、大写转小写
  • 标准化:把多个单词合成一个单词
    apple,apples=>apple
    go,went,gone,go=> go
  • 建模:modeling
    评估

你可能感兴趣的:(机器学习,深度学习,python,nlp)