我正在开发一个系统,用户可以使用相应的成分创建自己的个人配方并保存(在mysql中)。
问题在于,每次保存一种成分时,我都会检查成分表中是否已经存在,我会比较成分的名称。
如果我能够从食谱中制作正确的购物清单,我想确保例如:
苹果 - 苹果 - 新鲜苹果 Cant apear因此,如果首先创建“apple”并且我试图保存“苹果”,我想检查类似的东西已经存在。
像我试图解释的那样的算法是否存在?
希望你有一些意见!
答案 0 :(得分:0)
你可能对MySQL的SOUNDEX()
函数有一些运气,假设这些单词足够相似,而且可能很简单。
可以在此处找到文档:https://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_soundex
基本上,它的作用是将给定的单词减少为表示它的四个字符的字符串。对于声音大致相同的任何两个单词,字符串应相同。
答案 1 :(得分:0)
虽然可以使用soundex或Levenshtein distance,但仍然需要在短语中找到关键字 - 使用'apple'和'apples'可能会有效,但使用'打新鲜的苹果' - 可能不是。
根据我的经验,在该应用程序中没有什么比手动算法更好:
答案 2 :(得分:0)
在mySql中,您可以使用SOUNDEX()
函数soundex。
如果你想在php中实现它,有levenshtein和similar_text函数