procesamiento avanzado del lenguaje natural con Python

Procesamiento avanzado del lenguaje natural con Python

El procesamiento del lenguaje natural (NLP, por sus siglas en inglés) es una rama de la inteligencia artificial que se ocupa de hacer que las computadoras comprendan el lenguaje humano. Con Python, uno de los lenguajes de programación más populares y utilizados para el aprendiz,aje automático e IA, podemos realizar tareas de NLP con herramientas gratuitas y librerías.

Librerías útiles para NLP en Python

  1. NLTK: Natural Language Toolkit es una librería popular para procesamiento del lenguaje natural en Python. Incluye herramientas para clasificación de texto, tokenización, etiquetado gramatical y más.
  2. spaCy: spaCy es otra librería popular para NLP en Python. Ofrece un rendimiento rápido, manejo eficiente de grandes volúmenes de textos y cuenta con modelos pre-entrenados.
  3. Gensim: Gensim es una librería especializada en modelado semántico y vectorial. Es útil para crear modelos LSA (Latent Semantic Analysis), Word2Vec o Doc2Vec.

Ejemplo: Análisis Sentimental utilizando NLTK

Vamos a utilizar NLTK para hacer un análisis sentimental básico sobre un conjunto de comentarios relacionados con un producto alimenticio. Para comenzar, necesitamos descargar algunos recursos adicionales desde NLTK:

«`python
import nltk

nltk.download(‘vader_lexicon’)
nltk.download(‘punkt’)
«`

Una vez descargados los recursos, podemos empezar a analizar los comentarios. NLTK incluye la herramienta Vader, una herramienta de análisis sentimental que nos permite obtener una ,puntuación para cada comentario:

«`python
from nltk.sentiment.vader import SentimentIntensityAnalyzer

analyzer = SentimentIntensityAnalyzer()

comments = [
«Este producto es excelente, me encanta su sabor»,
«No estoy muy contento con este producto, no cumple mis expectativas»,
«El servicio al cliente fue horrible y el producto llegó dañado»
]

for comment in comments:
score = analyzer.polarity_scores(comment)
print(f»{comment} – Score: {score[‘compound’]}»)
«`

En este ejemplo, utilizamos la herramienta Vader para analizar tres comentarios distintos. La función polarity_scores() retorna un diccionario con cuatro valores: negativo, neutral, positivo y compuesto. El valor compuesto va desde -1 (completamente negativo) a 1 (completamente positivo).

Ejemplo: Extracción de Entidades utilizando spaCy

Ahora vamos a utilizar spaCy para extraer entidades nombradas de un texto dado. Las entidades nombradas son sustantivos o frases que se refieren a nombres propios de personas, lugares u organizaciones.

«`python
import spacy

nlp = spacy.load(«en_core_web_sm»)

text = (
«Apple Inc. es una empresa estadounidense con sede en Cupertino, California.»
)

doc = nlp(text)

for entity in doc.ents:
print(entity.text, entity.lab,el_)
«`

En este ejemplo, utilizamos la librería spaCy para extraer entidades nombradas de un texto. Primero, cargamos el modelo pre-entrenado en_core_web_sm, que contiene información sobre el idioma inglés. Luego, pasamos el texto a través del modelo y obtenemos una lista de las entidades encontradas.

Ejemplo: Modelado Semántico con Gensim

Vamos a utilizar Gensim para crear un modelo LSA (Latent Semantic Analysis) con un conjunto de documentos relacionados con ciencia:

«`python
from gensim import corpora
from gensim.models import LsiModel
from gensim.parsing.preprocessing import preprocess_string

documents = [
«La física es una ciencia natural que estudia los componentes fundamentales del universo»,
«La biología es una ciencia natural que estudia a los seres vivos y sus relaciones»,
«La química es una ciencia natural que estudia la estructura, composición y propiedades de la materia»,
«Las matemáticas son una rama de la ciencia que se ocupa del estudio de números, cantidades y formas»
]

# Preprocesamiento del texto
preprocessed_documents = [preprocess_string(doc) for doc in documents]

# Creación del diccionario
dictionary = corpora.Dictionary(preprocessed_documents)

# Creación del corpus vectorial
corpus = [dictionary.doc2bow(doc) for doc, in preprocessed_documents]

# Creación del modelo LSA
model = LsiModel(corpus=corpus, num_topics=2, id2word=dictionary)

# Impresión de los temas generados por el modelo
for topic in model.show_topics():
print(topic)
«`

En este ejemplo, utilizamos la librería Gensim para crear un modelo LSA con cuatro documentos relacionados con ciencia. Primero, preprocesamos los textos utilizando la función preprocess_string(). Luego, creamos un diccionario de palabras y un corpus vectorial. Finalmente, creamos el modelo LSA e imprimimos los dos temas generados.

Conclusión

Python es una herramienta poderosa para el procesamiento del lenguaje natural. En este artículo hemos visto cómo utilizar las librerías NLTK, spaCy y Gensim para realizar tareas básicas de NLP como análisis sentimental, extracción de entidades nombradas y modelado semántico.

Estas son solo algunas de las muchas posibilidades que ofrece Python para el procesamiento del lenguaje natural. Con práctica y experiencia, puedes llegar a dominar esta rama de la inteligencia artificial y aplicarla en diversos proyectos.


por

Etiquetas:

Comentarios

Deja una respuesta

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