从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 Hangman检查单词中是否包含字符串并替换它?   jboss的java Maven+Spring体系结构   应用程序关闭时的java调用方法   java是调用驱动程序更快的工具。findElement或WebElement。findElement?   java UTF8字符集不适用于javax。邮政   显示所需json dto类的java   java需要关于JSF和<ui:insert>,<ui:define>   每次打开新活动时都不会显示java Drawable   java如何创建。docx文件和。Android上的xlsx文件   swing如何创建JTabbedPane java?   java如何更改javax的标题栏字体大小。摆动JFrame窗口   两个整数数组之间的java计算   JavaFX“控制台”输出的java可访问屏幕读取   java如何使用Comparator接口   java如何使用未绑定的LDAP SDK在LDAP中使用用户ID获取DN   SpringJava。lang.IllegalStateException:使用RequestContextHolder时未找到线程绑定请求。异步方面中的currentRequestAttributes()   然后复制并替换Java搜索字符串