我正在尝试使用Spacy Library来判断句子的相似性,我想了解它是如何工作的??
他们的文件不清楚:
默认情况下,spaCy使用平均向量算法 预训练的矢量(如果可用)(例如en_core_web_lg模型)。如果 不是,使用了doc.tensor属性,该属性由 标记器,解析器和实体识别器。这是en_core_web_sm的方法 模型提供了相似之处。通常是基于.tensor的相似之处 将更具结构性,而单词矢量相似性将是 更热门。您还可以自定义.similarity()方法 提供您自己的相似功能,可以使用 监督技术。
我发现了这个问题:How does the .similiarity method works?说它使用了单词嵌入,但在我的实现中我没有“en_core_web_lg模型”但我有en_core_web_sm,所以这样计算相似度是多少“标记器,解析器和实体识别器”?
答案 0 :(得分:0)
仔细阅读文档,我认为您可以找到要搜索的内容。
首先,一个doc对象包含许多令牌。 doc的向量是令牌向量的平均值。
现在,什么是令牌的矢量?如果使用md
或lg
模型,这意味着,token.vec
给你标记向量,这实际上是一个手套矢量。如果您使用的是sm
模型,然后将文件说,该载体包含结构信息。这意味着具有相同PoS标签和相似DEP行为的令牌将具有比其他令牌更高的相似性分数,即使它们的语义完全不同。
如果您不打算以此为语义,那么一般的评论是不要对sm
模型使用相似性方法,因为您很可能会得到不准确的结果。