Procesamento da linguaxe natural

subdisciplina da enxeñería lingüística computacional

O procesamento da linguaxe natural (PLN ou NLP, do inglés Natural Language Processing) é unha subdisciplina da intelixencia artificial, proximamente relacionada coa lingüística computacional, que ten como obxectivo modelar as linguas naturais e desenvolver ferramentas que permitan procesalas, tratalas e reproducilas mediante o uso de medios computacionais[1]. Estas solucións a miúdo toman a forma de aplicacións ou programas informáticos, e permiten a comunicación tanto entre persoas como entre persoas e máquinas mediante o uso de linguas naturais, como o galego, o portugués, o castelán, o inglés etc. Debido ás súas características, trátase dun campo tamén relacionado coa informática, as ciencias da computación e a lingüística.

O Procesamento da Linguaxe Natural ten as súas raíces nas investigacións levadas a cabo no campo da intelixencia artificial (IA), especialmente en torno á Asociación de Lingüística Computacional. Actualmente, esta disciplina busca solucións para procesar as linguas naturais nas súas dúas vertentes principais: os textos escritos e a fala (ou textos orais). Os últimos avances en PNL inclúen os modelos de lingua e os recursos de recoñecemento de voz, entre outros.

Historia

editar

O procesamento da linguaxe natural ten a súa orixe na tradución automática, nas décadas de 1940 e 1950, cando os primeiros intentos de traducir textos mediante o uso de ordenadores fixeron evidente a necesidade de desenvolver ferramentas coas que procesar computacionalmente as linguas naturais.[2] As investigacións levadas a cabo nestes anos pronto conformaron un ámbito de estudo en si mesmo e, en 1962, fundouse a Association for Machine Translation and Computational Linguistics,[3] que seis anos despois se converteu na Asociación de Lingüística Computacional, a principal organización sobre PLN a nivel internacional. Hoxe en día, a historia do PLN divídise en tres períodos:

O PLN simbólico (inicios - década de 1980)

editar

Baseouse na idea de que os ordenadores podían emular a linguaxe humana a partir dunha serie de formalismos e conxuntos de regras que describisen os diferentes fenómenos lingüísticos[1]. Así, de contar coa información lingüística adecuada (sobre a concordancia ou os tempos verbais, por exemplo), os sistemas podían xerar textos gramaticalmente correctos. Con todo, nesta época os ordenadores contaban con pouca potencia e as regras lingüísticas escribíanse de forma manual, o que limitaba as capacidades das ferramentas que se desenvolvían.

O PLN estatístico (década de 1990 - década de 2010)

editar

Na década de 1990, os ordenadores adquiriron unha maior capacidade de procesamento e memoria[1] e comezáronse a empregar os algoritmos de aprendizaxe automática para resolver as tarefas do PNL, o que supón unha revolución no campo. Nesta etapa, os ordenadores xa non operan en base a unha serie de regras escritas por humanos, senón mediante o procesamento de grandes cantidades de textos (os corpus lingüísticos)[1] e o cálculo de ocorrencias. Grazas a este novo método, os ordenadores son capaces de detectar padróns e reproducilos dunha forma máis eficiente e satisfactoria. Estes modelos probabilísticos foron imprescindibles para diversas ferramentas desenvolvidas neste período, en especial, para aquelas relacionadas coa tradución automática.

O PLN neuronal (actualidade)

editar

Na última década, a potencia e capacidade dos medios computacionais continuaron incrementándose, o que trouxo consigo un novo paradigma. Na actualidade, a investigación en PLN emprega as redes neuronais artificiais de aprendizaxe profunda para mellorar o procesamento das linguas naturais. Ao igual que os modelos estatísticos, estas redes neuronais adéstranse con grandes cantidades de textos. Con todo, a diferencia dos anteriores, estas redes operan de forma máis sofisticada, pois procesan a información nunha serie de capas, onde as saídas dunhas se converten nas entradas doutras e así sucesivamente. Malia que aínda se descoñece como aprenden exactamente as redes neuronais[1], sabemos que os modelos transforman as ocorrencias da lingua en valores numéricos nun espazo[4], o cal é un método máis sofisticado e complexo que as regras escritas de forma manual que se empregaban nos inicios do PNL.

Cabe destacar que, malia as melloras das últimas décadas, hoxe en día non existe unha metodoloxía única que resolva as tarefas de PLN de forma íntegra. Por este motivo, faise uso cada vez máis dos paradigmas híbridos[1], que combinan dúas ou máis metodoloxías para obteren mellores resultados.

Subáreas

editar

O Procesamento da Linguaxe Natural divídese en dúas subáreas de acción:

  • A interpretación da linguaxe natural (ILN ou NLU, do inglés Natural Language Understanding), que engloba aquelas tarefas relacionadas coa análise e a interpretación da lingua. No caso da análise, destacan os recursos que analizan a gramática e o léxico de textos escritos, por exemplo. No caso da interpretación, atopamos os chatbots de asistencia das páxinas web que ofrecen unha ou outra solución predeterminada ás persoas usuarias dependendo dos problemas que describan, entre outros.
  • A xeración da linguaxe natural (XLN ou NLG, do inglés Natural Language Generation), que engloba aquelas tarefas relacionadas coa elaboración de textos orais ou escritos nunha lingua natural. O principal exemplo son as respostas que ofrecen os modelos de lingua, como ChatGPT.

Dificultades no procesamento de linguaxes naturais

editar

Ambigüidade

editar

A linguaxe natural é inherentemente ambigua a diferentes niveis:

  • A nivel léxico, unha mesma palabra pode ter varios significados, e a selección do apropiado debese deducir a partir do contexto oracional ou coñecemento básico. Moitas investigacións no campo do procesamento de linguaxes naturais teñen estudado métodos de resolver as ambigüidades léxicas mediante dicionarios, gramáticas, bases do coñecemento e correlacións estatísticas.
  • A nivel referencial, a resolución de anáforas e catáforas implica determinar a entidade lingüística previa ou posterior á que fan referencia.
  • A nivel estrutural, requírese da semántica para desambiguar a dependencia dos sintagmas preposicionais que conducen á construción de distintas árbores sintácticas.
  • A nivel pragmático, unha oración, a miúdo, non significa o que realmente se está a dicir. Elementos tales como a ironía teñen un papel importante na interpretación da mensaxe.

Para resolver estes e outros tipos de ambigüidades, o problema central no PLN é a tradución de entradas en linguaxe natural a unha representación interna sen ambigüidade, como árbores de análise.

Detección de separación entre as palabras

editar

Na lingua falada, non se acostuman facer pausas entre palabra e palabra. O lugar no que se debe separar as palabras a miúdo depende de cal é a posibilidade que manteña un sentido lóxico tanto gramatical como contextual. Na lingua escrita, idiomas como o chinés mandarín tampouco teñen separacións entre as palabras.

Recepción imperfecta de datos

editar

Acentos estranxeiros, rexionalismos ou dificultades na produción da fala, erros de mecanografado ou expresións non gramaticais, erros na lectura de textos mediante OCR

Compoñentes

editar
  • Análise morfolóxica: A análise das palabras para extraer raíces, trazos flexivos, unidades léxicas compostas e outros fenómenos.
  • Análise sintáctica: A análise da estrutura sintáctica da frase mediante unha gramática da lingua en cuestión.
  • Análise semántica: A extracción do significado da frase, e a resolución de ambigüidades léxicas e estruturais.
  • Análise pragmática: A análise do texto máis alá dos límites da frase, por exemplo, para determinar os antecedentes referenciais dos pronomes.
  • Planificación da frase: Estruturar cada frase do texto co fin de expresar o significado adecuado.
  • Xeración da frase: A xeración da cadea lineal de palabras a partir da estrutura xeral da frase, coas súas correspondentes flexións, concordancias e restantes fenómenos sintácticos e morfolóxicos.

Tarefas

editar

As principais tarefas que se levan a cabo na área do PLN son:

Ferramentas e recursos

editar

As principais ferramentas que se desenvolven actualmente no eido do PLN inclúen[1][5][6][7][8]:

  • Tradutores automáticos, que reciben na entrada un texto escrito nunha lingua natural (por exemplo, en galego) e ofrecen un texto noutra lingua natural como saída (por exemplo, en inglés).
  • Correctores ortográficos e gramaticais, que detectan os erros de escritura e ofrecen posibles solucións ou alternativas.
  • Chatbots, que simulan as conversas humanas, respondendo ás preguntas ou mensaxes das persoas usuarias mediante a predición de respostas en base aos datos cos que foron adestrados. A miúdo empréganse como métodos de asistencia nas páxinas web ou asistentes persoais, aínda que cada vez teñen máis usos, en especial grazas aos últimos avances en intelixencia artificial xenerativa.
  • Resumidores que procesan textos e extraen a información máis relevante para xerar resumos.
  • Modelos de lingua, que son capaces de realizar diversas tarefas de procesamento da linguaxe natural, cada vez de maior complexidade, incluídas as anteriores.
  • Detectores de spam, que revisan os correos electrónicos para detectar aqueles que sexan fraudulentos, daniños ou non desexados e tomar as medidas necesarias.

Ademais, da investigación en PLN derívanse outros recursos lingüísticos, como son[1][5][6][7]:

  • Segmentadores textuais, como os tokenizadores ou os segmentadores a nivel de oracións, que permiten dividir e clasificar os elementos que compoñen os textos.
  • Lematizadores, que permiten obter os lemas das palabras.
  • Stemmers, que permiten obter as raíces das palabras.
  • Etiquetadores, que permiten clasificar elementos lingüísticos automaticamente, entre os que destacan os etiquetadores de categorías gramaticales (PoS tagging) e os analizadores sintácticos (parsers). A diferencia atópase en que, mentres que os primeiros identifican as categorías gramaticais das palabras que compoñen un texto, os segundos detallan as estruturas xerárquicas e as relacións existentes entre os diferentes elementos que compoñen unha oración. Ambos procedementos son imprescindibles no PLN e a miúdo se levan a cabo de forma parella para obter análises lingüísticas o máis completas posible.
  • Léxicos xerais ou especializados, que inclúen un compendio de palabras ou termos, xunto con información lingüística relevante.
  • Dicionarios monolingües ou multilingües, que ofrecen palabras e definicións e, no segundo caso, equivalencias noutras linguas.
  • Corpus lingüísticos, tanto de textos como de voz, que recollen mostras de uso real da lingua e que son de utilidade tanto para as tarefas de PLN como para a investigación lingüística.
  • Datasets anotados manual ou automaticamente, que permiten adestrar e avaliar modelos, tanto a nivel de lingua en xeral como sobre un fenómeno concreto.
  • Outros recursos que permiten obter información lingüística relevante, tales como as listas de frecuencias (de palabras, expresións etc), as relacións de sinonimia e antonimia etc.

Bibliotecas e frameworks

editar

Nos últimos anos, desenvolvéronse numerosas bibliotecas, frameworks e outros recursos para o procesamento de textos e a realización de tarefas do PLN. Gran parte deles son gratuítos e de código aberto e adóitanse implementar con Python, a linguaxe de programación máis empregada neste ámbito[9]. Entre eles, destacan[9][10][11]:

  1. NLTK (Natural Language Toolkit). Trátase dunha biblioteca de Python que engloba unha serie de ferramentas imprescindibles para o procesamento de textos e a análise lingüística. NLTK conta con recursos de clasificación, tokenización, stemming, etiquetadores de categorías gramaticais e analizadores sintácticos, entre outros[12]. Ademais, vén equipada con arredor de 50 corpus e recursos lexicográficos e conta con foros de discusión e unha comunidade activa[12]. Trátase du recurso esencial na investigación e, dado que contén unha extensa documentación e outros recursos de aprendizaxe, constitúese tamén como un recurso educativo ideal para introducirse en PLN[10].
  2. SpaCy. É unha biblioteca utilizada sobre todo na investigación e no ámbito comercial e industrial, pois permite procesar grandes cantidades de texto, desenvolver aplicacións e implementar solucións de forma rápida e eficiente[10][13]. As súas principais funcións son o recoñecemento de entidades nomeadas, a etiquetaxe de categorías gramaticais, a análise sintáctica e outras tarefas, entre elas a integración de modelos. Na páxina web oficial, é posible personalizar e descargar un paquete de instalación a medida en base ás necesidades concretas da persoa usuaria, e conta tamén con diversas guías que ofrecen información sobre como empregar a biblioteca para as diferentes tarefas de PLN[14].
  3. TextBlob. Unha biblioteca que permite procesar textos de forma rápida e sinxela, especialmente pensada para persoas principiantes. Permite levar a cabo os procesos básicos en PLN, como a tokenización, a etiquetaxe, a clasificación, a extracción de información etc[15]. Como nos casos anteriores, conta cunha documentación que detalla os diferentes procedementos que se poden aplicar coa biblioteca, o que a converte á vez nun recurso educativo.
  4. Gensim. Unha biblioteca que permite analizar documentos, determinar semellanzas textuais e modelar temáticas de forma eficiente, sendo posible procesar grandes cantidades de información a un tempo[10]. Do mesmo xeito, facilita o adestramento de modelos semánticos e ofrece unha detallada documentación sobre o seu uso e aplicación[16].

Outras bibliotecas populares actualmente son PolyGlot, CoreNLP, Pattern e AllenNLP, entre outras[9][10][11].

PLN en galego

editar

Na actualidade, o Proxecto Nós está a desenvolver diversas labores de PLN. Trátase dun proxecto de investigación encomendado á Universidade de Santiago de Compostela e que se está a desenvolver no Instituto de Lingua Galega (ILG) e no Centro Singular de Investigación en Tecnoloxías Intelixentes[17] (CiTIUS). O seu obxectivo é fomentar a presenza do galego no mundo dixital, creando recursos lingüísticos que faciliten o desenvolvemento de aplicacións de intelixencia artificial e tecnoloxías da linguaxe[18]. Estes recursos, que estarán á disposición das institucións e empresas que desexen desenvolver produtos ou aplicacións dixitais, serán compartidas de xeito gratuíto, contribuíndo así á dixitalización en galego e potenciando o acceso da comunidade galegofalante a produtos que empreguen o seu idioma[18].

Entre as tarefas nas que se está a traballar no Proxecto Nós, destacan[18]:

Ademais, o Proxecto Nós comparte en aberto unha serie recursos en galego que se poden descargar de forma libre e gratuíta a través de GitHub, Zenodo e Hugging Face[19]. Entre eles, destacan os corpus de fala e texto monolingües e multilingües pensados para diferentes tarefas de PLN, diversos modelos de lingua e demos. Estes últimos, aos que se pode acceder a través da páxina oficial do proxecto, inclúen o Tradutor Nós, un recurso de tradución automática entre o galego, o español e o inglés, así como un sistema que converte o texto en voz (text-to-speech) e un sistema de recoñecemento de voz, todos eles baseados en redes neuronais artificiais, dispoñibles en aberto e actualmente en fase de probas[19].

  1. 1,0 1,1 1,2 1,3 1,4 1,5 1,6 1,7 Nunes, Maria das Graças Volpe (2024-03-02). Processamento de Linguagem Natural: Conceitos, Técnicas e Aplicações em Português (en portugués) (2 ed.). São Carlos, SP: Graça Nunes. ISBN 978-65-00-95750-1. 
  2. "NLP - overview". cs.stanford.edu. Consultado o 2024-08-29. 
  3. Torrijos Caruda, Carmen (2020). "Lingüística computacional y tecnologías del lenguaje". Revista de privacidad y derecho digital 5 (19): 25–64. ISSN 2444-5762. 
  4. Boleda, Gemma (2020-01-14). "Distributional Semantics and Linguistic Theory". Annual Review of Linguistics (en inglés) 6 (1): 213–234. ISSN 2333-9683. doi:10.1146/annurev-linguistics-011619-030303. 
  5. 5,0 5,1 "Natural Language Processing (NLP) - A Complete Guide". www.deeplearning.ai (en inglés). 2023-01-11. Consultado o 2024-08-31. 
  6. 6,0 6,1 "Natural Language Processing NLP Applications and Techniques". www.xenonstack.com (en inglés). Consultado o 2024-08-31. 
  7. 7,0 7,1 "Natural Language Processing NLP Applications and Techniques". www.xenonstack.com (en inglés). Consultado o 2024-09-04. 
  8. "Natural Language Processing NLP Applications and Techniques". www.xenonstack.com (en inglés). Consultado o 2024-09-04. 
  9. 9,0 9,1 9,2 "Which Is the Best Language for Natural Language Processing?". www.turing.com (en inglés). Consultado o 2024-09-04. 
  10. 10,0 10,1 10,2 10,3 10,4 "Top 10 Popular NLP Tools and Platforms - Zilliz blog". zilliz.com (en inglés). Consultado o 2024-09-04. 
  11. 11,0 11,1 "7 Top NLP Libraries For NLP Development In 2024". Labellerr (en inglés). 2024-02-03. Consultado o 2024-09-04. 
  12. 12,0 12,1 "NLTK :: Natural Language Toolkit". www.nltk.org. Consultado o 2024-09-04. 
  13. "spaCy · Industrial-strength Natural Language Processing in Python". spacy.io (en inglés). Consultado o 2024-09-04. 
  14. "Install spaCy · spaCy Usage Documentation". Install spaCy (en inglés). Consultado o 2024-09-04. 
  15. "TextBlob: Simplified Text Processing — TextBlob 0.18.0.post0 documentation". textblob.readthedocs.io. Consultado o 2024-09-04. 
  16. "Gensim: topic modelling for humans". radimrehurek.com. Consultado o 2024-09-04. 
  17. https://citius.gal/es/
  18. 18,0 18,1 18,2 "Presentación | Universidade de Santiago de Compostela". nos.gal. Consultado o 2024-08-30. 
  19. 19,0 19,1 "Recursos | Universidade de Santiago de Compostela". nos.gal. Consultado o 2024-08-30. 

Véxase tamén

editar

Bibliografía

editar

Outros artigos

editar

Ligazóns externas

editar