文本上的算法读书笔记五--nlp的需要知道的术语

搜索引擎的基本的术语

1.tf/df/idf

tf是词频,就是某个词的出现的次数,表示的是一个词的局部信息。

df是文档频率,就是指某个词的文档频率,这个词在多少个文档中出现。

idf是逆文档频率,它是词重要性的一个很好的衡量。计算如下:

在大量语料库中统计的,所以一般表示一个词的全局信息。

2.pagerank

pagerank用来衡量网页重要性的一个指标。

核心思想是投票原则。如果指向某个网页的链接非常多且质量很高,那么该网页的质量也就很高。计算公式:

网页链向网页A,C(A)表示网页A的外链数量,d是阻尼系数(0<d<1),PR(A)就表示网页A的pagerank值。

5.3 相似度计算

搜索引擎中计算query和文档的相似度,问答系统中计算问题和答案的相似度,广告系统中计算query和广告词的匹配程度?

推荐系统中要给某个用户推荐某件物品,是否要计算这件物品和这个用户兴趣的相似度呢?

相似度是指Q和D的相似度。计算相似度,抽象成数学形式。一般会表示成向量或矩阵。

1.距离方法

余弦距离,欧式距离,汉明距离,明氏距离,曼哈顿距离,Jaccard距离和Jaccard相似系数,皮尔森相关系数,编辑距离等等。

编辑距离是指两个串,由一个变成另一个所需的最少的编辑次数,这个编辑包括:替换,插入,删除操作。

余弦公式如下:

接近1越相似。

皮尔森相关系数在推荐系统中用的也比较多:

是Q和D的平均距离,-1到1

2.Hash方法

minhash和simhash.

minhash降维,基于结论为:两个集合经随机转换后得到的两个最小hash值相等的概率等于两集合的Jaccard相似度。

simhash是设计一个hash,使得内容相近的事情生成的hash签名也相近。

文本中的模型

1.bool模型

向量量化,计算Q和D的余弦相似度。

2.tf*idf模型

bool模型只考察词是否出现,但是没有考虑到词的贡献,出现的位置就是tf*idf。利用了词的和局部信息tf和全局信息idf。

3.BM25模型(增加了长度特征)

if*idf对bool模型有了优化,但是用到了tf,那么句子越长,潜在的tf就越大,长句子会沾光。多利用一个长度信息。

k1,b是参数,是文档长度,avgdl是文档平均长度。

4.Proximity模型(增加了位置信息)


比如老大/的/幸福和老大/的/幸福以及幸福/的/老大。分数一样,但是D1要比D2的相似度要高啊,接着优化,加入位置特征。

5.语义特征模型(增加了Topic特征)

关键词模型,必须词严格一样,比如计算机/好用和电脑/好用,相似度为0,但是或多或少是有相似度的啊,

加上语义特征模型。主题模型,用的语义模型和关键词加权。

就是关键词模型,就是语义相似度模型。

计算方法1:

计算方法2:

计算权重为:

计算方法3:

主题分布的相似度,直接计算的相似度。

计算方法4:

KL距离衡量。KL不满足对称性,只有用两个,才能得分相同:

6.句法特征模型(增加了句法特征)

两个句子A(我的显示器的颜色)和B(我的显示器变颜色),以上模型分数都不低,但是意思完全不一样,加入句法特征来优化,加入句子的句法树的匹配程度。

7.深度表示模型(增加语义特征)

词表示成向量,句子表示成向量,计算相似度

论文《Learning Deep Structured Semantic Models for Web Search using Clickthrough Data》

提出将句子逐层表示成语义空间的特征向量,然后计算句子的相似度。

有监督学习,标注一批相似的问题对,目标函数是

句子相似度算法是由多个模型共同组成的。一个是深度学习就是ReNN模型。在句法关系上坐标是

x是词的向量,W是每种关系及每个词对应的参数,h是隐藏层,它的计算如下:

或者用LSTM表示句子向量,其他的训练方式和目标函数都是一样的。

不光可以用来计算句子相似度,还可以对问题和答案进行排序。

还需要结合起亚模型(词向量、互信息、同反义词等)

猜你喜欢

转载自blog.csdn.net/qq_24495287/article/details/83015741