在比较两个字符串的相似性时,我想排除一个字符串列表,例如,忽略“Texas”和“US”
我尝试在Difflib的SequenceMatcher中使用参数“isjunk”:
exclusion = ['Texas', 'US']
sr = SequenceMatcher(lambda x: x in exclusion, 'Apple, Texas, US', 'Orange, Texas, US', autojunk=True).ratio()
print (sr)
相似性比率高达0.72,因此显然不排除不需要的字符串
正确的方法是什么
我不熟悉这个软件包,但作为一个好奇的人,我在谷歌上搜索了一下,并用一些自己的例子对它进行了探索。 我发现了一些有趣的东西,它不是你问题的解决方案,而是你得到的结果的借口
正如我发现的here:
>让我们来看一个例子:
我明白了:
所以对于这个例子,我希望得到相同的结果:
我希望额外的
TexasUS
将被忽略,因为它位于exclusion
列表中,然后ratio
将保持不变, 让我们看看我们得到了什么:这个定量比第一个例子小,没有任何意义。 但是如果我们深入研究一下输出,我们会发现匹配是完全相同的!那么有什么区别呢?字符串的长度(它与排除的字符串一起计算)! 如果我们坚持链接中的命名约定,
T
现在更大了:我可以建议您在匹配单词之前自己过滤单词,如下所示:
希望你会发现它很有用,也许不是为了解决你的问题,而是为了理解它(理解一个问题是解决问题的第一步!)
相关问题 更多 >
编程相关推荐