scieee AI-readable full text Open interactive document viewer

LinguaKit: uma ferramenta multilingue para a analise linguistica e a extraçao de informaçao

Gamallo Otero, Pablo; García González, Marcos

Abstract

Este artigo apresenta LinguaKit, uma suite multilingue de ferramentas de analise, extraçao, anotaçao e correçao linguısticas. LinguaKit permite realizar tarefas tao diversas como a lematizaçao, a etiquetagem morfossintatica ou a analise sintatica (entre outras), incluindo tambem aplicaçoes para a analise de sentimentos (ou minaria de opinioes), a extraçao de termos multipalavra, ou a anotaçao concetual e ligaçao a recursos enciclopedicos tais como a DBpedia. A maior parte dos modulos funcionam para quatro variedades linguısticas: portugues, espanhol, ingles e galego. Alinguagem de programaçao de LinguaKit ́e Perl, e o codigo esta disponıvel sob a licença livre GPLv3

Full text

Proposta recebida em Mar¸co 2017 e aceite para publica¸c˜ao em Junho 2017. LinguaKit: uma ferramenta multilingue para a an´alise lingu´ıstica e a extra¸c˜ao de informa¸c˜ao LinguaKit: a multilingual tool for linguistic analysis and information extraction Pablo Gamallo Centro Singular de Investiga¸c˜ao de Tecnologias da Informa¸c˜ao (CiTIUS) Universidade de Santiago de Compostela [email protected] Marcos Garcia Grupo LyS, Departamento de Letras Faculdade de Filologia, Universidade da Corunha [email protected] Resumo Este artigo apresenta LinguaKit, uma suite multilingue de ferramentas de an´alise, extra¸c˜ao, anota¸c˜ao e corre¸c˜ao lingu´ısticas. LinguaKit permite realizar tarefas t˜ao diversas como a lematiza¸c˜ao, a etiquetagem morfossint´atica ou a an´alise sint´atica (entre outras), incluindo tamb´em aplica¸c˜oes para a an´alise de sentimentos (ou minaria de opini˜oes), a extra¸c˜ao de termos multipalavra, ou a anota¸c˜ao concetual e liga¸c˜ao a recursos enciclop´edicos tais como a DBpedia. A maior parte dos m´odulos funcionam para quatro variedades lingu´ısticas: portuguˆes, espanhol, inglˆes e galego. A linguagem de programa¸c˜ao de LinguaKit ´e Perl, e o c´odigo est´a dispon´ıvel sob a licen¸ca livre GPLv3. Palavras chave extra¸c˜ao de informa¸c˜ao, tecnologia lingu´ıstica Abstract This paper presents LinguaKit, a multilingual suite of tools for analysis, extraction, annotation and linguistic correction. LinguaKit allows the user to perform different tasks such as lemmatization, PoStagging or syntactic parsing (among others), including applications for sentiment analysis (or opinion mining), extraction of multiword expressions or conceptual annotation and entity linking to DBpedia. Most part of the developed modules work in four linguistic varieties: Portuguese, Spanish, English, and Galician. The system is programmed in Perl, and it is freely available under a GPLv3 license. Keywords information extraction, linguistic technology 1 Introdu¸c˜ao Neste artigo apresentamos LinguaKit, um pacote de ferramentas multilingues para o Processamento da Linguagem Natural (PLN), que cont´em m´odulos de an´alise, extra¸c˜ao, anota¸c˜ao e corre¸c˜ao lingu´ıstica. Os diferentes m´odulos que comp˜oem LinguaKit s˜ao interdependentes entre si, e est˜ao organizados mediante uma arquitectura de pipeline. Permite realizar um vasto conjunto de tarefas de PLN, entre as quais: (i) identifica¸c˜ao de ora¸c˜oes e tokeniza¸c˜ao, (ii) lematiza¸c˜ao, (iii) etiquetagem morfossint´atica, (iv) identifica¸c˜ao e (v) reconhecimento de entidades mencionadas, (vi) an´alise sint´atica de dependˆencias, (vii) resolu¸c˜ao de correferˆencia a n´ıvel de entidade, (viii) extra¸c˜ao de termos e (ix) de rela¸c˜oes semˆanticas, (x) an´alise de sentimentos (minaria de opini˜oes), (xi) anota¸c˜ao conceitual com liga¸c˜ao a recursos enciclop´edicos, (xii) corre¸c˜ao e avalia¸c˜ao de l´exico e sintaxe, (xiii) conjuga¸c˜ao verbal autom´atica, (xiv) resumo autom´atico (sumariza¸c˜ao), (xv) identifica¸c˜ao de l´ıngua, ou (xvi) visualiza¸c˜ao de concordˆancias (palavras chave em contexto). As ferramentas foram desenhadas e desenvolvidas utilizando diferentes estrat´egias de PLN, tanto de base simb´olica como estat´ıstica, com aprendizagem supervisionada, n˜ao supervisionada e semi-supervisionada. A maior parte dos m´odulos de LinguaKit funcionam em portuguˆes, galego,1espanhol e inglˆes.2 1Neste trabalho consideramos portuguˆes a variedade escrita utilizando as diferentes ortografias da Academia Brasileira de Letras e da Academia das Ciˆencias de Lisboa, egalego a que segue (com maior ou menor fidelidade) as normas publicadas em Real Academia Galega e Instituto da Lingua Galega (2004). 2Exceto o sistema de corre¸c˜ao e avalia¸c˜ao lingu´ıstica — DOI: 10.21814/lm.9.1.243 This work is Licensed under a Creative Commons Attribution 4.0 License Linguam´ atica — ISSN: 1647–0818 Vol. 9 N´um. 1 - Julho 2017 - P´ag. 19–28 LinguaKit foi programado em Perl. Est´a dispon´ıvel como um servi¸co web3e ´e acess´ıvel via RESTful API.4O c´odigo fonte est´a publicado sob uma licen¸ca GPL.5 A tabela 1mostra os m´odulos da suite organizados em quatro categorias: an´alise b´asica, an´alise profunda, sistemas de extra¸c˜ao, e aplica¸c˜oes lingu´ısticas. Uma das principais contribui¸c˜oes desta nova suite em c´odigo aberto ´e a cria¸c˜ao de um ecossistema de ferramentas com diferentes n´ıveis de complexidade. No primeiro n´ıvel, situam-se os m´odulos b´asicos de an´alise, que s˜ao utilizados para construir aqueles com uma complexidade maior, nomeadamente m´odulos de an´alise profunda e de extra¸c˜ao. E estes, por sua vez, servem para desenvolver aplica¸c˜oes cada vez mais complexas, como a ferramenta de corre¸c˜ao/avalia¸c˜ao lingu´ıstica ou o anotador semˆantico. O objetivo do presente artigo ´e descrever a arquitetura de LinguaKit, mencionando as metodologias utilizadas na implementa¸c˜ao de cada m´odulo, e apresentar aquelas ferramentas que ainda n˜ao tinham sido tratadas em trabalhos precedentes. Para al´em desta introdu¸c˜ao, o artigo est´a organizado da seguinte maneira. Na sec¸c˜ao 2inclu´ımos uma breve revis˜ao do trabalho relacionado, e a sec¸c˜ao 3mostra a arquitetura do sistema. A seguir, apresentamos diferentes avalia¸c˜oes —j´a publicadas— dos diferentes m´odulos (sec¸c˜ao 4), uma descri¸c˜ao pormenorizada dos extratores de termos (sec¸c˜ao 5), e as conclus˜oes do presente trabalho (sec¸c˜ao 6). 2 Trabalho relacionado Dado que existem numerosas ferramentas de PLN para diversas l´ınguas e em v´arias linguagens de programa¸c˜ao, nesta sec¸c˜ao apresentamos sucintamente algumas das mais conhecidas e utilizadas suites de PLN em c´odigo aberto, tendo em conta tamb´em as l´ınguas que cada uma delas suporta. Osoftware de PLN mais conhecido ´e provavelmente Stanford CoreNLP (Manning et al.,2014), que inclui m´odulos de an´alise tais como tokenizadores, etiquetadores morfossint´aticos, reconhecedores de entidades, analisadores sint´aticos, sistedesenvolvido principalmente para a an´alise do galego—, e o conjugador verbal — que n˜ao funciona para o inglˆes. 3https://www.linguakit.com 4https://market.mashape.com/linguakit/ linguakit-natural-language-processing-in-thecloud 5https://github.com/citiususc/Linguakit mas para a resolu¸c˜ao da correferˆencia, etc. Est´a escrito em Java e foi desenvolvido principalmente para o inglˆes, embora recentemente se tenham publicado modelos para diversas l´ınguas como o chinˆes, o espanhol ou o ´arabe, entre outras. FreeLing (Padr´o,2011) ´e uma outra suite de PLN (escrita em C++) que inclui uma lista semelhante `a de Stanford CoreNLP, mas disp˜oe de ferramentas para outras tarefas como a transcri¸c˜ao fon´etica ou a desambigua¸c˜ao semˆantica. A maior parte dos m´odulos analisa os textos em catal˜ao, espanhol, portuguˆes, galego, inglˆes, francˆes, e recentemente, alem˜ao ou russo (entre outras l´ınguas). Um outro sistema de PLN escrito em Java ´e OpenNLP,6que realiza tarefas de an´alise similares aos que j´a foram referidos, mas que inclui, por exemplo, um m´odulo de categoriza¸c˜ao de documentos. Existem modelos dispon´ıveis para v´arias l´ınguas, nomeadamente inglˆes, espanhol e alem˜ao. Tamb´em programada em Java, IXA pipes (Agerri et al.,2014) ´e uma suite modular que realiza as tarefas mais habituais de processamento lingu´ıstico: tokeniza¸c˜ao, etiquetagem morfossint´atica, reconhecimento de entidades e an´alise sint´atica. Este sistema permite processar as seguintes l´ınguas (com varia¸c˜oes em fun¸c˜ao do m´odulo escolhido): espanhol, inglˆes, eusquera, italiano e galego. Com a populariza¸c˜ao da iniciativa Universal Dependencies,7que promove a unifica¸c˜ao das diretrizes de anota¸c˜ao em diversas l´ınguas, tˆem vindo a ser desenvolvidas algumas ferramentas compat´ıveis, como UDPipe (Straka et al.,2016). UDPipe inclui m´odulos de aprendizagem autom´atica para tokeniza¸c˜ao, etiquetagem morfossint´atica, lematiza¸c˜ao e an´alise sint´atica. Como foi referido, existem mais sistemas que realizam tarefas de PLN —alguns com objetivos ligeiramente diferentes, ou escritos noutras linguagens de programa¸c˜ao—, tais como NLTK: Natural Language Toolkit (Bird et al.,2009), amplamente utilizado no ensino de PLN, ou spaCy8 (mais focado em uso industrial), ambos escritos em python. Para al´em dos diferentes softwares apresentados, cabe mencionar tamb´em CitiusTools (Garcia & Gamallo,2015), suite de PLN a partir da qual foram desenvolvidos alguns dos m´odulos de LinguaKit. ` A diferen¸ca dos sistemas mencionados, que oferecem fundamentalmente m´odulos de an´alise, LinguaKit possui tamb´em um amplo le6http://opennlp.apache.org/ 7http://universaldependencies.org/ 8https://spacy.io/ 20– Linguam´ atica Pablo Gamallo e Marcos Garcia tipo de m´odulo m´odulos an´alise b´asica conjugador verbal segmentador de ora¸c˜oes tokenizador e splitter an´alise profunda lematizador PoS-tagger identificador de entidades (NER) classificador de entidades (NEC) identificador de correferˆencia analisador sint´atico em dependˆencias extra¸c˜ao palavras chave express˜oes multipalavra an´alise de sentimento/opini˜ao rela¸c˜oes semˆanticas (open IE) aplica¸c˜oes sumariza¸c˜ao anota¸c˜ao semˆantica (com EL) concordˆancias (palavras chave em contexto) identifica¸c˜ao de l´ınguas corre¸c˜ao/avalia¸c˜ao lingu´ıstica (l´exica e gramatical) Tabela 1: M´odulos de LinguaKit organizados em quatro categorias. que de ferramentas de extra¸c˜ao, bem como de aplica¸c˜oes mais complexas baseadas nesses sistemas de extra¸c˜ao. 3 Arquitetura A figura 1mostra as dependˆencias entre os diferentes m´odulos apresentados na tabela 1, sendo esta arquitetura comum `as quatro l´ınguas processadas pelo sistema. A an´alise b´asica consiste na segmenta¸c˜ao de um texto em ora¸c˜oes, que s˜ao a entrada do processo de tokeniza¸c˜ao. Por sua vez, o texto tokenizado ´e melhorado com regras b´asicas de splitting, que separam os elementos que comp˜oem contra¸c˜oes (e.g., “do →de o”, em portuguˆes e galego) ou sequˆencias de verbo e pronome cl´ıtico (e.g., “comelo →comer o”, em galego). Este ´ultimo m´odulo ´e dependente da l´ıngua, enquanto os processos anteriores s˜ao realizados com uma ferramenta ´unica (utilizando listas de abreviaturas tamb´em dependentes de cada variedade lingu´ıstica). O conjugador verbal ´e um m´odulo isolado que toma como entrada um verbo em infinitivo tanto em espanhol como em galego e portuguˆes. Neste ´ultimo caso, o sistema pode realizar at´e quatro modelos de conjuga¸c˜ao verbal, em fun¸c˜ao quer da variedade (portuguˆes de Portugal ou do Brasil), quer do sistema ortogr´afico utilizado (antes ou depois do Acordo Ortogr´afico de 1990).9 9https://pt.wikipedia.org/wiki/Acordo_ Ortografico_de_1990 Com base nos m´odulos de an´alise b´asica, foram implementadas duas aplica¸c˜oes diferentes: um identificador de l´ıngua e um gerador de concordˆancias (palavras chave em contexto). O identificador de l´ıngua ´e tamb´em utilizado internamente pelo sistema para fazer a escolha autom´atica dos m´odulos de uma ou outra l´ıngua, permitindo que o utilizador possa analisar um texto sem ter de selecionar a l´ıngua desejada. Os m´odulos de an´alise profunda tomam como entrada a sa´ıda da an´alise b´asica. O primeiro processo ´e a lematiza¸c˜ao, que atribui todos os lemas e todas as etiquetas poss´ıveis a cada forma (j´a tokenizada) do texto de entrada. O lematizador baseia-se num l´exico computacional dispon´ıvel para cada l´ıngua. Antes do processo de desambigua¸c˜ao realizado pelo etiquetador morfossint´atico (PoS-tagger, na tabela 1), ´e poss´ıvel identificar as entidades mencionadas ou nomes pr´oprios (NER). As entidades identificadas pelo NER ser˜ao classificadas ap´os a etiquetagem morfossint´atica mediante um sistema de classifica¸c˜ao semˆantica: o classificador de entidades mencionadas (NEC). O ´ultimo m´odulo de an´alise ´e o parsing sint´atico em dependˆencias, que toma como entrada o etiquetador morfossint´atico (com ou sem aplica¸c˜ao dos m´odulos de NER e NEC). V´arias ferramentas utilizam a sa´ıda dos m´odulos de an´alise profunda para extrair informa¸c˜ao dos textos: extratores de opini˜oes (tamb´em conhecidos como analisadores de sentimento), de palavras chave, de express˜oes multipalavra, e de rela¸c˜oes semˆanticas. Todos estes extratores tomam como entrada a sa´ıda do m´odulo LinguaKit: uma ferramenta multilingue para an´alise lingu´ıstica e extra¸c˜ao de informa¸c˜ao Linguam´ atica – 21 Figura 1: Arquitetura de LinguaKit. de etiquetagem morfossint´atica. Para al´em disso, foi desenvolvida uma aplica¸c˜ao de corre¸c˜ao lexical e gramatical que utiliza a sa´ıda do analisador sint´atico. Finalmente, duas aplica¸c˜oes foram criadas a partir dos extratores de termos relevantes (isto ´e, palavras chave e express˜oes multipalavra): um gerador autom´atico de resumos e um anotador semˆantico, que liga os termos extra´ıdos a conceitos enciclop´edicos armazenados em bases de conhecimento externas (por exemplo, a DBpedia).10 4 M´odulos Os principais m´odulos de LinguaKit foram desenhados e implementados nos ´ultimos cinco anos, sendo a maior parte deles descritos em diferentes publica¸c˜oes. Assim, esta sec¸c˜ao tem como objetivo pˆor em conjunto as t´ecnicas e metodologias empregadas em cada um dos principais m´odulos, bem como um breve resumo das avalia¸c˜oes realizadas. 10http://wiki.dbpedia.org/ Pr´e-processamento Como foi referido, os primeiros m´odulos realizam um pr´e-processamento do texto que permite aplicar com maior precis˜ao as ferramentas subsequentes: estes m´odulos realizam identifica¸c˜ao de fronteiras de ora¸c˜ao (com base em m´aquinas de estados finitas e em listas de abreviaturas que terminam com pontua¸c˜ao), de tokeniza¸c˜ao e splitting (processos pelos quais s˜ao separados os diferentes tokens de cada ora¸c˜ao), e de lematiza¸c˜ao (que atribui um —ou mais— lemas poss´ıveis a cada um dos tokens). Descri¸c˜oes mais pormenorizadas destes m´odulos podem encontrar-se em (Garcia & Gamallo,2010) ou em (Garcia & Gamallo,2015). Etiquetagem morfossint´atica Este m´odulo desambigua as etiquetas morfossint´aticas11 previamente atribu´ıdos a cada token mediante um classificador bayesiano baseado em bigramas de tokens. Foi avaliado para trˆes 11E tamb´em alguns lemas cuja atribui¸c˜ao varia em fun¸c˜ao da categoria morfossint´atica `a que perten¸ca o token. Por exemplo, as formas galegas/portuguesas cala ou calas podem ter como lema calar —se forem verbos—, ou cala —se forem nomes. 22– Linguam´ atica Pablo Gamallo e Marcos Garcia l´ınguas: inglˆes, portuguˆes e espanhol, com resultados pr´oximos ao estado da arte: ≈96 para portuguˆes e espanhol, e ligeiramente mais baixos (≈94%) para inglˆes (Gamallo et al.,2015b;Garcia & Gamallo,2015). Identifica¸c˜ao e classifica¸c˜ao de entidades mencionadas O primeiro destes m´odulos identifica express˜oes numex (de base num´erica) e enamex (nomes pr´oprios) mediante m´aquinas de estados finitas, que tˆem em conta tanto as formas ortogr´aficas (uso de mai´usculas) como palavras funcionais que possam conter (Universidade de Santiago de Compostela). Uma vez identificadas as entidades, o m´odulo de classifica¸c˜ao aplica um m´etodo de supervis˜ao distante que lhe permite classificar as entidades em quatro classes: pessoa,organiza¸c˜ao,local ou miscelˆanea. O sistema emprega listas de entidades j´a conhecidas (gazetteers) e um conjunto de regras que permitem desambiguar as entidades que aparecem em mais de uma lista (que podem ser, por exemplo, pessoa ou local). Os gazetteers foram extra´ıdos automaticamente de fontes externas com conhecimento enciclop´edico. Este m´odulo foi avaliado para as quatro l´ınguas analisadas (inglˆes, portuguˆes, espanhol e galego), utilizando diversos corpora e sendo comparando com sistemas supervisionados (Gamallo & Garcia,2011;Garcia et al.,2012;Garcia & Gamallo,2015). Os resultados obtidos —apesar de que n˜ao s˜ao sempre diretamente compar´aveis— foram pr´oximos aos atingidos por FreeLing e Stanford CoreNLP, superando nitidamente os modelos disponibilizados para OpenNLP. Resolu¸c˜ao de correferˆencia a n´ıvel de entidade Um outro m´odulo de an´alise lingu´ıstica inclu´ıdo em LinguaKit ´e o de resolu¸c˜ao de correferˆencia a n´ıvel de entidade. Este m´odulo utiliza como entrada um texto com as entidades mencionadas classificadas semanticamente, e aplica uma estrat´egia determin´ıstica baseada em filtros mediante os quais atribui um identificador num´erico a cada uma das ocorrˆencias (men¸c˜oes) das entidades previamente analisadas. Idealmente, este identificador ser´a igual para cada uma das men¸c˜oes que refiram a mesma entidade do discurso (e.g., “Ant´onio Varia¸c˜oesPessoa 1”, “JohnPessoa 2”, “John LennonPessoa 2”, “Ant´onioPessoa 1”, “LennonPessoa 2”, . . . ). Este m´odulo ´e uma vers˜ao simplificada do apresentado em (Garcia & Gamallo,2014). Para al´em disso, este sistema inclui uma sa´ıda alternativa que aproveita a resolu¸c˜ao de correferˆencia para tentar corrigir erros pr´evios da classifica¸c˜ao semˆantica. Assim, se a citada forma “Lennon” tivesse sido anteriormente classificada como local, mas identificada como men¸c˜ao da mesma entidade que “John Lennon”, a etiqueta semˆantica da primeira seria corrigida para pessoa (Garcia,2016). Analisador em dependˆencias O m´odulo de an´alise sint´atica, chamado DepPattern, baseia-se em regras formais de dependˆencias e num algoritmo de parsing com t´ecnicas de estados finitos. Foi avaliado para portuguˆes e espanhol e comparado com MaltParser (Nivre et al., 2007), um parser determin´ıstico de transi¸c˜oes baseado em aprendizagem supervisionada. Os resultados obtidos por DepPattern com corpora de teste constru´ıdo a partir de textos de diferentes dom´ınios foram semelhantes aos obtidos por MaltParser: ≈82% de F-score (Gamallo,2015). Em Gamallo & Gonz´alez (2011) descrevemse as caracter´ısticas principais da gram´atica formal na qual se baseia o conhecimento lingu´ıstico de DepPattern. Um compilador transforma as regras formais, escritas com os princ´ıpios da gram´atica de dependˆencias, em scripts Perl que representam os parsers de estados finitos. An´alise de sentimentos O sistema de an´alise de sentimentos (tarefa tamb´em conhecida como minaria de opini˜oes) classifica uma ora¸c˜ao como tendo uma opini˜ao positiva, negativa ou neutra. O n´ucleo deste m´odulo ´e um classificador bayesiano treinado com texto previamente anotado com as opini˜oes referidas, que tamb´em utiliza um l´exico de polaridade e regras sint´aticas para a identifica¸c˜ao de marcadores lingu´ısticos que intensificam ou mudam a polaridade das palavras. Foi avaliado para inglˆes e espanhol, e participou em duas competi¸c˜oes focadas na an´alise de opini˜oes em redes sociais: TASS 2013 (Gamallo et al.,2013a) para espanhol, e SemEval-2014 (Gamallo & Garcia,2014) para inglˆes, mostrando um desempenho competitivo em ambas as l´ınguas. Extrator de rela¸c˜oes Este m´odulo consiste num sistema de extra¸c˜ao de informa¸c˜ao n˜ao supervisionado cujo objeLinguaKit: uma ferramenta multilingue para an´alise lingu´ıstica e extra¸c˜ao de informa¸c˜ao Linguam´ atica – 23 tivo ´e obter um conjunto aberto de rela¸c˜oes entre dous objetos. As rela¸c˜oes (ou tripletas: obj1,rela¸c˜ao,obj2) selecionadas por um sistema de extra¸c˜ao de informa¸c˜ao aberta (Open Information Extraction, OIE) representam as proposi¸c˜oes b´asicas do texto de entrada. O nosso sistema, argOE (Gamallo & Garcia,2015), est´a baseado em regras e toma como entrada um texto analisado em dependˆencias em formato CoNLLX. Foi avaliado em inglˆes, portuguˆes e espanhol, e comparado com sistemas de OIE focados na extra¸c˜ao numa ´unica l´ıngua. O m´odulo inclu´ıdo em LinguaKit melhora os resultados de muitos dos sistemas com os quais foi comparado, como ReVerb (Etzioni et al.,2011), embora os resultados sejam mais baixos do que um outro sistema baseado em regras, ClausIE (Corro & Gemulla, 2013). Anota¸c˜ao e liga¸c˜ao semˆantica Este m´odulo identifica os termos relevantes do texto que podem ser ligados a conceitos presentes em bases de dados externas, tais como a DBpedia. Esta tarefa, que consiste em relacionar os termos mencionados no texto e os conceitos de uma base ontol´ogica e enciclop´edica, ´e normalmente conhecido como liga¸c˜ao de entidades (entity linking, EL). O nosso sistema utiliza como recursos externos algumas rela¸c˜oes da DBpedia e uma nova base constru´ıda mediante similaridade distribucional a partir das entradas textuais da Wikipedia. Foram avaliadas as vers˜oes portuguesa e inglesa (Gamallo & Garcia,2016), com resultados similares a outros sistemas EL de referˆencia, como DBpedia Spotlight (Mendes et al., 2011). Corretor lingu´ıstico O sistema de corre¸c˜ao lingu´ıstica de LinguaKit est´a, por enquanto, s´o dispon´ıvel como m´odulo experimental na vers˜ao web.12 Esta ferramenta foi desenvolvida principalmente para galego, variedade na qual foi avaliada e comparada com revis˜oes manuais de textos por parte de docentes profissionais (Gamallo et al., 2015a). O sistema cont´em diversos m´odulos que identificam e classificam diferentes tipos de erros habituais em aprendizes de galego, tanto de tipo l´exico (castelhanismos, hipercorre¸c˜oes, etc.), como gramatical (concordˆancia de g´enero e n´umero, posi¸c˜ao dos pronomes ´atonos, etc.). Existem, contudo, vers˜oes b´asicas para portuguˆes e espanhol, mas precisam de um maior 12https://linguakit.com/es/supercorrector desenvolvimento no que diz respeito a recursos lingu´ısticos tais como listas de tipologias de erros, ou regras sint´aticas para a identifica¸c˜ao e classifica¸c˜ao de erros. Outras ferramentas Para al´em das ferramentas referidas (e das aplica¸c˜oes de extra¸c˜ao mostradas na sec¸c˜ao 5), LinguaKit tamb´em inclui as seguintes aplica¸c˜oes: (i) um gerador autom´atico de resumos (sumarizador), (ii) um visualizador de palavras chave em contexto (concordˆancias), e (iii) conjugadores verbais autom´aticos. O sumarizador extrai as frases ou ora¸c˜oes mais relevantes do texto de entrada. Utiliza a segmenta¸c˜ao de ora¸c˜oes, a an´alise morfossint´atica, e os extratores de palavras e multipalavras para ponderar as ora¸c˜oes em graus de relevˆancia. A partir da lista ponderada de ora¸c˜oes, o usu´ario escolhe a percentagem de texto que quer extrair para construir o resumo. O visualizador de concordˆancias, tamb´em conhecido como key word in context, ´e uma ferramenta ´util para estudos em lingu´ıstica de corpus que procura no texto selecionado a palavra escolhida pelo utilizador, obtendo o seu contexto anterior e posterior em cada uma das suas ocorrˆencias. O m´odulo de conjuga¸c˜ao verbal permite obter de modo autom´atico a conjuga¸c˜ao completa de um verbo a partir da sua forma em infinitivo. O sistema cont´em as regras de conjuga¸c˜ao verbal do espanhol peninsular, do galego e de quatro normas do portuguˆes: duas variedades diat´opicas: portuguˆes europeu e brasileiro; e duas variantes ortogr´aficas para cada uma das anteriores: antes e depois do Acordo Ortogr´afico de 1990. Uma vez que o conjugador funciona aplicando diferentes regras em fun¸c˜ao do paradigma verbal, este pode gerar as formas conjugadas de verbos desconhecidos, tais como neologismos. Para al´em disso, identifica se o verbo ´e conhecido, com base em listas de verbos obtidos de recursos acad´emicos para cada uma das l´ınguas (Gamallo et al.,2013b). Usabilidade Para executar qualquer m´odulo em linha de comandos, disponibilizamos de um script,linguakit, que requer trˆes argumentos: l´ıngua, nome do m´odulo e ficheiro TXT a ser processado. Por exemplo, o comando que faz a chamada b´asica do m´odulo de etiquetagem morfossint´atica em portuguˆes ´e o seguinte: 24– Linguam´ atica Pablo Gamallo e Marcos Garcia ./linguakit pt tagger input.txt Com este comando, o utilizador n˜ao precisa de conhecer quais os m´odulos que dependem da etiquetagem (segmenta¸c˜ao, tokeniza¸c˜ao, etc). De facto, o c´odigo executado por linguakit ´e um pipeline de scripts, cada um deles representando um m´odulo da suite. No caso da etiquetagem morfossint´atica para um texto em portuguˆes, o pipeline invocado ´e o seguinte: cat input.txt |./tagger/pt/sentences-pt_exe.perl |./tagger/pt/tokens-pt_exe.perl |./tagger/pt/splitter-pt_exe.perl |./tagger/pt/lemmas-pt_exe.perl |./tagger/pt/tagger-pt_exe.perl Na pr´oxima vers˜ao de LinguaKit, os m´odulos poder˜ao ser invocados tamb´em mediante fun¸c˜oes Perl. 5 Extratores de termos Uma vez apresentados os m´odulos e aplica¸c˜oes que j´a tinham sido avaliadas em diferentes publica¸c˜oes, nesta sec¸c˜ao mostramos duas ferramentas de extra¸c˜ao, que tˆem como objetivo identificar e selecionar os termos chave e relevantes de um texto. Consideram-se termos relevantes aquelas express˜oes mais importantes de um texto que s˜ao utilizadas como ´ındices para —entre outras aplica¸c˜oes— a dete¸c˜ao imediata do tema ou t´opico, para o etiquetado textual autom´atico, ou bem para a classifica¸c˜ao de documentos. Estes dous m´odulos de extra¸c˜ao diferenciam-se no tipo de termos relevantes que extraem: (i) unidades monolexicais e nomes pr´oprios (termos b´asicos), e (ii) unidades plurilexicais (termos multipalavra). Termos b´asicos Chamamos termos b´asicos `aquelas unidades lexicais relevantes para um texto que se codificam como nomes comuns, nomes pr´oprios (simples ou compostos), adjetivos e verbos. Exceto os nomes pr´oprios, que podem ser express˜oes compostas por v´arias palavras (por exemplo, “Nova Iorque”, “Universidade Nova de Lisboa”, etc), os termos b´asicos s˜ao palavras simples monolexicais. O m´etodo de extra¸c˜ao leva-se a cabo em duas fases: sele¸c˜ao de candidatos e ordena¸c˜ao por relevˆancia. Na primeira fase, o sistema identifica todos os candidatos a serem termos b´asicos mediante o etiquetador morfossint´atico. Deste modo, selecionam-se como candidatos todas as unidades lexicais que foram etiquetadas como nomes (comuns e pr´oprios), adjetivos e verbos. Na segunda fase, os termos ordenam-se por relevˆancia e escolhem-se os Nprimeiros, sendo N um valor num´erico parametriz´avel. Para calcular a relevˆancia dos termos b´asicos recorremos `a no¸c˜ao de termhood, ´e dizer, ao grau com que a unidade lingu´ıstica est´a relacionada com conceitos espec´ıficos do dom´ınio do texto (Kageura & Umino,1996). Esta no¸c˜ao de termhood pode verse tamb´em como a probabilidade de um termo formar parte do dom´ınio. O termhood n˜ao ´e, portanto, uma medida discreta, mas cont´ınua. Em consequˆencia, medimos a relevˆancia de um termo b´asico (termhood) mediante um peso estat´ıstico que ´e calculado contrastando as frequˆencias dos candidatos no texto de entrada (dados observados) com um corpus de referˆencia (dados esperados). Mais precisamente, o peso de um termo ´e o valor qui-quadrado que mede a divergˆencia entre os dados observados e os esperados. Estes ´ultimos s˜ao os dados obtidos a partir de um corpus de referˆencia com um tamanho m´edio de 100M de tokens por l´ıngua, compilado pelo grupo ProLNat@GE, e que ´e composto por textos de v´arios g´eneros e dom´ınios: jornal´ıstico, t´ecnico, liter´ario, de redes sociais, etc. Finalmente, os termos s˜ao organizados em fun¸c˜ao do seu peso, de maior a menor, e o usu´ario escolhe os Nmais relevantes em fun¸c˜ao do tamanho do texto e das necessidades de an´alise. Termos multipalavra Os termos multipalavra s˜ao express˜oes relevantes codificadas como unidades plurilexicais que instanciam padr˜oes espec´ıficos de etiquetas morfossint´aticas. Por exemplo, l´ıngua natural,processamento da l´ıngua,tecnologias da l´ıngua ou analisador sint´atico podem ser unidades multipalavra relevantes dentro de um texto de dom´ınio cient´ıfico focado em quest˜oes de PLN. Como no caso dos termos b´asicos, o processo de extra¸c˜ao de multipalavras divide-se em duas fases: sele¸c˜ao de candidatos e ordena¸c˜ao dos mesmos por relevˆancia. Por´em, tanto a sele¸c˜ao de candidatos como a ordena¸c˜ao realizam-se mediante estrat´egias diferentes `as utilizadas para a extra¸c˜ao dos termos b´asicos. Para a primeira fase utilizamos um conjunto de padr˜oes de etiquetas (tabela 2) para identificar todas aquelas express˜oes plurilexicais que os instanciam (os artigos e determinantes das express˜oes n˜ao se tomam em conta na instancia¸c˜ao). O conjunto foi desenhado para a identiLinguaKit: uma ferramenta multilingue para an´alise lingu´ıstica e extra¸c˜ao de informa¸c˜ao Linguam´ atica – 25 nome −adj adj −nome nome −nome nome −prep −nome nome −prep −adj −nome nome −prep −nome −adj adj −nome −prep −nome nome −adj −prep −nome adj −nome −prep −nome −adj nome−adj−prep−nome−adj adj −nome −prep −adj −nome nome−adj−prep−adj−nome Tabela 2: Conjunto de padr˜oes de etiquetas utilizado para a identifica¸c˜ao de candidatos a termos multipalavra (adj ´e adjetivo e prep ´e preposi¸c˜ao). peso multipalavra padr˜ao de etiquetas 9,95 daci´on en pago nome-prep-nome 7,94 viviendas vac´ıas nome-adj 7,27 renta b´asica nome-adj 5,24 iniciativas legislativas nome-adj 2,99 reuniones de representantes nome-prep-nome Tabela 3: As cinco multipalavras mais relevantes (unithood) extra´ıdas do programa eleitoral do partido pol´ıtico espanhol Podemos para as elei¸c˜oes do 20D/2015. fica¸c˜ao de multipalavras nas quatro l´ınguas tratadas. Este m´etodo ´e semelhante ao descrito noutros trabalhos sobre extra¸c˜ao terminol´ogica (Vivaldi & Rodr´ıguez,2001;S´anchez & Moreno, 2006). Os padr˜oes foram selecionados a partir da revis˜ao manual de uma lista de n-gramas de etiquetas ordenadas por frequˆencia em corpora de diferentes l´ınguas. Na segunda fase, a ordena¸c˜ao por relevˆancia, utilizamos uma estrat´egia diferente `a empregada na ordena¸c˜ao por termos b´asicos. Enquanto estes se ordenam em fun¸c˜ao da no¸c˜ao de termhood, a relevˆancia das express˜oes multipalavra definese mediante o conceito de unithood. Esta no¸c˜ao faz referˆencia `a associa¸c˜ao das sequˆencias de palavras com unidades lexicais est´aveis. Mais concretamente, unithood refere-se ao grau de for¸ca e coes˜ao entre as unidades lexicais que constituem os sintagmas e coloca¸c˜oes (Kageura & Umino, 1996). A unithood s´o se aplica, portanto, a unidades plurilexicais com alguma coes˜ao interna e n˜ao a unidades monolexicais. O grau de coes˜ao, ou unithood, pode calcularse com diferentes medidas de associa¸c˜ao lexical. O m´odulo de LinguaKit permite escolher entre 5 medidas para ordenar os candidatos a multipalavra: (a) qui-quadrado, (b) fun¸c˜ao de verosimilhan¸ca (loglikehood), (c) informa¸c˜ao mutua (mi), (d) probabilidade condicional sim´etrica (scp), e (e) simples co-ocorrˆencia. As medidas de associa¸c˜ao aplicam-se para verificar se os constituintes co-ocorrem num sintagma aleatoriamente ou por atra¸c˜ao. Assim, os valores observados equivalem `a frequˆencia da express˜ao multipalavra no texto de entrada, e os valores esperados calculamse a partir das frequˆencias dos constituintes por separado. ´ E importante sublinhar que estas estrat´egias b´asicas de extra¸c˜ao s˜ao de prop´osito geral pois n˜ao est˜ao adaptadas a um dom´ınio espec´ıfico. S˜ao aplic´aveis portanto a qualquer dom´ınio. No entanto, para serem mais eficientes, precisavam de incluir novos sub-m´odulos que permitissem uma f´acil adapta¸c˜ao a dom´ınios de especialidade. Na atualidade, a extra¸c˜ao s´o permite selecionar e identificar candidatos a termo em geral, e n˜ao unidades terminol´ogicas de um dom´ınio previamente identificado. Como exemplo de utiliza¸c˜ao, as tabelas 3e4 mostram as express˜oes multipalavra mais relevantes (usando qui-quadrado como peso para a ordena¸c˜ao) extra´ıdas de dous programas de partidos pol´ıticos, Podemos e o Partido Popular, para as elei¸c˜oes ao parlamento espanhol de 20 de dezembro de 2015. Assim, este exemplo mostra como o extrator permite identificar as prioridades program´aticas dos partidos pol´ıticos com uma simples vista de olhos sobre os termos mais relevantes. Mesmo se a eficiˆencia da extra¸c˜ao de termos n˜ao foi avaliada quantitativamente, podemos encontrar alguns elementos que demonstram a sua usabilidade desde um ponto de vista qualitativo. Por um lado, os dous extratores de termos (b´asicos e multipalavra) foram inseridos no m´odulo mais complexo de anota¸c˜ao e liga¸c˜ao semˆantica, o qual sim foi avaliado quantitativamente e comparado com outros sistemas de anota¸c˜ao. Por outro lado, estes m´odulos foram utilizados por utentes muito variados com dife26– Linguam´ atica Pablo Gamallo e Marcos Garcia peso multipalavra padr˜ao de etiquetas 20,37 inversores extranjeros nome-adj 11,44 creaci´on de empleo nome-prep-nome 9,75 competitividad de econom´ıa nome-prep-nome 7,73 reducci´on de impuestos nome-prep-nome 2,93 ciudadanos espa˜noles nome-adj Tabela 4: As cinco multipalavras mais relevantes (unithood) extra´ıdas do programa eleitoral do partido pol´ıtico espanhol Partido Popular para as elei¸c˜oes do 20D/2015. rentes aplica¸c˜oes e objetivos, tais como an´alises dos programas de partidos pol´ıticos feitas por jornalistas.13 6 Conclus˜oes e trabalho futuro Este artigo apresentou LinguaKit, um pacote lingu´ıstico que permite os utilizadores ter um acesso f´acil e unificado a m´odulos de an´alise lingu´ıstica muito diversos. O conjunto de ferramentas dispon´ıvel, mesmo se amplo e variado, fica ainda longe de cobrir todos as necessidades dos profissionais e utilizadores da l´ıngua. A este respeito, como trabalho futuro pretendemos, por um lado, continuar a melhorar o desempenho de alguns dos m´odulos de an´alise, e por outro lado ampliar o n´umero de m´odulos com sistemas de transcri¸c˜ao fon´etica e fonol´ogica. Al´em disso, est´a prevista a adapta¸c˜ao dos m´odulos de an´alise morfossint´atica e sint´atica para a sua compatibilidade com as diretrizes de anota¸c˜ao das dependˆencias universais. Para al´em de novos m´odulos, o sistema pode enriquecer-se com funcionalidades simples mas ´uteis para linguistas e investigadores. Por exemplo, um buscador de contextos l´exico-sint´aticos que utilize o analisador sint´atico para permitir procurar que nomes funcionam como sujeitos de um verbo espec´ıfico, adjetivos que modifiquem um dado nome, etc. Em rela¸c˜ao `as novas funcionalidades, ser´a preciso identificar os principais objetivos dos utilizadores para tentar que o sistema cubra as suas necessidades. Agradecimentos Este trabalho foi realizado gra¸cas ao financiamento da Ayuda da Fundaci´on BBVA para Investigadores y Creadores Culturales, do projeto TELEPARES (MINECO, ref:FFI201451978-C2-1-R), da Conseller´ıa de Cultura, Educaci´on e Ordenaci´on Universitaria (2016-2019, 13http://www.galiciaconfidencial.com/noticia/ 27170-son-galiza-galicia-marea ED431G/08), do European Regional Development Fund (ERDF), e de um contrato Juan de la Cierva-formaci´on, com referˆencia FJCI-201422853. Referˆencias Agerri, Rodrigo, Josu Bermudez & German Rigau. 2014. IXA pipeline: Efficient and ready to use multilingual NLP tools. Em 9th International Conference on Language Resources and Evaluation (LREC), 3823–3828. Bird, Steven, Edward Loper & Ewan Klein. 2009. Natural language processing with Python. O’Reilly Media Inc. Corro, Luciano Del & Rainer Gemulla. 2013. ClausIE: Clause-based open information extraction. Em The World Wide Web Conference, 355–366. Etzioni, Oren, Anthony Fader, Janara Christensen, Stephen Soderland & Mausam. 2011. Open information extraction: the second generation. Em International Joint Conference on Artificial Intelligence (IJCAI), 3–10. Gamallo, Pablo. 2015. Dependency parsing with compression rules. Em International Workshop on Parsing Technology (IWPT), 107–117. Gamallo, Pablo & Marcos Garcia. 2011. A resource-based method for named entity extraction and classification. Em Portuguese Conference on Artificial Intelligence (EPIA 2011), 610–623. Gamallo, Pablo & Marcos Garcia. 2014. Citius: a naive-bayes strategy for sentiment analysis on English tweets. Em 8th International Workshop on Semantic Evaluation (SemEval), 171–175. Gamallo, Pablo & Marcos Garcia. 2015. Multilingual open information extraction. Em 17th Portuguese Conference on Artificial Intelligence (EPIA), 711–722. LinguaKit: uma ferramenta multilingue para an´alise lingu´ıstica e extra¸c˜ao de informa¸c˜ao Linguam´ atica – 27