Uso de la API NLPIR para Asociación de Palabras con Python

Este artículo describe la implementación de un script en Python que se conecta con la API de NLPIR para recuperar palabras semánticamente relacionadas con un término dado. NLPIR es una plataforma especializada en procesamiento de lenguaje natural (NLP), que proporciona funcionalidades clave como segmentación de palabras, análisis de sentimientos y generación de vectores de palabras (Word2vec), fundamentales para sistemas de inteligencia artificial conversacional.

La funcionalidad principal aquí implica enviar una solicitud HTTP POST a un endpoint de NLPIR, procesar la respuesta JSON y extraer las palabras asociadas. Para manejar la comunicación web, se utiliza la librería requests, y se trabaja con datos en formato JSON mediante el módulo json de Python.

A continuación, se presenta un ejemplo de conversión entre JSON y estructuras de datos en Python, como listas y diccionarios:

import json

# Convertir una lista a formato JSON
data_list = [10, 20, 30, 40]
json_string = json.dumps(data_list)
print(json_string)  # Salida: '[10, 20, 30, 40]'
print(type(json_string))  # Tipo: <class 'str'>

# Reconvertir JSON a lista
restored_list = json.loads(json_string)
print(restored_list)  # Salida: [10, 20, 30, 40]
print(type(restored_list))  # Tipo: <class 'list'>

También se emplea el método str.split() para dividir cadenas basadas en un deliimtador. Por ejemplo:

names_str = "Elena,Carlos,Miguel,Sofía,Lucía"
split_names = names_str.split(',')
print(split_names)  # Salida: ['Elena', 'Carlos', 'Miguel', 'Sofía', 'Lucía']

El script completo para interactuar con la API de NLPIR se estructura de la siguiante manera. Se definen los encabezados HTTP necesarios, se captura la entrada del usuario, y se procesa la respuesta para mostrar las palabras relacionadas junto con sus puntuaciones de similitud:

import requests
import json

api_url = 'http://ictclas.nlpir.org/nlpir/index6/getWord2Vec.do'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
    'Referer': 'http://ictclas.nlpir.org/nlpir/'
}

user_input = input('Ingrese el término a consultar: ')
payload = {'content': user_input}

response = requests.post(api_url, data=payload, headers=headers)
response_json = json.loads(response.text)

print(f'Palabras asociadas a "{user_input}":')
counter = 1
for item in response_json.get('w2vlist', []):
    parts = item.split(',')
    if len(parts) >= 2:
        word = parts[0]
        similarity = parts[1]
        print(f'({counter}) {word} - Similitud: {similarity}')
        counter += 1

Al ejecutar el script con un término como "tecnología", se obtiene una lista de palabras relacionadas, como "innovación", "digital", "ciencia", entre otras, con sus respectivas puntuaciones de similitdu. Este enfoque demuestra cómo las técnicas de NLP pueden aplicarse para explorar relaciones semánticas en datos textuales.

Etiquetas: NLPIR Python solicitudes HTTP json procesamiento de lenguaje natural

Publicado el 6-29 02:50