Nombres de dominio de búsqueda por lotes de Python
Para el reemplazo de expresiones regulares, la complejidad temporal del algoritmo también debe considerar el número de palabras clave a reemplazar (m), por lo que la complejidad temporal es O (MxN).
En resumen, el reemplazo de cadenas basado en el algoritmo FlashText es más de m veces más rápido que el reemplazo de expresiones regulares, y este m es el número de palabras clave que se reemplazarán. Cuantas más palabras clave haya, más obvias serán las ventajas del algoritmo FlashText.
A continuación se describe cómo utilizar el algoritmo flashtext para buscar y reemplazar cadenas según el módulo FlashText en Python. Si cree que será útil para el equipo de su proyecto, recuerde enviárselo al autor.
1. Preparado
Antes de comenzar, debes asegurarte de que Python y pip se hayan instalado correctamente en tu computadora. Si no, puedes visitar este artículo: Guía de instalación de Python súper detallada para instalarlo.
(Opcional 1) Si el propósito de usar Python es 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 utilizar el editor VSCode, que tiene muchas ventajas: El mejor socio para la programación en Python: Guía detallada de VS Code.
Elija uno de los siguientes métodos para ingresar el comando para instalar dependencias:
Abrir Cmd (Inicio-Ejecutar-CMD) en 1. Entorno Windows.
2. Abrir terminal en entorno MAC OS (comando + terminal de entrada de espacio).
3. Si usa el editor VSCode o Pycharm, puede usar directamente la terminal en la parte inferior de la interfaz.
pip install flashtext
2. Usos básicos
Extraer palabras clave
Un ejemplo más básico de extracción de palabras clave es el siguiente:
p>
Importar procesador de palabras clave desde flashtext
# 1. Inicializar procesador de palabras clave
keyword_processor =keyword Processor()
# 2. Agregar palabras clave p>
keyword_processor.add_keyword('Big Apple', 'New York' )
keyword_processor.add_keyword('Bay Area' )
# 3. Procese la oración objetivo y extraiga las palabras clave correspondientes
palabras clave _ encontradas = palabra clave _ procesador extraiga _ palabras clave('Me encanta la Gran Manzana y el Área de la Bahía')
# 4 .Result
Imprimir (keyword_found)
# ['Nueva York', 'Área de la Bahía']
El primer parámetro de add_keyword representa la palabra clave de búsqueda deseada, el segundo parámetro es asigne un alias a la palabra clave; si se encuentra, se mostrará como un alias.
Reemplazar palabras clave
Si desea reemplazar palabras clave, simplemente llame a la función replace_keywords del procesador:
Importar procesador de palabras clave desde flashtext
# 1. Inicializar el procesador de palabras clave
keyword_processor = procesador de palabras clave()
# 2. Agregar palabras clave
keyword_processor.add_keyword( 'Nueva Delhi', 'NCR región' )
# 3. Reemplazar palabras clave
nueva _ oración = palabra clave _ procesador reemplazar _ palabras clave('Me encanta la Gran Manzana y Nueva Delhi.
')
# 4. Resultados
Imprimir (nueva frase)
# 'Me encanta Nueva York y la zona de NCR'
Palabras clave sensibles a mayúsculas y minúsculas
Si necesita extraer e identificar con precisión letras mayúsculas y minúsculas, puede configurar el parámetro sensible al inicializar el procesador:
Importar procesador de palabras clave desde flashtext
# 1. Inicialice el procesador de palabras clave, preste atención a establecer mayúsculas y minúsculas en VERDADERO.
palabra clave _ procesador = procesador de palabras clave (distingue entre mayúsculas y minúsculas = Verdadero)
# 2. Agregar palabras clave
keyword_processor.add_keyword('Gran Manzana',' Nueva York ' )
keyword_processor.add_keyword('Bay Area' )
# 3. Procese la oración de destino y extraiga las palabras clave correspondientes
palabras clave _ encontradas = palabra clave _ procesador . extraer _ palabras clave('Me encanta la Gran Manzana y el Área de la Bahía.')
# 4. Resultados
Imprimir (keywords_found)
# [ 'Bay Area']
Marcar posiciones de palabras clave
Si necesita obtener la posición de la palabra clave en la oración, simplemente agregue el parámetro span_info=True para extraer_keywords:
Importar procesador de palabras clave desde flashtext
# 1. Inicializar procesador de palabras clave
keyword_processor = procesador de palabras clave()
# 2. Agregar palabras clave
keyword_processor.add_keyword('Big Apple','New York')
keyword_processor.add_keyword('Bay Area')
# 3. Procesar oraciones objetivo y extraer las palabras clave correspondientes , marcando las posiciones inicial y final de las palabras clave.
palabras clave _ encontradas = palabra clave _ procesador . extraer _ palabras clave('Me encanta la Gran Manzana y el Área de la Bahía.
', span_info=True)
# 4. Resultados
Imprimir (keyword_found)
# [('Nueva York', 7, 16), (' Bay Area', 21, 29)]
Obtener todas las palabras clave actuales
Si necesita obtener todas las palabras clave que se han agregado hasta ahora, simplemente llame a la función get_all_keywords del procesador. Disponible:
Importar procesador de palabras clave desde flashtext
# 1. Inicializar procesador de palabras clave
keyword_processor = procesador de palabras clave()
# 2. Agregar palabras clave
palabra clave _ procesador. agregar _ palabra clave("J2EE", "Java")
keyword_processor.add_keyword("color", "color")
<. p># 3. Obtener todas las palabras claveKeyword_processor. obtener _todas las palabras clave()
# salida: {'color': 'color ', 'j2ee': 'Java'}
Agregar palabras clave en lotes
Hay dos formas de agregar palabras clave en lotes, una es a través de un diccionario y la otra a través de una matriz:
Importar procesador de palabras clave desde flashtext
# 1. Inicializar el procesador de palabras clave
keyword_processor = procesador de palabras clave()
# 2. (1) Agregar palabras clave en lotes a través del diccionario
Diccionario_palabra clave = {
" java" : [ "java_2e ", " programación java"],
"Gestión de productos":["Gerente de proyectos", "Gerente de productos" ]
}
Keyword_processor. Agregar _keyword_ del _Dictionary (Keywords_Dictionary)
# 2. (2) Agregar palabras clave en lotes a través de matrices
palabra clave _ procesador. agregar _ palabras clave _ de _ lista ([" Java ", "python" ])
# 3. El primer efecto de extracción es el siguiente
palabra clave _ procesador. .extraer _ palabras claves('Soy el gerente de producto de la plataforma java_2e' )
# salida ['gestión de productos', 'java']
Eliminar palabras clave individualmente o en lotes.
Eliminar palabras clave también es muy simple, similar a agregar:
Importar procesador de palabras clave desde flashtext
# 1. Inicializar procesador de palabras clave
keyword_processor =Procesador de palabras clave()
# 2. Agregue palabras clave en lotes a través del diccionario
Keyword_dictionary= {
" java ": ["java_2e","java programación"],
"Gestión de productos":["Gerente de proyectos","Gerente de productos"]
}
Procesador_de_palabras clave. agregue _Palabra clave_ del _Diccionario(Diccionario_de_palabras clave )
# 3. El efecto de extracción es el siguiente
print(palabra clave _ procesador. extraer _ palabras clave ('Soy el gerente de producto de la plataforma java_2e'))
# ['Gestión de productos', 'java']
# 4. Eliminar una sola palabra clave
palabra clave _ procesador .
# 5. Eliminar palabras clave por lotes, también en forma de diccionario o matriz.
palabra clave _ procesador . eliminar _ palabras clave _ de _ dict({ "Product Management":[ "PM" ]})
palabra clave _ procesador . (["Programación Java"])
# 6. El efecto después de eliminar la palabra clave de programación Java es el siguiente
palabra clave _ procesador extraer _ palabras clave ('Soy el gerente de producto. de la plataforma java_2e ' )
# ['Gestión de productos']
3. Uso avanzado
Información adicional de soporte
Como se mencionó arriba, agregue una palabra clave, el segundo parámetro es su alias. De hecho, no sólo puede indicar el alias, sino también poner información adicional en el segundo parámetro:
Importar procesador de palabras clave desde flashtext
# 1. Inicializar procesador de procesamiento de palabras clave
kp =Procesador de palabras clave()
# 2. Agregue palabras clave con información adicional
kp.add_keyword('Taj Mahal' , ('Monumento', 'Taj Mahal' ))
kp.add_keyword('Delhi', ('Ubicación', 'Delhi' ))
# 3. El efecto es el siguiente
kp .extract_keywords('El Taj Mahal está en Delhi.')
# [('Monumento', 'Taj Mahal'), ('Lugar', 'Delhi') ]
De esta manera, al extraer palabras clave, también puede obtener otra información que desee generar cuando obtenga esta palabra clave.
Admite límites de palabras especiales
Los límites de palabras detectados por Flashtext generalmente están limitados a cualquier carácter que no sea w [A-Za-z0-9_], pero si desea agregar algunos caracteres especiales como palabras. Parte de esto también se puede implementar:
Importar procesador de palabras clave desde flashtext
# 1. Inicializar procesador de palabras clave
keyword_processor = procesador de palabras clave()
# 2. Agregar palabras clave
keyword_processor.add_keyword("Gran Manzana")
# 3. Efecto normal
imprimir (palabra clave _ procesador . extraer _ palabras clave('Me encanta la Gran Manzana/Área de la Bahía.'))
# ['Gran Manzana']
# 4. Utilice "/" como parte. de la palabra
palabra clave _ procesador. agregar _ no _ palabra _ límite('/')
# 5. Efecto de optimización
imprimir (palabra clave _ procesador). extract _ palabras clave('Me encanta la Gran Manzana/Área de la Bahía.'))
# []
Fin
Personalmente, creo que este módulo tiene. Nos satisfizo el uso básico. Si tiene algunos requisitos de uso más allá de las funciones proporcionadas por este módulo, puede contribuir con código a flashtext:
/vi3k6i5/flashtext
Tiempo dedicado a usar FlashText y palabras clave de consulta regularizadas Proporción de:
La relación entre el tiempo dedicado a reemplazar palabras clave con FlashText y el tiempo dedicado a regularizar:
Si este artículo le resulta útil, recuerde reenviarlo.