假设两组字符串:匹配不同的字符串
[ "Mr. Jones", "O'Flaherty", "Bob", "Rob Jenkins" ]
[ "Maxwell O'Flaherty", "Robert Jenkins", "Mrs. Smith" ]
显而易见的是,这两套有麦克斯韦奥弗莱厄蒂和罗伯特·詹金斯共同点。
有什么算法可以让我们以编程方式进行这样的匹配吗?我正在考虑编写将通过字符串数组中的每个元素的内容,并尝试查找任何唯一且不包含在任何其他元素中的任何子字符串,然后将其用作每种元素的一种散列以匹配这两套。
您应该知道,应该将哪些名称视为相同。由于我对英文名字不熟悉,对于我来说这并不明显,“这两套有麦克斯韦奥弗莱厄蒂和罗伯特詹金斯的共同之处。”对于C#编译器来说并不明显。至于你,“萨沙伊凡诺夫”和“亚历山大彼得罗维奇伊万诺夫”是不一样的,但不同于“阿列克谢伊凡诺夫”。 – Vovanium 2010-11-13 20:27:28
我同意,一台电脑与Sasha和Alexandr匹配的机会与匹配Richard和Dick的机会一样少。问题不是姓氏,而是简单地匹配类似的字符串。 – devprog 2010-11-14 10:15:00
可能是以下副本: [http://stackoverflow.com/questions/83777/are-there-any-fuzzy-search-or-string-similarity-functions-libraries-written-for-c](http:/ /stackoverflow.com/questions/83777/are-there-any-fuzzy-search-or-string-similarity-functions-libraries-written-for-c) – 2010-11-13 14:18:33