如何从文本中提取国家?

时间:2018-02-04 10:57:25

标签: python python-3.x nltk geography

我使用Python 3(我也安装了Python 2),我想从短文本中提取国家或城市。 例如,text = "I live in Spain"text = "United States (New York), United Kingdom (London)"

各国的答案:

  1. 西班牙
  2. [美国,英国]
  3. 我尝试安装geography,但我无法运行pip install geography。我收到这个错误:

      

    收集地理位置无法找到满足该版本的版本   要求地理(来自版本:)未找到匹配的分布   用于地理

    看起来geography仅适用于Python 2.

    我也有geopandas,但我不知道如何使用geopandas从文本中提取所需的信息。

2 个答案:

答案 0 :(得分:10)

你可以使用pycountry来完成你的任务(它也适用于python 3):

pip install pycountry

import pycountry
text = "United States (New York), United Kingdom (London)"
for country in pycountry.countries:
    if country.name in text:
        print(country.name)

答案 1 :(得分:2)

此库有一个较新的版本,它支持名为 geograpy3

的python3。
pip install geograpy3

它使您可以从URL或文本中提取地名,并为这些名称添加上下文-例如,区分国家,地区或城市。

示例:

import geograpy
import nltk
nltk.download('punkt')
nltk.download('averaged_perceptron_tagger')
nltk.download('maxent_ne_chunker')
nltk.download('words')
url = 'http://www.bbc.com/news/world-europe-26919928'
places = geograpy.get_place_context(url=url)

您可以在this link:

下找到更多详细信息