NLP:词中的数学( 八 )


余弦相似度为1表示两个归一化向量完全相同 , 它们在所有维度上都指向完全相同的方向 。 此时 , 两个向量的长度或大小可能不一样 , 但是它们指向的方向相同 。 记住在计算上述余弦相似度时 , 两个向量的点积除以每个向量的模的计算可以在点积之前或之后进行 。 因此 , 归一化向量在计算点积时它们的长度都已经是1 。 余弦相似度的值越接近于1 , 两个向量之间的夹角就越小 。 对于余弦相似度接近于1的NLP文档向量 , 我们知道这些文档应该使用了比例相近的相似词 。 因此 , 那些表示向量彼此接近的文档很可能涉及的是同一主题 。
余弦相似度为0表示两个向量之间没有共享任何分量 。 它们是正交的 , 在所有维度上都互相垂直 。 对于NLP中的词频向量 , 只有当两篇文档没有公共词时才会出现这种情况 。 因为这些文档使用完全不同的词 , 所以它们一定在讨论完全不同的东西 。 当然 , 这并不意味着它们一定就有不同的含义或主题 , 而只表明它们使用完全不同的词 。
余弦相似度为?1表示两个向量是反相似(anti-similar)的 , 即完全相反 , 也就是两个向量指向完全相反的方向 。 对于简单的词频向量 , 甚至是归一化的词频(词项频率)向量(我们稍后将讨论) , 都不可能会发生这种情况 。 因为词的数目永远不会是负数 , 所以词频(词项频率)向量总是处于向量空间的同一象限中 。 没有词项频率向量可以偷偷进入其他向量尾部后面的象限 。 词项频率向量的分量不可能与另一个词项频率向量分量的符号相反 , 这是因为频率不可能是负数 。
在本章中 , 对于自然语言文档的向量对 , 我们不会看到任何负的余弦相似度的值 。 但是在下一章中 , 我们会给出互相“对立”的词和主题的某个概念 , 这表现为文档、词和主题之间的余弦相似度小于零 , 甚至等于?1 。
异性相吸
上述计算余弦相似度的方法会带来一个有趣的结果 。 如果两个向量或文档都与第三个向量的余弦相似度为?1(即与第三个向量完全相反) , 那么它们一定完全相似 , 一定是完全相同的两个向量 。 但是 , 这两个向量所代表的文档可能并不完全相同 。 不但词的顺序可能会被打乱 , 而且如果它们使用相同词的比例相同 , 那么其中一篇文档可能比另一篇长得多 。
后面 , 我们将针对更精确地对文档建模而构建文档向量 。 但是现在 , 我们已经很好地介绍了所需的工具 。
本文摘自《自然语言处理实战》
NLP:词中的数学文章插图
本书是介绍自然语言处理(NLP)和深度学习的实战书 。 NLP已成为深度学习的核心应用领域 , 而深度学习是NLP研究和应用中的必要工具 。 本书分为3部分:第一部分介绍NLP基础 , 包括分词、TF-IDF向量化以及从词频向量到语义向量的转换;第二部分讲述深度学习 , 包含神经网络、词向量、卷积神经网络(CNN)、循环神经网络(RNN)、长短期记忆(LSTM)网络、序列到序列建模和注意力机制等基本的深度学习模型和方法;第三部分介绍实战方面的内容 , 包括信息提取、问答系统、人机对话等真实世界系统的模型构建、性能挑战以及应对方法 。
【NLP:词中的数学】本书面向中高级Python开发人员 , 兼具基础理论与编程实战 , 是现代NLP领域从业者的实用参考书 。


推荐阅读