比较两个词的相似度量

时间:2018-06-08 10:00:04

标签: algorithm similarity measure

问题:
除了使用Levenshtein算法之前或之后的“ae”和“æ”之外,是否有可能比较“Hollændervej”和“Hollaedervej”?它是关于某种相似性的衡量标准。

这个背景是关于使æ和ae相等取决于你检索的单词。

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

*我相信你需要的不仅仅是Levenshtein算法才能解决它。

*你还有另外一个词是“Göteborg”和“Goteborg”,“Vårveien”,“Varveien”,“MARKEDSFØRING”,“MARKEDSFORING”,“Rhrts vei”和“Røhrtsvei”,“Sjurs?ya”和“Sjursøya” 这是关于每个国家不是普通信的信件。

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

谢谢!

2 个答案:

答案 0 :(得分:0)

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

现在你需要根据单词的字母有一个你认为相似的“相似”字符的字典。 例如æ映射到{a,e}。 现在检查路径中的这些特殊字符。 例如,您的路径如下所示:del a - > insertæ - > del e,那么你需要寻找它的相邻条目(left = a,right = e或left = a,left = b或right = a,right = b)。 如果它们与字典中的值中的内容匹配,那么就会有相似之处并继续检查您的路径。

答案 1 :(得分:0)

我的建议是在进行比较之前你normalize这些词。这在字符串搜索中是相当常见的事情。例如,将字符串转换为大写或小写,删除标点符号,将变音符号转换为非装饰等效符号等。

我们的想法是制定减少所用字母表的规则。您将这些规则应用于每个单词。例如,一条规则可能是“将'ö'改为'o'”或“将'æ'改为'ae'。”

一旦你对字符串进行了规范化,你就可以更容易地将它们比作“相等”。