Consulta nuestra colección de 5 de las mejores bibliotecas de extracción de palabras clave de código abierto para Python.

Top 5: las mejores librerías de Python para extraer palabras clave de texto automáticamente

En Data Science, la extracción de palabras clave es una técnica de análisis de texto en la que puede obtener información importante sobre un texto en un período corto de tiempo. Debería ayudar a obtener palabras clave relevantes de cualquier texto y ahorrarle un tiempo precioso de explorar todo el documento. Existen múltiples funcionalidades en diferentes proyectos donde puedes implementar este tipo de biblioteca, por ejemplo la automatización de la extracción de palabras clave cuando escribes una publicación en algún blog, por lo que si te sientes perezoso o menos creativo de lo habitual, puedes generarlas automáticamente desde su texto original. Otro caso real útil es cuando, por ejemplo, publicas un producto en la tienda y recibe reseñas. Puede utilizar dicha función para extraer los problemas de los productos analizando automáticamente miles de reseñas sin explorarlas todas.

En esta parte superior, compartiré contigo 5 de las bibliotecas de Python más útiles para extraer las palabras clave de cualquier texto en varios idiomas de forma automática.

5. RAKE

Una implementación de Python del algoritmo de extracción automática rápida de palabras clave (RAKE) como se describe en: Rose, S., Engel, D., Cramer, N., & Cowley, W. (2010). Extracción automática de palabras clave de documentos individuales. En MW Berry & J. Kogan (Eds.), Minería de textos: teoría y aplicaciones: John Wiley & Sons.

4. YAKE

Online demoAPI

¡YAKE! es un método de extracción de palabras clave automático no supervisado y ligero que se basa en características estadísticas de texto extraídas de documentos individuales para seleccionar las palabras clave más importantes de un texto. Nuestro sistema no necesita ser entrenado en un conjunto de documentos en particular, ni depende de diccionarios, corpus externos, tamaño del texto, idioma o dominio. Para demostrar los méritos y la importancia de nuestra propuesta, la comparamos con diez enfoques no supervisados ​​de última generación (TF.IDF, KP-Miner, RAKE, TextRank, SingleRank, ExpandRank, TopicRank, TopicalPageRank, PositionRank y MultipartiteRank) y un método supervisado (KEA). Los resultados experimentales llevados a cabo sobre veinte conjuntos de datos (consulte la sección de Benchmark a continuación) muestran que nuestros métodos superan significativamente a los métodos de vanguardia en una serie de colecciones de diferentes tamaños.

3. PKE

PKE es un kit de herramientas de extracción de frases clave de código abierto  basado en Python  que proporciona un canal de extracción de frases clave de un extremo a otro en el que cada componente se puede modificar o ampliar fácilmente para desarrollar nuevos modelos. También permite una fácil evaluación comparativa de modelos de extracción de frases clave de última generación y se envía con modelos supervisados ​​entrenados en el  conjunto de datos SemEval-2010 . Esta biblioteca se puede instalar con el siguiente comando pip (requiere Python 3.6+):

pip install git+https://github.com/boudinfl/pke.git

También requiere algunas bibliotecas adicionales para funcionar:

python -m nltk.downloader stopwords
python -m nltk.downloader universal_tagset
python -m spacy download en_core_web_sm # download the english model

PKE proporciona una API estandarizada para extraer frases clave de un documento. Se puede usar fácilmente como se muestra en el siguiente script:

# script.py
import pke

# initialize keyphrase extraction model, here TopicRank
extractor = pke.unsupervised.TopicRank()

# load the content of the document, here document is expected to be in raw
# format (i.e. a simple text file) and preprocessing is carried out using spacy
extractor.load_document(input='/path/to/input.txt', language='en')

# keyphrase candidate selection, in the case of TopicRank: sequences of nouns
# and adjectives (i.e. `(Noun|Adj)*`)
extractor.candidate_selection()

# candidate weighting, in the case of TopicRank: using a random walk algorithm
extractor.candidate_weighting()

# N-best selection, keyphrases contains the 10 highest scored candidates as
# (keyphrase, score) tuples
keyphrases = extractor.get_n_best(n=10)

Para usar otro modelo, simplemente reemplácelo pke.unsupervised.TopicRank con otro modelo ( lista de modelos implementados ).

2. MultiRake

MultiRake es una biblioteca multilingüe de extracción automática rápida de palabras clave (RAKE) para Python que presenta:

  • Extracción automática de palabras clave de texto escrito en cualquier idioma
  • No es necesario conocer el idioma del texto de antemano
  • No es necesario tener una lista de palabras vacías
  • Actualmente hay 26 idiomas disponibles, para el resto: las palabras vacías se generan a partir del texto proporcionado
  • Simplemente configure el rake, inserte el texto y obtenga palabras clave (consulte los detalles de implementación)

Esta implementación se diferencia de otras por su soporte multilingüe. Básicamente, puede proporcionar texto sin conocer su idioma (debe estar escrito con alfabetos cirílico o latino), sin una lista explícita de palabras vacías y obtener un resultado decente. Aunque el mejor resultado se logra con una lista minuciosamente construida de palabras vacías. Durante la inicialización de RAKE, solo se debe utilizar el código de idioma:

  • bg - búlgaro
  • cs - checo
  • da - danés
  • de - alemán
  • el - griego
  • en - Inglés
  • es - español
  • fi - finlandés
  • fr - francés
  • ga - irlandés
  • hr - croata
  • hu - húngaro
  • id - indonesio
  • it - italiano
  • lt - lituano
  • lv - letón
  • nl - holandés
  • no - noruego
  • pl - polaco
  • pt - portugués
  • ro - rumano
  • ru - ruso
  • sk - eslovaco
  • sv - sueco
  • tr - turco
  • reino unido - ucraniano

1. KeyBERT

KeyBERT Logo

KeyBERT es sin duda una de las bibliotecas más fáciles de usar entre las demás. KeyBERT es una técnica de extracción de palabras clave mínima y fácil de usar que aprovecha las incrustaciones de BERT para crear palabras clave y frases clave que son más similares a un documento. Esta biblioteca se puede instalar fácilmente con el siguiente comando usando pip:

pip install keybert

Después de la instalación, puedes usarlo como biblioteca en sus scripts con un script como el siguiente, donde necesita importar el modelo KeyBERT, una vez que está cargado puede usarlo para extraer las palabras clave de una variable que contiene el texto plano:

# script.py
from keybert import KeyBERT

doc = """
    Supervised learning is the machine learning task of learning a function that
    maps an input to an output based on example input-output pairs. It infers a
    function from labeled training data consisting of a set of training examples.
    In supervised learning, each example is a pair consisting of an input object
    (typically a vector) and a desired output value (also called the supervisory signal). 
    A supervised learning algorithm analyzes the training data and produces an inferred function, 
    which can be used for mapping new examples. An optimal scenario will allow for the 
    algorithm to correctly determine the class labels for unseen instances. This requires 
    the learning algorithm to generalize from the training data to unseen situations in a 
    'reasonable' way (see inductive bias).
"""

kw_model = KeyBERT()
keywords = kw_model.extract_keywords(doc)

print(kw_model.extract_keywords(doc, keyphrase_ngram_range=(1, 1), stop_words=None))
#[
#    ('learning', 0.4604),
#    ('algorithm', 0.4556),
#    ('training', 0.4487),
#    ('class', 0.4086),
#    ('mapping', 0.3700)
#]

¡Y eso es! Según lo especificado por el autor de la biblioteca, ese es el objetivo de KeyBERT (un método rápido y fácil para crear palabras clave y frases clave). Para obtener más información sobre esta biblioteca, visita el repositorio oficial o lee este artículo en el medio escrito por el autor de la biblioteca. 

Si conoce otra biblioteca impresionante que permite la extracción de palabras clave de texto sin formato, compártala con la comunidad en el cuadro de comentarios.


Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores