寻找一个解决方案,可以帮助我提取城市,国家和计数。用于下面的代码,但无法获取。既然我是新手,有人能帮我吗,
import spacy
import wikipedia
nlp = spacy.load('en_core_web_lg')
gpe = [] # countries, cities, states
doc = nlp(open("C:/Users/johns//Desktop/NewFolder/address1.txt").read())
for ent in doc.ents:
if ent.label_ == 'GPE':
gpe.append(ent.text)
cities = []
countries = []
import wikipedia
for text in gpe:
summary = str(wikipedia.summary(text))
if 'city' in summary:
cities.append(text)
#print(cities)
elif 'country' in summary:
countries.append(text)
#print(countries)
print(countries, cities)
数据格式如下:
60 MOHI EL DIN ABHU EZZ STREET GIZA Egypt
KEBHANA BANK FORMER KOREA EXCHANGEB FOREIGN OPERATIONS DEPARTMENT 101 2 KA ULCHI RD CHUNG KU
RamEnclave 16-16/1 Navi Road New Delhi India 1/22/14 SS Mart Gaazi Road Islamabad Pakistan
KEBHANA BANK FORMER KOREA EXCHANGEB OPERATIONS DEPT 101 2 KA ULCHI RD CHUNG KU
7Hills appt Narsingi Hyderabad India
1条答案
按热度按时间5tmbdcev1#
spacy是在完整的句子上训练的,就像在报纸上发现的一样,这和你的数据不一样。此外,虽然它有一些与位置相对应的命名实体标记,但它不区分城市和国家,例如。您将GPE转换为城市和国家的方法很有趣,但似乎不太可能奏效。
您应该考虑使用专门用于地址提取的软件。您应该能够将其有效地包含在spacy管道中,并且如果您有带注解的数据,您可以在spacy中训练模型,但是要开始,您可能应该查看特定于地址的包。