【发布时间】:2016-03-02 17:28:16
【问题描述】:
我有一个包含超过一百万个字符串的数据库表。每个字符串都是一个词,长度可以从两个词到五个或六个不等。
["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 中以编程方式实现这一点,还是只检索所有看起来相似的关键字并过滤误报会更容易?
【问题讨论】:
标签: python string csv similarity fuzzywuzzy