这是我的问题。我有一个示例文本文件,通过爬取各种 html 页面来存储文本数据。此文本包含有关各种事件及其时间和地点的信息。我想获取这些位置的坐标。我不知道如何在 python 中做到这一点。我正在使用 nltk 来识别此示例文本中的命名实体。这是代码:
import nltk
with open('sample.txt', 'r') as f:
sample = f.read()
sentences = nltk.sent_tokenize(sample)
tokenized_sentences = [nltk.word_tokenize(sentence) for sentence in sentences]
tagged_sentences = [nltk.pos_tag(sentence) for sentence in tokenized_sentences]
chunked_sentences = nltk.batch_ne_chunk(tagged_sentences, binary=True)
#print chunked_sentences
#print tokenized_sentences
#print tagged_sentences
def extract_entity_names(t):
entity_names = []
if hasattr(t, 'node') and t.node:
if t.node == 'NE':
entity_names.append(' '.join([child[0] for child in t]))
else:
for child in t:
entity_names.extend(extract_entity_names(child))
return entity_names
entity_names = []
for tree in chunked_sentences:
# Print results per sentence
# print extract_entity_names(tree)
entity_names.extend(extract_entity_names(tree))
# Print all entity names
#print entity_names
# Print unique entity names
print set(entity_names)
示例文件是这样的:
考文特花园的波西米亚人
时间:2013 年 1 月 18 日(不同日期),晚上 7:30 地点:伦敦考文特花园,约翰·科普利(John Copley)常年流行的皇家歌剧院作品普契尼(Puccini)的《波西米亚人》(La bohème)在本季两次中的第一次重演,恰逢圣诞节期间。马克·埃尔德爵士指挥罗兰多·维拉宗饰演鲁道夫,麦加·科瓦列夫斯卡饰演咪咪。一个寒冷的平安夜,咪咪在巴黎拉丁区遇到了诗人鲁道夫(Dmytro Popov 于 1 月 5 日至 18 日演唱该角色)。在她的蜡烛熄灭后,他们在黑暗中摸索,坠入爱河。鲁道夫和另外三个小伙子住在一起:哲学家科林(Nahuel di Pierro/Jihoon Kim,1 月 18 日)、音乐家 Schaunard(大卫比齐奇)和喜欢穆塞塔(Stefania Dovhan)的画家马塞洛(奥登艾弗森)。
我想从此文本中获取伦敦考文特花园的坐标。我该怎么做 ?