【发布时间】:2016-12-29 05:19:55
【问题描述】:
我正在尝试计算 2 个句子之间的相似度,所以我有 2 组单词,每个单词代表一个句子,以及一个函数 (F),它接收两个单词并以某种方式返回它们之间的相似度..
在图1中,黑色圆圈是句子A的单词,红色方块代表句子B。 对于每个时间函数(F)接收到 2 个词,它返回一个介于 0.0 和 1.0 之间的值,例如:A 中的第一个词和 B 中的第三个词有 0.3 的相似度分数。 我使用了 M x N 比较,因为两个句子的顺序经常不一样,而且单词的数量也不同。
我的问题是:
在获得所有 M x N 比较分数后,我如何才能获得决赛 分数在 0.0 和 1.0 之间,表示两者的相似性 句子或列表? "因为两个句子的长度并不总是 相等"。
如果这种方法不正确,还有什么替代方法?
【问题讨论】:
-
有趣。你是如何定义相似的?
-
我不认为你想做什么很清楚。你有相似度分数的矩阵吗?我不确定 M x N 比较应该是什么意思。问题是否与某些“相似性”主题或数学有关?也许缺乏“相似性”经验的人仍然可以提供帮助。
-
仅对 8 个数字求平均有什么问题?
-
“我喜欢烹饪我的家人和我的宠物”和“我喜欢烹饪,我的家人和我的宠物”非常相似。他们使用相同的词,以相同的顺序。但它们的含义非常不同。
-
有趣。如果你在解析语法,你的句子可能有主语、动词和宾语。主语有名词或代词(或两者都有连词),其中可能有形容词。动词可以有副词。宾语类似于主语(名词、形容词等)。我认为您想要一棵单词树,而不是向量!基于树结构的相似性,因此不会比较使用不同的相同单词。
标签: java math vector similarity