我有一个包含超过一百万个字符串的数据库表。每个字符串是一个长度可以从两个单词到五个或六个不等的术语。
["big giant cars", "zebra videos", "hotels in rio de janeiro".......]
我还在 csv 文件中有一个包含数千个较小术语的黑名单。我想要做的是识别数据库中与我的 csv 文件中列入黑名单的术语相似的术语。这种情况下的相似性可以解释为黑名单术语的拼写错误。
我熟悉python中的库,例如fuzzywuzzy,它可以使用Levensthein距离评估字符串相似度并返回相似度的整数表示。本教程中的一个示例是:
fuzz.ratio("NEW YORK METS", "NEW YORK MEATS") ⇒ 96
这种方法的一个缺点是它可能会错误地识别可能在不同上下文中表示某事的术语。
一个简单的例子是“big butt”,一个列入黑名单的字符串,与“big but”等更无辜的字符串混淆。
我的问题是,是否可以在 python 中以编程方式完成此操作,或者仅检索所有相似的关键字并过滤误报会更容易?