【发布时间】:2021-06-18 16:06:35
【问题描述】:
这是一个字符串T:
'男式衬衫团队 brienne 有趣的讽刺衬衫 特色 图形 T 恤 杯子 婴儿装 非常真实 激情 辉煌 设计 详细插图 强烈欣赏 东西 创意 br 商店 数千个设计在不同衬衫中发现 婴儿装 杯子 有趣的流行文化 抽象 诙谐的许多设计 照亮一天 好日子 几乎每个人else 符合 ul li 质量 短袖 圆领衬衫 100 棉 柔软耐用 舒适 手感合身 标准尺寸 怀疑 l xl 可用 li li 可持续发展标签公司 构想信念 纺织行业开始负责任地行事使用国家艺术直接服装设备印刷的纯棉 li li 服装裂纹剥离水洗 li li 图形 T 恤设计专业印刷的独特设计看起来很棒让某人微笑有趣可爱复古表现力艺术品 li ul'
我已经突出显示了上面字符串的一部分,因为上面是字符串的预处理版本,因此可能难以阅读。
我得到以下值:
fuzz.partial_ratio('short sleeve', T) 给50
fuzz.partial_ratio('long sleeve', T) 给73
fuzz.partial_ratio('dsfsdf sleeve', T) 给62
fuzz.partial_ratio('sleeve', T) 给50
我对此感到非常困惑。第一个和第四个值不应该是 100 吗?当然我错过了一些东西,但我无法弄清楚。
编辑:这是我在卸载 python-Levenshtein 库后运行的另一个示例:
'第一次成功的方式妻子告诉 v 2 长袖衬衫 id 1084 第一次成功方式妻子告诉 v 2 长袖衬衫设计印花质量 100 长袖棉衬衫运动灰色 90 棉 10 涤标准长袖衬衫时尚合身紧身款式请检查尺码表列出的附加图片随时联系我们第一次尺码问题满意度 100 件保证衬衫通常发货工作日中午订购下一个工作日中午订购长袖衬衫 100 棉标准衬衫时尚合身组合运输多件商品'
fuzz.partial_ratio('long sleeve', T) 给出 27
fuzz.partial_ratio('short sleeve', T) 给出 33
fuzz.partial_ratio('sleeveless', T) 给出 40
fuzz.partial_ratio('dsfasd sleeve', T) 给出 23
不幸的是,这个问题似乎不是 python-Levenshtein 库独有的。
【问题讨论】:
-
您确定您正确使用了 levenshtein 吗?它应该用于相似长度的字符串。如果您在整堆文本中寻找“相似”字符串,我会使用“窗口”进行搜索,并一次将其移动一个字符。此外,如果您将该段落与
fuzzy中的任何字符串进行比较,这不是搜索操作,这是这些字符串彼此之间的“接近程度”操作。 -
我不认为你缺少任何东西。图书馆里似乎有一个微妙的错误。试图弄清楚到底发生了什么。
-
是的,他是对的,对齐块后应该是 100。我将使用代码库进行调试并检查它,看看哪里出了问题,或者函数中是否存在假设。
标签: python levenshtein-distance fuzzywuzzy