• Português
  • English
  • Español
  • Sumarização

    Por: em 19 de janeiro de 2018

    Neste post vamos falar a respeito de uma aplicação bastante popular de processamento de linguagem natural, que é a sumarização automática de textos. A sumarização automática de textos é um ramo da área de recuperação de informações que utiliza técnicas e algoritmos para identificar, coletar ou gerar sentenças relevantes a partir de documentos textuais, produzindo ao final um sumário ou resumo. Sumários caracterizam-se por serem construídos de modo a não perderem consideravelmente o significado original, apesar de conterem menos informações e poderem apresentar diferentes estruturas, em relação a suas fontes [1]. Pesquisas iniciais em sumarização automática de textos datam da década de 1950, com o trabalho pioneiro de Luhn, que sugeriu o uso de informações estatísticas derivadas do cálculo da frequência das palavras e de sua distribuição no texto para calcular uma medida relativa de significância [2]. Esta medida podia ser usada tanto para palavras como para sentenças. Palavras de maior frequência seriam as mais significativas, assim como sentenças com palavras de maior frequência seriam as mais representativas do texto. Luhn aplicou sua técnica para gerar abstracts e palavras-chaves de artigos técnicos. As sentenças mais representativas compunham o abstract e as palavras mais representativas eram as palavras-chaves. Métodos que coletam palavras e sentenças diretamente do texto e as agrupam no resumo sem preocupação com reescrita são chamados de extrativos. Já métodos que usam uma representação linguística interna para gerar resumos mais humanos, parafraseando a intenção do texto original, são chamados de abstratos [3]. O método de Luhn era, portanto, extrativo.

     

    Métodos e Algoritmos

    Dez anos depois da publicação do trabalho de Luhn, Edmundson [4] apresentou uma proposta na qual, além de considerar as palavras mais frequentes, tratava três componentes adicionais: palavras pragmáticas (cue words); palavras de título e título; e indicadores estruturais (localização da sentença no texto). O sistema de Edmundson era parametrizado de acordo com a influência de todas estas heurísticas, atribuindo uma pontuação (positiva ou negativa) à sentença. Depois que todas as heurísticas eram aplicadas, as frases de maior pontuação eram incluídas no resumo. Os trabalhos de Luhn e Edmundson são considerados fundamentais na área de sumarização automática de textos.

    Outra técnica usada em sumarização automática de textos chama-se LSA – Latent Semantic Analysis. O LSA analisa documentos para encontrar os significados ou conceitos subjacentes. É um método que se originou em outra área de processamento de linguagem natural, chamada recuperação de informações, na qual palavras são informadas como argumentos para a recuperação de textos. O LSA parte do pressuposto de que uma palavra descreve um conceito e que os autores dos textos escolhem palavras para representar estes conceitos. Selecionar as sentenças de um texto significa, portanto, selecionar os conceitos mais importantes, através das palavras que os representam. O algoritmo do LSA identifica quais palavras são usadas em conjunto e quais palavras comuns são vistas em frases diferentes. Uma grande quantidade de palavras comuns entre frases diferentes indica que as frases são semanticamente relacionadas. A Figura 1 apresenta um gráfico gerado pelo LSA a partir de títulos de livros sobre investimentos e das palavras que aparecem nos títulos pelo menos duas vezes [5].

    Figura 1. Grupos de Títulos e Palavras [5]

    Observam-se três diferentes grupos: o cluster azul, no qual se encontram títulos sobre investimentos imobiliários; o cluster verde, que agrupa os títulos sobre valor de investimento e o cluster vermelho, que agrupa os títulos que tratam do mercado de ações. A escolha das sentenças para o sumário pode ser feita de várias formas, como, por exemplo, assumindo que as primeiras sentenças dos textos são as que apresentam as informações mais importantes. Um texto que contivesse os títulos apresentados no exemplo acima seria sumarizado a partir da escolha de títulos que representassem cada um dos conceitos identificados, com prioridade para aqueles que estivessem mais próximo do início do texto.

    Existem técnicas que utilizam grafos para representação das sentenças. É o caso do TextRank, um algoritmo não supervisionado, baseado em grafos, usado para sumarização automática de textos, que também pode ser usado ​​para obter as palavras-chave de um documento. Foi introduzido por Rada Mihalcea e Paul Tarau [6] a partir de uma variação do algoritmo PageRank [7].

    Este modelo de classificação baseia-se na ideia de votação ou recomendação. Pode-se imaginar que quando um vértice aponta para outro, é basicamente um voto que esta sendo dado para este outro vértice. Assim, quanto maior o número de votos que o vértice recebe, maior é a importância que ele tem. Além disso, o algoritmo também considera a importância do vértice do qual se está recebendo o voto. Se o vértice que vota também recebe muitos votos, ele tem importância maior do que outro vértice que recebe poucos votos. Os vértices podem representar palavras, n-Gramas ou sentenças completas. No caso de sentenças, o grafo é montado da seguinte forma:

    1) Identificam-se sentenças do texto e atribuem-se vértices para elas;

    2) Definem-se as arestas entre os vértices através de uma função de similaridade, medida através da quantidade de palavras comuns entre as sentenças. Quanto maior for a quantidade de palavras comuns, mais similares serão as sentenças. Para evitar possíveis vieses provocados por sentenças longas, divide-se o total apurado de palavras comuns pela soma de palavras de cada frase;

    3) Aplica-se o algoritmo TextRank aos vértices e arestas até que ele convirja;

    4) Ordenam-se os vértices de forma decrescente e selecionam-se os mais relevantes.

    A Figura 2 apresenta o exemplo usado por Mihalcea e Tarau para mostrar o resultado do score de sentenças após a aplicação do algoritmo.

    Figura 2. Grafo Ponderado de Sentenças[6]

      

    Cada vértice representa uma sentença do texto analisado. São 24 sentenças, cada qual com o respectivo score. As sentenças com maior score são selecionadas para o sumário, no caso 9, 16, 18 e 15.

     

    Exemplos 

    Vamos usar a biblioteca Sumy [8], desenvolvida em Python, para exemplificar os diferentes métodos e algoritmos. O Quadro 1 apresenta o texto que queremos sumarizar.

    Quadro 1. Fragmento de  Cystic Fibrosis [9]

     

    Usando o método de Luhn e trazendo as três sentenças mais representativas, chegamos ao sumário apresentado pela Quadro 2.

    Quadro 2. Sumário obtido pelo método de Luhn

     

    Observa-se que as três sentenças do sumário são exatamente as mesmas do texto original, o que é uma característica dos métodos extrativos. Usando o método LSA e trazendo as três sentenças mais representativas, chegamos ao resumo apresentado pela Quadro 3.

    Quadro 3. Sumário obtido pelo método LSA

     

    Nota-se que o resumo obtido pelo método LSA é diferente do resultado apresentado pelo método de Luhn. Apenas a primeira sentença se manteve nos dois resumos, já a segunda e terceira sentenças são diferentes. De acordo com o método LSA, cada sentença representa um conceito diferente, portanto, três conceitos diferentes são apresentados no resumo, ao passo que pelo método de Luhn, as sentenças com palavras mais frequentes foram ordenadas de forma decrescente e as três primeiras foram selecionadas para o resumo.

    Por fim, o Quadro 4 apresenta o sumário obtido pelo método TextRank. A primeira frase coincide com a primeira frase dos resumos anteriores, a segunda coincide com o método de Luhn e a terceira não tinha aparecido nos métodos anteriores.

    Quadro 4. Sumário obtido pelo método TextRank

     

    Como vimos na sessão anterior, o método TextRank trata as sentenças apresentadas como vértices de um grafo que representa o texto analisado. As sentenças apresentadas no resumo são aquelas que apresentam melhor score, ou seja, aquelas que além de receberem mais votos de outras recebem mais votos de outras sentenças também consideradas relevantes no texto.

    As diferenças nos sumários apresentados levantam uma questão: qual é a melhor técnica de sumarização? Existem diversas linhas de pesquisas com objetivo de avaliar técnicas de sumarização automática de textos. As métricas mais conhecidas são os ROUGE scores, que medem a quantidade de n-Gramas comuns entre o sumário avaliado e um sumário tido como correto (Gold Summary) e a métrica BLUE, um tipo de indicador de precisão, que mede a quantidade de palavras que ocorrem tanto no sumário analisado quanto no Gold Summary e divide esta quantidade pela quantidade de palavras do Gold Summary. Quanto maiores são os scores do ROUGE e do BLUE, melhores são os sumários analisados.

     

    Conclusões

    A área de sumarização automática de textos está em plena expansão, tendo em vista o aumento da quantidade de informações disponíveis apenas em linguagem natural, catalisada nos últimos anos com o uso da Internet, e a necessidade das pessoas de obterem acesso a este conteúdo, o que demanda tempo, capacidade de identificar o que é relevante e capacidade de selecionar o que é essencial. Apresentamos aqui uma breve introdução ao assunto, que é bastante amplo. Vimos técnicas históricas e atuais, e observamos os resultados obtidos a partir do processamento de um mesmo texto de referência, evidenciando que cada método pode levar a resultados diferentes e que há necessidade da aplicação de técnicas de mensuração de qualidade para avaliar o resultado gerado por cada método.

     

    PLN no DataLab

    O Latam Datalab atua ativamente em pesquisas envolvendo processamento da línguagem natural. Técnicas de sumarização são amplamente usadas para resolver problemas de áreas nas quais o uso de textos é acentuado, tais como jurídico, inteligência de mercado e atendimento ao consumidor.

    Referências

    [1] Rino, L. H. M., Pardo, T. A. S. A. Sumarização Automática de Textos: Principais Características e Metodologias. Disponível em: http://conteudo.icmc.usp.br/pessoas/taspardo/JAIA2003-RinoPardo.pdf. Acesso: 14/01/2018.

    [2] Luhn, H.P. The Automatic Creation of Literature Abstracts. Disponível em: http://ieeexplore.ieee.org/document/5392672/?arnumber=5392672.

    [3] Text Summarization in Python: Extractive vs. Abstractive techniques revisited. Disponível em: https://rare-technologies.com/text-summarization-in-python-extractive-vs-abstractive-techniques-revisited/. Acesso: 14/01/2018.

    [4] Edmundson, H.P. (1969). New Methods in Automatic Extracting. Journal of the ACM, 16, pp. 264-285.

    [5] Latent Semantic Analysis (LSA) Tutorial. Disponível em:

    https://technowiki.wordpress.com/2011/08/27/latent-semantic-analysis-lsa-tutorial/.  Acesso: 14/01/2018.

    [6] Mihalcea, R., Tarau, P.: Textrank: Bringing order into texts. In: Lin, D., Wu, D.

    (eds.) Proceedings of EMNLP 2004. pp. 404–411. Association for Computational

    Linguistics, Barcelona, Spain (July 2004).

    [7] Page, L., Brin, S., Motwani, R., Winograd, T.: The pagerank citation ranking:

    Bringing order to the web. In: Proceedings of the 7th International World Wide

    Web Conference. pp. 161–172. Brisbane, Australia (1998), citeseer.nj.nec.com/

    page98pagerank.html.

    [8] Sumy. Disponível em: https://github.com/miso-belica/sumy. Acesso: 14/01/2018

    [9] Cystic fibrosis. Disponível em:

    https://www.umm.edu/health/medical/altmed/condition/cystic-fibrosis. Acesso: 14/01/2008.

     

    19 de janeiro de 2018

    Filtre por mês

    Filtre por autor