从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提示名称。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用单独的类从Get和Set方法获取值   将表从MySql导入配置单元时发生java MySql权限错误   安卓 JAVA按降序排序JSONObject(String,Int)   p:pdataTable/p:dataGrid/ui:repeat中的JavaP:commandButton不调用方法   用于服务器和客户端包的Java项目中的共享资源   哪些版本的Android SDK支持在哪些版本的Java中编码?   java如何使用selenium检查登录表单中的成功和失败消息?   eclipse如何重命名Java应用程序的名称空间/路径   安卓 java。你需要使用一个主题。此活动的AppCompat主题(或子代)   使用eclipse WindowBuilder和JCAJCE方法的java问题   java中的Documentum API