【发布时间】:2021-05-31 04:57:34
【问题描述】:
我有一些文本,其中可能包含也可能不包含国家名称。例如:
'尼日利亚:Hotspot Network LTD 农村电话可行性研究'
这就是我从中提取国家名称的方式。在我的第一次尝试中:
findcountry("Nigeria: Hotspot Network LTD Rural Telephony Feasibility Study")
def findCountry(stringText):
for country in pycountry.countries:
if country.name.lower() in stringText.lower():
return country.name
return None
不幸的是,它给了我错误的输出[Niger],而正确的输出是尼日利亚。注意尼日尔和尼日利亚是世界上两个不同的现有国家。
第二次尝试:
def findCountry(stringText):
full_list =[]
for country in pycountry.countries:
if country.name.lower() in stringText.lower():
full_list.append(country)
if len(full_list) > 0:
return full_list
return None
我得到['Niger', 'Nigeria'] 作为输出。但我找不到让尼日利亚成为我最终输出的方法。如何做到这一点。
注意:这里我知道尼日利亚是正确的答案,但稍后我会将其放入代码中以选择文本中存在的最终国家/地区名称,并且它应该具有非常高的检测准确度。
【问题讨论】:
-
stackoverflow.com/questions/48607339/… 我想这就是你要找的东西。
-
按国家名称的长度降序排列。
-
@Tangent 我使用的是同一个库,但有步骤。正如我已经提到的,我需要正确的单一答案,我得到错误的答案
标签: python