Extraer ubicaciones del texto usando Python

En este artículo, veremos cómo extraer la ubicación del texto usando Python.

Al trabajar con textos, el requisito puede ser la detección de ciudades, regiones, estados y países y las relaciones entre ellos en el texto recibido. Esto puede ser muy útil para estudios geográficos. En este artículo, utilizaremos la biblioteca de etiquetas de ubicación .

La minería de texto que requiere algunas reglas basadas en la gramática y enfoques de modelado estadístico generalmente se lleva a cabo utilizando algoritmos NER (Reconocimiento de entidad nombrada) . Una entidad extraída de NER puede ser el nombre de una persona, lugar, organización o producto. La biblioteca de etiquetas de ubicación es un subproducto de más etiquetado y filtrado de lugares de todas las demás entidades presentes.

Instalación:

Para instalar este módulo, escriba el siguiente comando en la terminal.

pip install locationtagger

Después de la instalación, se requieren algunos módulos nltk para descargar usando código.

Python3

import nltk
import spacy
 
# essential entity models downloads
nltk.downloader.download('maxent_ne_chunker')
nltk.downloader.download('words')
nltk.downloader.download('treebank')
nltk.downloader.download('maxent_treebank_pos_tagger')
nltk.downloader.download('punkt')
nltk.download('averaged_perceptron_tagger')

También desde la línea de comando:

python -m spacy download en_core_web_sm

Ejemplo 1: Imprimir países, ciudades y regiones desde Texto.

Se pueden usar varias funciones para obtener ciudades, países, regiones, etc. del texto. 

Funciones utilizadas:

  • locationtagger.find_location(text) : Devuelve la entidad con información de ubicación. El parámetro «texto» toma texto como entrada.
  • entidad.países : Extrae todos los países en el texto.
  • entidad.regiones : Extrae todos los estados en el texto.
  • entidad.cities : Extrae todas las ciudades en el texto.

Código: 

Python3

import locationtagger
 
# initializing sample text
sample_text = "India has very rich and vivid culture\
       widely spread from Kerala to Nagaland to Haryana to Maharashtra. " \
       "Delhi being capital with Mumbai financial capital.\
       Can be said better than some western cities such as " \
       " Munich, London etc. Pakistan and Bangladesh share its borders"
 
# extracting entities.
place_entity = locationtagger.find_locations(text = sample_text)
 
# getting all countries
print("The countries in text : ")
print(place_entity.countries)
 
# getting all states
print("The states in text : ")
print(place_entity.regions)
 
# getting all cities
print("The cities in text : ")
print(place_entity.cities)

Producción : 

Ejemplo 2: Extracción de relaciones de ubicaciones

En este ejemplo, se analizan varias funciones que realizan la tarea de obtener relaciones de ciudades, regiones y estados entre sí. 

Funciones utilizadas:

  • entidad.country_regions : extrae el país donde se encuentran las regiones en el texto.
  • entidad.country_cities : Extrae el país donde se encuentran las ciudades en el texto.
  • entidad.otros_países : extrae la lista de todos los países cuyas regiones o ciudades están presentes en el texto.
  • entidad.region_cities : Extrae las regiones con cuyas ciudades se encuentran en el texto.
  • entidad.otras_regiones: extrae la lista de todas las regiones cuyas ciudades están presentes en el texto.
  • entidad.otro : Todas las entidades no reconocidas como nombres de lugares, se extraen a este.

Python3

import locationtagger
 
# initializing sample text
sample_text = "India has very rich and vivid culture widely\
        spread from Kerala to Nagaland to Haryana to Maharashtra. " \
       "Mumbai being financial capital can be said better\
       than some western cities such as " \
       " Lahore, Canberra etc. Pakistan and Nepal share its borders"
 
# extracting entities.
place_entity = locationtagger.find_locations(text = sample_text)
 
# getting all country regions
print("The countries regions in text : ")
print(place_entity.country_regions)
 
# getting all country cities
print("The countries cities in text : ")
print(place_entity.country_cities)
 
# getting all other countries
print("All other countries in text : ")
print(place_entity.other_countries)
 
# getting all region cities
print("The region cities in text : ")
print(place_entity.region_cities)
 
# getting all other regions
print("All other regions in text : ")
print(place_entity.other_regions)
 
# getting all other entities
print("All other entities in text : ")
print(place_entity.other)

Producción: 

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *