机器学习中的NLP文本相似性,它是如何工作的以及它背后的数学

minerzhu 2018-05-30

机器学习中的NLP文本相似性,它是如何工作的以及它背后的数学

看看这些句子对,你认为哪一对语句有类似的句子?

机器学习中的NLP文本相似性,它是如何工作的以及它背后的数学

你可能对前两项很有信心,但对前两项却没有那么大的信心。在现实中,你是对的,因为前两组的句子都是一样的(independently),所以很相似。然而,最后两组的句子谈论的是非常不同的事情,因此不会被视为类似的句子。

令人惊讶的是,NLP模型恰恰相反。根据文本相似性在NLP中的工作方式,最后两对中的句子非常相似,但不是前两个中的句子!

在开始判断NLP的能力之前,让我们看看它是如何工作的以及它背后的数学。那么,让我们看看机器如何看待这些句子!

句子1: “Global warming is here(全球变暖在这里)”

句子2: “Ocean temperature is rising(海洋温度正在上升)”

对于这两者来说,即使从机器的角度来看,也需要探索全新的语义分析维度,根据这两个维度,这两个句子非常相似。

现在,回到我们的NLP模型,现在是我们破解它的时候了!

步骤1:从两个句子中只选择唯一的单词,即等于7。

唯一词:global, warming, is, here, ocean, temperature, rising

步骤2:计算每个句子中唯一词的出现次数

分析句子1

global, 1

warming, 1

is, 1

here, 1

ocean, 0

temperature, 0

rising, 0

分析句子2

global, 0

warming, 0

is, 1

here, 0

ocean, 1

temperature, 1

rising, 1

简单的部分已经结束,在我们继续之前,您必须知道NLP的文本相似性是基于余弦相似性的。余弦相似度基本上是两个矢量之间角度的余弦。所以,我们想把句子转换成两个向量,我们已经完成了!

句子1的矢量: [1,1,1,1,0,0,0]

句子2的矢量: [0,0,1,0,1,1,1]

让我们想象这些矢量。

请注意,在我们的例子中,我们有一个7D矢量,并且由于无法将7D矢量可视化,我将向您展示两个3D矢量并解释工作。

机器学习中的NLP文本相似性,它是如何工作的以及它背后的数学

所以,这里我们有两个3D矢量[ 1,1,1 ]和[0,0,1]。你可以将这些向量想象成总共有3个独特单词的2个句子。在这里,[1,1,1]意味着所有3个唯一字在第一句中出现一次,而[0,0,1]意味着在第二句中只出现第三个唯一字。

我们只关心这两个向量之间的角度。两条线越接近,角度越小,因此相似度增加。所以,如果任何两个句子完全相似,那么在3D空间中只会看到一条线,因为这两条线会相互重叠。

机器学习中的NLP文本相似性,它是如何工作的以及它背后的数学

由于两个句子现在都有两个共同的词汇,所以相似度增加了

机器学习中的NLP文本相似性,它是如何工作的以及它背后的数学

完美匹配的2句话

我希望你能理解我们想要在这里实现什么或者NLP想要做什么的想法。所以,让我们回到我们的原始矢量并计算两者之间的余弦角。我们的载体:

句子1的矢量: [1,1,1,1,0,0,0]

句子2的矢量: [0,0,1,0,1,1,1]

测量2个矢量之间的角度

你需要知道的是这个公式:

机器学习中的NLP文本相似性,它是如何工作的以及它背后的数学

在分子中,我们有矢量的点积和分母中的两个矢量长度的乘积。

  • 1.让我们找出这个例子的dot product

The Formula -> (u1 * v1) + (u2 * v2) + ….. + (un * vn)

That’d be -> (1*0) + (1*0) +(1*1) +(1*0) +(1*0) +(1*0) +(1*0) = 1

  • 2.找到两个向量的长度:

机器学习中的NLP文本相似性,它是如何工作的以及它背后的数学

所以,现在我们必须计算:1/4等于0.25

总之,根据NLP文本的相似性,“ 全球变暖在这里 ”和“ 海洋温度在上升 ” 这两个句子只有25%的相似,这与语义分析所显示的完全相反。

现在,让我们快速执行相同的步骤来处理另外一对句子:

句子1: “This place is great(这个地方很棒)”

句子2: “This is great news(这是个好消息)”

独特的词语: this, is, great, place, news

句子1的矢量: [1,1,1,1,0]

句子2的矢量: [1,1,1,0,1]

将这些向量放入余弦公式中,得到0.75的值,即相似度为75%

请注意,角度越小,句子越相似。

因此,下一次当您考虑在项目中使用NLP文本相似性时,您会知道它的真实目的以及它与语义分析的不同之处。

相关推荐