Извлекайте и подсчитывайте страны и города (+их синонимы) из текста, как GeoText на стероидах, используя FlashText, реализацию Aho-Corasick. Flashgeotext — это быстрая встроенная библиотека Python с питанием от батарей (и BYOD), которая извлекает один или несколько наборов заданных названий городов и стран (+ синонимы) из входного текста.
вводный пост в блоге : https://iwpnd.github.io/articles/2020-02/flashgeotext-library
from flashgeotext . geotext import GeoText
geotext = GeoText ()
input_text = '''Shanghai. The Chinese Ministry of Finance in Shanghai said that China plans
to cut tariffs on $75 billion worth of goods that the country
imports from the US. Washington welcomes the decision.'''
geotext . extract ( input_text = input_text )
>> {
'cities' : {
'Shanghai' : {
'count' : 2 ,
'span_info' : [( 0 , 8 ), ( 45 , 53 )],
'found_as' : [ 'Shanghai' , 'Shanghai' ],
},
'Washington, D.C.' : {
'count' : 1 ,
'span_info' : [( 175 , 185 )],
'found_as' : [ 'Washington' ],
}
},
'countries' : {
'China' : {
'count' : 1 ,
'span_info' : [( 64 , 69 )],
'found_as' : [ 'China' ],
},
'United States' : {
'count' : 1 ,
'span_info' : [( 171 , 173 )],
'found_as' : [ 'US' ],
}
}
}
Эти инструкции позволят вам запустить копию проекта на вашем локальном компьютере для целей разработки и тестирования.
пип:
pip install flashgeotext
Конда:
conda install flashgeotext
для развития:
git clone https://github.com/iwpnd/flashgeotext.git
cd flashgeotext/
poetry install
poetry run pytest . -v
См. также список участников, принявших участие в этом проекте.
Этот проект лицензируется по лицензии MIT — подробности см. в файле LICENSE.md.
Демо-данные городов с сайта http://www.geonames.org, доступные по лицензии Creative Commons Attribution 3.0.