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、问答系统介绍:
- 用户输入一个问题
- 计算和语料库中的常见问题的相似度
计算相似度- 正则
- 字符串相似度
- 选择相似度最高的问题,输出回答
基于搜索的问答系统, 对于输入的问题
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、巴普洛夫的狗
4、斯金纳的鼠——强化学习
5、文本处理的流程:
- 分词
中/英 - 清洗
1、无用的标签
2、特殊符号
3、停用词
4、大写转小写 - 标准化:把多个单词合成一个单词
apple,apples=>apple
go,went,gone,go=> go - 建模:modeling
评估