Ir al contenido principal

Comprendiendo el lenguaje humano a través del procesamiento del lenguaje natural: técnicas y algoritmos clave

Introducción El procesamiento del lenguaje natural es una rama de la informática que se centra en la comprensión y el procesamiento del lenguaje humano por parte de las máquinas. A través del uso de técnicas y algoritmos especializados, el procesamiento del lenguaje natural nos permite interactuar con las máquinas a través del lenguaje natural, como lo hacemos con otras personas. El procesamiento del lenguaje natural tiene una amplia gama de aplicaciones, desde el análisis de sentimiento en redes sociales hasta la traducción automática y el procesamiento de consultas de búsqueda. Esta tecnología ha revolucionado la forma en que nos comunicamos y accedemos a la información, y su importancia solo ha ido en aumento con el tiempo. A lo largo de los años, el procesamiento del lenguaje natural ha evolucionado gracias a avances en técnicas y algoritmos. En este artículo, exploraremos las técnicas y algoritmos clave que se utilizan en el procesamiento del lenguaje natural y cómo juegan un pape

Creación de conjuntos de datos de PLN desde cero

Este artículo es una traducción libre de otro en inglés sobre la creación de conjuntos de datos de PLN desde cero. Nos ha parecido muy interesante porque en español existen muy pocos conjuntos de datos y este artículo da ideas de cómo abordar el problema desde la experiencia del autor. Os animamos a que lo leáis y si os entran ganas de crear un dataset... ¡No olvidéis de decírnoslo para anunciarlo a bombo y platillo! 😀
. . .

Existe la idea errónea de que la mejor manera de crear un conjunto de datos de PLN es definir primero un esquema de anotación riguroso y luego hacer las anotaciones en forma colectiva. El problema es que en realidad es muy difícil adivinar el esquema de anotación correcto desde el principio y, a menudo, esta es la parte más difícil en el lado del modelado (a diferencia del lado comercial). Esto se explica maravillosamente por Matthew Honnibal de spaCy en PyData 2018.

Entonces ¿cuál es la mejor manera de crear un conjunto de datos de PLN etiquetado para resolver un problema? Creo que la respuesta está en usar todo lo posible para obtener etiquetas iniciales rápidamente, luego refinar estas etiquetas, probar el conjunto de datos e iterar. Solo una vez se haya demostrado una solución, se puede inviertir en anotaciones grandes (pero solo si se puede demostrar que tiene valor comercial).

Siempre hay formas de obtener etiquetas aproximadas:
  • Heurística basada en el conocimiento del dominio. 
  • Métodos basados ​​en reglas del análisis de dependencia (que son maravillosamente precisos con los analizadores de dependencia neuronal modernos). 
  • Tomando un conjunto de datos etiquetado externo y modelando las etiquetas en su conjunto de datos. 
  • Usar datos complementarios, como datos de comportamiento (piense en la factorización matricial) para mapear los datos en un espacio.

Una vez se tengan etiquetas aproximadas, se pueden refinar: 
  • Se puede utilizar la programación de datos para fusionar datos de varias etiquetadoras de ruido (noise labellers) para obtener una propuesta de etiquetas. 
  • Se pueden entrenar modelos usando las etiquetas probabilísticas para obtener un clasificador inicial. 
  • Luego, se puede utilizar el aprendizaje activo para mejorar rápidamente el rendimiento y llegar a un modelo lo suficientemente bueno como para verificar la viabilidad.

No creo que haya buenos recursos sobre cómo hacer todo este proceso de principio a fin, pero es muy valioso el poder tomar texto sin etiquetar y, en unos pocos días, tener un proceso para extraer información significativa de él.

Original: https://skeptric.com/nlp-dataset-bootstrap/

Comentarios

Entradas populares de este blog

MarIA: El primer modelo de IA masivo de la lengua española

Estos días atrás se ha hablado mucho sobre MarIA, el nuevo modelo de lenguaje en español del Barcelona Supercomputing Center : Nos gustaría recoger en este artículo, extraído de un post escrito por Carmen Torrijos en LinkedIn, algunos datos rápidos: Corpus inicial: 59TB de texto web de los archivos de la Biblioteca Nacional de España. Tiempo de procesamiento para limpiar el corpus: 6.910.000 horas. Corpus limpio sin duplicidades: 201.080.084 documentos limpios (570 GB). Número de tokens: 135.733.450.668 (dato muy NLP). Tiempo de procesamiento para entrenar el modelo: 184.000 horas de procesador y 18.000 horas de CPU. Número de parámetros de los modelos liberados: 125.000.000 y 355.000.000. Y 5 conclusiones: El corpus de texto supera en órdenes de magnitud el tamaño de los existentes hasta el momento en español. Un proyecto así es inaccesible a nivel de empresa o grupo de investigación, debido no ya al acceso al corpus sino a la capacidad de computación necesaria. Es un modelo generali

NLP en español es PLN: Recopilación de artículos introductorios y cursos de PLN en español

El Procesamiento del Lenguaje Natural, o PLN para simplificar, es una rama de la inteligencia artificial y la lingüística aplicada. A nuestro parecer un área muy interesante que conjuga humanidades con la tecnología más puntera. Para que luego digan que hay que elegir entre ciencias o humanidades. Un O exclusivo que nos han inculcado y que no puede estar tan equivocado. En este artículo recopilatorio queríamos poner nuestro granito de arena para ayudar a todos aquellos interesados en el PLN (o NLP si se prefiere aunque La Fundéu no estaría muy contenta ) pero que no están tan familiarizados con las herramientas técnicas que permiten procesar el lenguaje o cómo darle utilidad a los conocimientos tan valiosos sobre lingüística de una manera práctica. La principal diferencia de este artículo con otros es que vamos a intentar que los recursos presentados sirvan o pongan de ejemplo el procesamiento del español, segunda lengua materna más hablada en el mundo después del chino pero que tiene

Avanzando en la detección del lenguaje ofensivo en español

SHARE y OffendES_spans: dos nuevos recursos para combatir el lenguaje ofensivo textual. Durante la charla se presentarán dos recursos lingüísticos recientemente generados que serán clave para avanzar en la investigación del lenguaje ofensivo en español: SHARE y OffendES_spans.  SHARE es un recurso léxico con más de 10.000 términos y expresiones ofensivas por parte de la comunidad de hispanohablantes. Para el desarrollo de este recurso se ha utilizado Fiero, un popular chatbot desarrollado para entablar una conversación con los usuarios y recoger insultos y expresiones a través de la plataforma de mensajería de Telegram. Este vocabulario fue etiquetado manualmente por cinco anotadoras obteniendo un coeficiente kappa del 78,8%.  La generación de SHARE ha permitido liberar el primer corpus en español para el reconocimiento de entidades ofensivas, llamado OffendES_spans, cuya evaluación se ha llevado a cabo a través del desarrollo de uno de los primeros sistemas computacionales en español