我正在开发一个系统,用户可以使用相应的成分创建自己的pesonal食谱并保存它们(在mysql中)。在mysql中检查大致相等字符串的脚本
问题是,每次一个成分被保存,我检查它是否已经存在于成分表中,我比较成分的名称。
如果我应该能够从我想确保例如食谱做出正确的购物清单:
苹果 - 苹果 - 新鲜的苹果 广东话apear
所以,如果“苹果”首先是创建和即时尝试保存“苹果”我想检查类似的东西已经存在。
像什么即时尝试解释的alghorithm已经存在吗?
希望你有一些意见!
我正在开发一个系统,用户可以使用相应的成分创建自己的pesonal食谱并保存它们(在mysql中)。在mysql中检查大致相等字符串的脚本
问题是,每次一个成分被保存,我检查它是否已经存在于成分表中,我比较成分的名称。
如果我应该能够从我想确保例如食谱做出正确的购物清单:
苹果 - 苹果 - 新鲜的苹果 广东话apear
所以,如果“苹果”首先是创建和即时尝试保存“苹果”我想检查类似的东西已经存在。
像什么即时尝试解释的alghorithm已经存在吗?
希望你有一些意见!
虽然可以使用soundex或Levenshtein distance,但它仍然需要找到该短语中的关键词 - 可能有苹果和苹果,但可能有效,但可能含有“十几个新鲜苹果” - 可能不会。
从我的经验,在该应用程序没有什么比更多的手动算法:
假设这些单词足够相似并且可能足够简单,那么您可能会对MySQL的SOUNDEX()
函数有一些好运。
文档可以在这里找到:https://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_soundex
基本上,它是一个给定的单词减少它代表一个四个字符的字符串。字符串应该与的声音基本相同的任何两个单词相同。
我要去检查出立即 – 2013-02-27 10:36:40
刚刚更新了更详细一点的答案......我希望它能帮助! – Dan 2013-02-27 10:38:08
我认为这个功能现在可以解决我的问题。谢谢你 – 2013-02-27 10:41:56
在mySql中,您可以使用SOUNDEX()
函数soundex。
如果你想实现它在PHP中存在levenshtein和similar_text功能
我要检查Levenshtein。我想我会制作一个后端系统,就像你在说我可以标记那些错误的匹配。 – 2013-02-27 10:44:27
感谢您的回答 – 2013-02-27 13:57:51