【发布时间】:2017-08-21 15:57:06
【问题描述】:
我正在寻找一种方法来根据它们的共享字母来检测单词(文本字符串)的相似性。
我正在研究 Hash 函数,尤其是 Rabin-Karp 算法,以在较大的字符串中找到相似的单词。
但它不适用于我想要的情况: 在我的案例中,我根据德国银行认为“相似”的三个例子: 有“德意志银行”、“邮政银行”和“国家银行”。这三个人的名字中都有“银行”这个词,但只有德意志银行把它作为一个单独的词。 所以基本上是根据它们的共同特征来衡量单词的相似度。 我认为应该有一个限制,如果可能的话,应该只考虑 >=4 个字符的相似性。
如果我只是在寻找“银行”这个词,我会硬编码一些东西。但是我正在寻找一种方法来找到这种相似的名称/字符串而不知道它。
【问题讨论】:
-
一个例子不足以定义您的问题。相似性度量需要更严格的定义。仅仅相似性可能还不够;您认为“automation”和“Claymation”(6 个字母)比“Deutche Bank”和“Bank of England”(4 个字母)更相似吗?你关心短语中的位置吗?你如何确定短语? ...简而言之,这还不足以得到一个体面的答案。
-
您认为“automation”和“Claymation”(6 个字母)比“Deutche Bank”和“Bank of England”(4 个字母)更相似吗? ======== 是的,在我的情况下会更相似。
-
很好...但是如何,为什么,...您仍然需要定义问题,而不仅仅是举一个例子。如果您只需要找到最长的常用字母字符串,那么您在发布之前所做的研究已经发现了用十几种语言中的任何一种进行编码。因此,我假设您有一个更复杂的问题 - 但您尚未阐明它。
标签: algorithm machine-learning data-mining