从URL或文本中提取国家、地区和城市
geograp的Python项目详细描述
从url或文本中提取地名,并向这些地名添加上下文 –例如区分国家、地区或城市。
安装和设置
使用pip获取包(这需要几分钟)
pip install geograpy
地理学使用NLTK进行实体识别,因此 你还需要下载我们正在使用的模型。幸运的是 一个能帮你处理这件事的命令。
geograpy-nltk
基本用法
导入模块,给出一些文本或url,然后执行presto。
import geograpy url = 'http://www.bbc.com/news/world-europe-26919928' places = geograpy.get_place_context(url=url)
现在您可以访问 链接文章。
- places.countries包含国家名称列表
- places.regions包含区域名列表
- places.cities包含城市名称列表
- places.other列出了所有不明显的国家, 地区或城市
注意,other列表可能对较短的文本有用 提供街道名称、兴趣点等信息,但在 当扫描包含所有格的较长文本时,时间有点混乱。 专有名词的形式(如“俄语”而不是“俄语”)。
但是等等,还有更多
除了列出已发现地点的名称外,您还将得到 一些关于地方之间关系的信息。
- places.country_regions按国家细分的地区
- places.country_cities按国家细分的城市
- places.address_strings城市、地区、国家字符串对 地理编码
最后但并非最不重要
虽然一篇文章可能会提到很多地方,但它可能只关注一个或多个 第二,地理也将国家、地区和城市划分为 提及次数。
- places.country_mentions
- places.region_mentions
- places.city_mentions
每个返回一个元组列表。元组中的第一项是 地名和第二项是提到的次数。为了 示例:
[('Russian Federation', 14), (u'Ukraine', 11), (u'Lithuania', 1)]
如果你是认真的
当然,您可以单独使用每个地理模块。为了 示例:
from geograpy import extraction e = extraction.Extractor(url='http://www.bbc.com/news/world-europe-26919928') e.find_entities() # You can now access all of the places found by the Extractor print e.places
place上下文在places模块中处理。例如:
from geograpy import places pc = places.PlaceContext(['Cleveland', 'Ohio', 'United States']) pc.set_countries() print pc.countries #['United States'] pc.set_regions() print pc.regions #['Ohio'] pc.set_cities() print pc.cities #['Cleveland'] print pc.address_strings #['Cleveland, Ohio, United States']
当然还有上面显示的所有其他信息 (country_regionsetc)在相应的^{tt15}之后可用$ 方法被调用。
学分
Geography使用以下优秀的库:
地理测量使用以下数据源:
- GeoLite2城市 查找
- ISO3166ErrorDictionary 对于常见的国家/地区错误省略,请通过“sara jayne” terp<;https://github.com/bodacea>;`\uu
向Chris Albon提示名称。