algorithm - 比较两个词的相似度

标签 algorithm similarity measure

问题:
是否有可能比较“Hollændervej”和“Hollaedervej”除了使用 Levenshtein 算法之后或之前的“ae”和“æ”之外是否相似?是关于某种程度的相似性吗?

此上下文是关于使 æ 和 ae 相等取决于您检索的单词。

其他信息:
*使用 Levenshtein 算法后比较单词“Økernveien”和“Okernveien”是否更容易,因为您的差异值为 1,尤其是在单词的开头。
为了比较它,您只需删除第一个字母。 比较“Hollændervej”和“Hollaedervej”比“Økernveien”和“Okernveien”更难。

*我相信您需要的不仅仅是 Levenshtein 算法来解决它。

*您还有另一个词是“Göteborg”和“Goteborg”、“Vårveien”、“Varveien”、“MARKEDSFØRING”、“MARKEDSFORING”、“Rhrts vei”和“Røhrts vei”、“Sjurs?ya”和“Sjursøya” 这是关于在每个国家都不是通用字母的字母..

我还要感谢为改进信息内容提供反馈的人们。

谢谢!

最佳答案

我认为您需要在执行 Levenshtein 距离后做一些额外的工作。首先,您应用 Levenshtein 算法来计算距离。这将提供将一个字符串转换为另一个字符串所需的最少编辑。但是你需要跟踪最小编辑路径。例如,如果您正在将 Hollændervej 转换为 Hollaedervej,最小编辑路径可能如下所示:del->insert->insert 或 insert->delete->insert,基本上保留跟踪您删除、插入、替换的字符。

现在你需要有一个字典,里面有你认为根据单词字母表相似的“相似”字符。 例如 æ 映射到 {a,e}。 现在检查路径中的这些特殊字符。 例如你的路径看起来像:del a -> insert æ -> del e,那么你需要寻找它的相邻条目(left = a, right = e or left = a, left = b or right = a, right = b). 如果它们与您在字典中的值中的内容匹配,则存在相似性并继续检查您的路径。

关于algorithm - 比较两个词的相似度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50758098/

相关文章:

java - 用于严格文档相似度的文本相似度函数

nlp - 查找相似/相关文本算法

html - 如何测量带空格的文本 : pre on canvas?

filter - 根据计数和存储值的组合计算百分比 - Power BI

c# - 测量 RichTextBox 控件中的字符串

java - 帮助算法优化

python - lambda 与列表理解性能

c# - 从邻接表创建树的最有效方法

arrays - 算法:如何对具有空间约束的矩阵元素进行排序

search - 您如何有效地实现文档相似性搜索系统?