【发布时间】:2013-01-29 10:19:42
【问题描述】:
这是我的问题。我有一个示例文本文件,通过爬取各种 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 地点:考文特花园, 伦敦,约翰·科普利常年流行的皇家歌剧院制作 普契尼的 La bohème 是本季两次中的第一次, 正好在圣诞节期间。马克埃尔德爵士指挥罗兰多 Villazón 饰演 Rodolfo, Maija Kovalevska 饰演 Mimì。咪咪遇见诗人 鲁道夫(Dmytro Popov 于 1 月 5 日至 18 日演唱该角色)感冒了 巴黎拉丁区的平安夜。在黑暗中摸索 在她的蜡烛熄灭后,他们坠入爱河。鲁道夫与 另外三个小伙子:哲学家科林(Nahuel di Pierro/Jihoon Kim on 1 月 18 日),音乐家 Schaunard (David Bizic) 和画家 Marcello (Audun Iversen 饰),爱慕塞塔(Stefania Dovhan 饰)的人。两对夫妇 分手,歌剧以悲剧收场,鲁道夫发现咪咪死了 在冷冻阁楼中消费。
我想从此文本中获取伦敦考文特花园的坐标。我该怎么做?
【问题讨论】:
-
您确实应该提到“您的”代码只是gist.github.com/322906 示例的副本。
标签: python google-maps coordinates bing-maps nltk