当前位置: 首页 > 面试题库 >

估算句子之间“近似”语义相似性的一些好方法是什么?

韩恺
2023-03-14
问题内容

在过去的几个小时中,我一直在查看SO上的nlp标签,并且我有信心没有任何遗漏,但是如果我错过了,请指出我的问题。

在此同时,我将描述我要做什么。我在许多帖子中观察到的一个常见概念是语义相似性很困难。例如,从这篇文章中,接受的解决方案建议以下内容:

First of all, neither from the perspective of computational 
linguistics nor of theoretical linguistics is it clear what 
the term 'semantic similarity' means exactly. .... 
Consider these examples:

Pete and Rob have found a dog near the station.
Pete and Rob have never found a dog near the station.
Pete and Rob both like programming a lot.
Patricia found a dog near the station.
It was a dog who found Pete and Rob under the snow.

Which of the sentences 2-4 are similar to 1? 2 is the exact 
opposite of 1, still it is about Pete and Rob (not) finding a 
dog.

我的高级要求是利用k-
means聚类并基于语义相似性对文本进行分类,因此我所需要知道的是它们是否是近似匹配。例如,在上面的示例中,我可以将1,2,4,5归为一类,将3归为另一类(当然,将使用更多类似的句子来备份3)。可以找到相关的文章,但不必100%相关。

我认为我最终需要构建每个句子的向量表示形式,有点像它的指纹,但是这个向量究竟应该包含什么仍然是我的一个悬而未决的问题。它是n-
gram,还是词网中的某些东西,或者只是单个词干的单词,还是其他所有东西?

该线程在枚举所有相关技术方面做得非常出色,但不幸的是,当帖子达到我想要的功能时就停止了。关于该领域的最新技术有何建议?


问题答案:

潜在语义建模可能很有用。基本上,这只是奇异值分解的另一个应用。SVDLIBC是此方法的一个不错的C实现,虽然有点老套,但甚至还有python绑定,形式是sparsesvd。



 类似资料:
  • 问题内容: 我有一个示例熊猫数据框df: 第二个df1: 我想获取不与df1重叠的df子集。实际上,我正在寻找SQL中EXCEPT操作数的等效项。 我使用了减去()函数-但这显然是错误的,因为减法执行逐元素的数值减法。所以我收到一条错误消息: 因此,问题是:熊猫SQL中的EXCEPT等效项是什么? 问题答案: 我认为您首先需要所有字符串列: 或者: 通过修改后的问题进行编辑:

  • 问题内容: 在哪里可以找到比levenshtein()和php same_text()方法更准确地估计错位字符的拼写的算法? 例: /乔纳斯 问题答案: 这是我提出的解决方案。它基于蒂姆的建议,即比较后续角色的顺序。一些结果: jonas / jonax : 0.8 jonas / sjona : 0.68 jonas / sjonas : 0.66 jonas / asjon : 0.52 jo

  • 本文向大家介绍相似度的计算方法了解哪些,各自的优缺点是什么? 相关面试题,主要包含被问及相似度的计算方法了解哪些,各自的优缺点是什么? 时的应答技巧和注意事项,需要的朋友参考一下 1.皮尔逊相关系数 反映的是两个变量之间的线性相关性,它的一个缺点是针对用户之间只有一个共同的评分项不能进行比较,另外没有考虑重叠的评分项数量对相似度的影响 2.欧几里得距离 描述两个变量之间的直线距离,当两个变量至少有

  • 问题内容: 正如问题所暗示的,我想知道线程上的sleep和join方法之间的相似性。我经历了许多描述睡眠和加入方法之间差异的问题。但是我想知道不同的场景,在这些场景中,睡眠和加入方法可以互换使用。根据我的想法,以下代码应该以相同的方式工作。我有一个主线程,在其中启动了一个新线程(仅1个),并且我希望主线程等待新线程完成一段时间。代码如下: 要么, 但是,当我运行这段代码时,没有得到预期的结果。为什

  • 我正在尝试了解java序列化机制,我几乎没有疑问 请回答以下有关java序列化的问题: < li >为什么使用< code > OOS . defaultwriteobject();?根据这篇文章,这是为了向后兼容。我不太明白它是怎么做到的。序列化的一个不兼容的变化是在新版本中删除一个字段。这意味着旧版本将不得不设置缺省值,这些值有时对用户无效。这与新版本添加新字段并允许设置缺省值有何不同? <

  • 本文向大家介绍多项式时间近似方案,包括了多项式时间近似方案的使用技巧和注意事项,需要的朋友参考一下 多项式时间近似方案 我们可以找到一些关于NP完全问题的多项式时间解,例如0-1背包问题或子集和问题。这些问题在现实世界中非常流行,因此必须有一些方法来解决这些问题。 多项式时间近似方案(PTAS)是一种用于优化问题的近似算法。对于0-1背包问题,有一个伪多项式解决方案,但是当值较大时,该解决方案不可