我有一些文本,其中可能包含也可能不包含国家/地区名称。例如:
“尼日利亚: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
I get ['Niger', 'Nigeria']
作为输出。但我找不到办法让尼日利亚作为我的最终输出。如何实现这一目标。
注意:在这里我知道尼日利亚是正确的答案,但稍后我会将其放入代码中以选择最终的国家/地区名称(如果出现在文本中),并且它应该具有非常高的检测准确性。
始终首先搜索最长的字符串;这将防止您遇到的那种错误。
countries = sorted(pycountry.countries, key=lambda x: -len(x))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)