【问题标题】:How similar a sentence is to each sentence in a vector of strings [duplicate]一个句子与字符串向量中的每个句子有多相似[重复]
【发布时间】:2018-10-01 06:21:21
【问题描述】:

我正在尝试获得一种算法,该算法可以告诉您两个句子之间的相似度百分比。我正在考虑创建一个字符向量。对于句子中的每个字符,将其与另一个句子中的所有其他字符进行比较。那么字符总数与字符总数相同的字符数应该给我那个%......但是如果你们有更快,更有效的方法来做到这一点。那么将不胜感激。

【问题讨论】:

  • 您应该只选择一种标签语言。您的问题可能会因此而关闭
  • 定义“相似”——如果有人用的是puppy而不是dog,你会因为puppy偏移的所有字母而惩罚他们吗?如果有人使用杀戮而不是拥抱,你想强调意义的不同吗?
  • 看起来您在定义某物是什么之前就开始考虑一种算法来计算某物。首先确定您所说的“相似度百分比”确切是什么意思。

标签: c++


【解决方案1】:

您可以使用 Levenshtein 距离来计算两个字符串之间的相似性 - 请参阅 https://en.m.wikipedia.org/wiki/Levenshtein_distance 了解更多信息

【讨论】:

    【解决方案2】:

    您正在寻找的可能是Vector Space Model [wiki link] 等算法。这是网络搜索引擎用来为用户输入的字符串提供相关网站的常用算法。

    它不是做这种事情的唯一算法(比较文本并给出相似性值),但它们中的大多数并不太复杂,并且已经有 C++ 库可以有效地实现它们,例如 @987654322 @ 或 Xapian。如果你跳过他们的文档,你几乎肯定会发现一个函数,它只接受两个字符串并返回它们语义相似性的标量表示。

    【讨论】:

      猜你喜欢
      • 2021-07-05
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 2019-11-27
      • 1970-01-01
      • 2016-12-22
      • 2013-04-11
      • 1970-01-01
      相关资源
      最近更新 更多