我在一个客户端web应用程序上工作,我想从用户那里检索一个小问题的答案,但是我想认为它是正确的答案,即使拼写有点错。例如,我想知道是否有一种使用fuzzywuzzy的好方法(当我最初在python中整理数据时)来返回匹配分数大于0.9的单词列表。所以,如果我通过了"chicken"对于函数来说。9,它返回所有与"chicken"相似度得分超过。9的单词。(鸡,鸡,等等)。任何想法都会有所帮助,谢谢!
这听起来像是一个有效的使用,考虑到你的web应用程序是休闲的,只是为了好玩。
如果是严肃的业务,我认为最好不要使用fuzzywuzzy。这里的第一个问题是,你必须预先确定匹配百分比的阈值,这可能会导致用户出现一些奇怪的行为。例如,fuzz.partial_ratio("he", "she")
具有与80
相似的分数,但具有完全不同的含义。
从我在类似应用程序中看到的情况来看,您可以存储一个可接受的单词列表并与用户输入进行比较,例如:['chicken', 'chickens', 'Chicken', 'Chickens', 'CHICKEN', 'CHICKENS']
.
或者您可以使用各种Python内置函数从用户输入中执行一些字符串清理,例如
strip()
用于修剪空白upper() and lower()
将所有字母转换为大写/小写
毕竟,如果他写了'ch!cK3n ~:)'
,没有得到分数是用户的错。