https://www.cnblogs.com/xlturing/category/884163.html
一个大神的博客,虽然NLP的内容讲得不多,但是很有收货,mark一下!
1. 如何计算文本相似度?
http://www.cnblogs.com/xlturing/p/6136690.html
字面距离:
编辑距离(莱文斯坦距离):指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。
SimHash:分词(按照重要程度给每个词定权重), hash, 加权, 合并, 降维。
汉明距离:两个等长字符串之间的汉明距离(英语:Hamming distance)是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。
语义相似性:
词向量
主题模型
词嵌入
2. 分词,基于词典的分词方法
动态规划求解法
满足dp的条件有两个
- 重复子问题
- 最优子结构
我们来分析最大概率路径问题。
重复子问题
对于结点Wi和其可能存在的多个后继Wj和Wk,有:
- 任意通过Wi到达Wj的路径的权重为该路径通过Wi的路径权重加上Wj的权重{Ri->j} = {Ri + weight(j)} ;
- 任意通过Wi到达Wk的路径的权重为该路径通过Wi的路径权重加上Wk的权重{Ri->k} = {Ri + weight(k)} ;
最优子结构
对于整个句子的最优路径Rmax和一个末端节点Wx,对于其可能存在的多个前驱Wi,Wj,Wk…,设到达Wi,Wj,Wk的最大路径分别为Rmaxi,Rmaxj,Rmaxk,有:
Rmax = max(Rmaxi,Rmaxj,Rmaxk…) + weight(Wx)
于是问题转化为:
求Rmaxi, Rmaxj, Rmaxk…
组成了最优子结构,子结构里面的最优解是全局的最优解的一部分。
很容易写出其状态转移方程:
Rmax = max{(Rmaxi,Rmaxj,Rmaxk…) + weight(Wx)}