【问题标题】:How to check if strings are similar如何检查字符串是否相似
【发布时间】:2021-07-08 04:45:55
【问题描述】:

我有以下字符串

text
USA guidances/regulations
US guidances/regulations
96
text
US guidances/regulations
US guidances/regulations
100
text
Australia guidances/regulations
US guidances/regulations
92
text
China Guidances/Regulations
US guidances/regulations
92
text
EU guidances/regulations
US guidances/regulations
98

文本下的第一个是输入字符串,第二个是与之匹配的字符串。最后是他们的fuzzywuzzy比率。我是这样匹配的:

ratio = fuzz.partial_ratio(t.lower(), txt.lower())

如果国家/地区名称不同,它应该返回较低的分数,而不是相似时。有没有办法做到这一点?

【问题讨论】:

  • 总是以国名开头吗?如果是,您可以分别比较两行的第一个单词。
  • 抱歉,我听不懂这个问题。当您尝试现有代码时会发生什么?这与应该发生的事情有什么不同。要具体,并展示清楚地指出确切差异的测试用例。

标签: python fuzzywuzzy fuzzy


【解决方案1】:

根据您提供的代码,要比较的文本似乎有一个模式

country_name + "guidances/regulations"

可以通过 spilt() 方法获取国家名称

>>> str = 'US guidances/regulations'
>>> myList = str.split(' ') //spilt by the space after the country name
>>> myList[0]
US
>>> myList[1]
guidances/regulations

然后只比较国家/地区名称

anotherStr = 'USA guidances/regulations'
anotherList = anotherStr.split(' ') //spilt by the space after the country name
ratio = fuzz.partial_ratio(myList[0].lower(), anotherList[0]())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 2015-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多