¡Artefacto de pitón! Identifica automáticamente provincias y ciudades en texto y dibújalas

e8d2a02b3c2cf261e8646a6d7cc8c51c.png

Al realizar tareas relacionadas con NLP (procesamiento del lenguaje natural), a menudo nos encontramos con la necesidad de identificar y extraer provincias, ciudades y regiones administrativas. Aunque también podemos lograr el propósito de la extracción buscando en la tabla de palabras clave una por una, primero debemos recopilar las tablas de palabras clave de provincias y ciudades, lo cual es relativamente engorroso.

Hoy les presentaré un módulo. Solo necesita pasar una cadena a este módulo, y le devolverá las palabras clave de provincia, ciudad y distrito en la cadena, y márquelo en la imagen para usted. Es Cpca módulo.

1. Prepárate

Antes de comenzar, debe asegurarse de que Python y pip se hayan instalado correctamente en su computadora, de lo contrario, puede visitar este artículo: Guía de instalación de Python súper detallada  para la instalación.

(Opcional 1)  Si usa Python para el análisis de datos, puede instalar Anaconda directamente: Anaconda, una buena ayuda para el análisis y la minería de datos de Python , tiene Python y pip integrados.

(Opcional 2)  Además, se recomienda que utilice el editor de VSCode, que tiene muchas ventajas: El mejor socio para la programación de Python: guía detallada de VSCode .

Elija una de las siguientes formas de ingresar el comando para instalar dependencias :
1. Abra Cmd (Inicio-Ejecutar-CMD) en el entorno de Windows.
2. Abra Terminal en el entorno MacOS (comando+espacio para ingresar a Terminal).
3. Si está utilizando el editor VSCode o Pycharm, puede usar directamente la Terminal en la parte inferior de la interfaz.

pip install cpca

Tenga en cuenta que actualmente el módulo cpca solo es compatible con Python3 y superior.

En Windows, pueden ocurrir problemas similares a los siguientes:

Building wheel for pyahocorasick (setup.py) ... error

Primero lea el texto original para descargar las herramientas de compilación de Microsoft Visual C++, instale las herramientas de compilación de VC++ y luego vuelva a instalar cpca para resolver el problema.

2. Uso básico

La extracción más básica de provincias y ciudades se puede lograr con dos líneas de código:

# 公众号: Python 实用宝典
# 2022/06/23

import cpca

location_str = [
    "广东省深圳市福田区巴丁街深南中路1025号新城大厦1层",
    "特斯拉上海超级工厂是特斯拉汽车首座美国本土以外的超级工厂,位于中华人民共和国上海市。",
    "三星堆遗址位于中国四川省广汉市城西三星堆镇的鸭子河畔,属青铜时代文化遗址"
]
df = cpca.transform(location_str)
print(df)

El efecto es el siguiente:

省 市 区 地址 adcode
0 广东省 深圳市 福田区 巴丁街深南中路1025号新城大厦1层 440304
1 上海市 None None 。310000
2 四川省 德阳市 广汉市 城西三星堆镇的鸭子河畔,属青铜时代文化遗址 510681

Preste atención a la ciudad de Guanghan en el tercer artículo, cpca no solo reconoce la ciudad de Guanghan, una ciudad a nivel de condado en la oración, sino que también coincide automáticamente con la ciudad de Deyang, que es la ciudad bajo su custodia, que se debe decir que es muy poderosa. .

Si desea saber que el programa extrae el nombre de la provincia y la ciudad de la posición de la cadena, puede agregar un parámetro pos_sensitivo=Verdadero:

# 公众号: Python 实用宝典
# 2022/06/23

import cpca

location_str = [
    "广东省深圳市福田区巴丁街深南中路1025号新城大厦1层",
    "特斯拉上海超级工厂是特斯拉汽车首座美国本土以外的超级工厂,位于中华人民共和国上海市。",
    "三星堆遗址位于中国四川省广汉市城西三星堆镇的鸭子河畔,属青铜时代文化遗址"
]
df = cpca.transform(location_str, pos_sensitive=True)
print(df)

El efecto es el siguiente:

(base) G:\push\20220623>python 1.py
     省 市 区 地址 adcode 省_pos 市_pos 区_pos
0  广东省 深圳市 福田区 巴丁街深南中路1025号新城大厦1层 440304      0      3      6
1  上海市 None None 。310000     38     -1     -1
2  四川省 德阳市 广汉市 城西三星堆镇的鸭子河畔,属青铜时代文化遗址 510681      9     -1     12

Marca la posición clave (índice) que identifica la provincia, ciudad y distrito, por supuesto, si es la identificación especial de la ciudad de Deyang, se marcará como -1.

3. Uso avanzado

También puede identificar por lotes varias regiones a partir de grandes fragmentos de texto:

# 公众号: Python 实用宝典
# 2022/06/23

import cpca

long_text = "对一个城市的评价总会包含个人的感情。如果你喜欢一个城市,很有可能是喜欢彼时彼地的自己。"\
    "在广州、香港读过书,工作过,在深圳买过房、短暂生活过,去北京出了几次差。"\
    "想重点比较一下广州、深圳和香港,顺带说一下北京。总的来说,觉得广州舒适、"\
    "香港精致、深圳年轻气氛好、北京大气又粗糙。答主目前选择了广州。"
df = cpca.transform_text_with_addrs(long_text, pos_sensitive=True)
print(df)

El efecto es el siguiente:

(base) G:\push\20220623>python 1.py
          省 市 区 地址 adcode 省_pos 市_pos 区_pos
0       广东省 广州市 None     440100     -1     44     -1
1   香港特别行政区 None  None     810000     47     -1     -1
2       广东省 深圳市 None     440300     -1     58     -1
3       北京市 None  None     110000     71     -1     -1
4       广东省 广州市 None     440100     -1     86     -1
5       广东省 深圳市 None     440300     -1     89     -1
6   香港特别行政区 None  None     810000     92     -1     -1
7       北京市 None  None     110000    100     -1     -1
8       广东省 广州市 None     440100     -1    110     -1
9   香港特别行政区 None  None     810000    115     -1     -1
10      广东省 深圳市 None     440300     -1    120     -1
11      北京市 None  None     110000    128     -1     -1
12      广东省 广州市 None     440100     -1    143     -1

No solo eso, sino que el módulo también viene con algunas herramientas de dibujo simples, que pueden dibujar la salida de datos anterior en forma de un mapa de calor en el mapa:

# 公众号: Python 实用宝典
# 2022/06/23

import cpca
from cpca import drawer

long_text = "对一个城市的评价总会包含个人的感情。如果你喜欢一个城市,很有可能是喜欢彼时彼地的自己。"\
    "在广州、香港读过书,工作过,在深圳买过房、短暂生活过,去北京出了几次差。"\
    "想重点比较一下广州、深圳和香港,顺带说一下北京。总的来说,觉得广州舒适、"\
    "香港精致、深圳年轻气氛好、北京大气又粗糙。答主目前选择了广州。"
df = cpca.transform_text_with_addrs(long_text, pos_sensitive=True)
drawer.draw_locations(df[cpca._ADCODE], "df.html")

Este error se puede informar cuando se ejecuta:

(base) G:\push\20220623>python 1.py
Traceback (most recent call last):
  File "1.py", line 12, in <module>
    drawer.draw_locations(df[cpca._ADCODE], "df.html")
  File "G:\Anaconda3\lib\site-packages\cpca\drawer.py", line 41, in draw_locations
    import folium
ModuleNotFoundError: No module named 'folium'

Usa pip para instalar:

pip install folium

Luego vuelva a ejecutar el código, se generará df.html en el directorio actual, haga doble clic para abrir, el efecto es el siguiente:

bd55c6a5306cd8c97f8d46dde548dc62.png

¿Cómo usarlo, es muy conveniente? En el futuro, este módulo será suficiente para la identificación de ubicaciones.

Para obtener más detalles, puede visitar la página de inicio de Github de este proyecto para leer. El LÉAME de este proyecto está escrito en chino y es muy fácil de leer:

https://github.com/DQinYuan/chinese_province_city_area_mapper

Si no puede acceder a GitHub, también puede responder al fondo de la cuenta oficial de Python Practical Book: cpca para descargar el proyecto completo.

Este es el final de nuestro artículo. Si le gusta el tutorial práctico de Python de hoy, continúe prestando atención a la Colección práctica de Python.

Si tiene alguna pregunta, puede responder en el fondo de la cuenta oficial: únase al grupo , responda la información de verificación de la letra roja correspondiente e ingrese al grupo de asistencia mutua para preguntar.

La originalidad no es fácil, espero que me puedan dar un pulgar arriba abajo y mirar para apoyarme a seguir creando, ¡gracias!

Haga clic a continuación para leer el texto original para una mejor experiencia de lectura

Python Practical Collection (pythondict.com)
no es solo una colección.
Bienvenido a prestar atención a la cuenta oficial: Python Practical Collection

ba58529615f46880f07b6591836c1270.png

Supongo que te gusta

Origin blog.csdn.net/u010751000/article/details/125437750
Recomendado
Clasificación