Red de conocimiento informático - Problemas con los teléfonos móviles - Nombres de dominio de búsqueda por lotes de Python

Nombres de dominio de búsqueda por lotes de Python

El algoritmo FlashText es un algoritmo de reemplazo de palabras clave a gran escala publicado por Vikash Singh en 2017. La complejidad temporal de este algoritmo solo está determinada por la longitud del texto (N), y la complejidad temporal del algoritmo es O (N).

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

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 clave

Keyword_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.