sexta-feira, 1 de março de 2013

Aelius na coletânea de artigos do 1º LiPrAL

Está para ser publicada coletânea com artigos de ministrantes de minicursos, conferencistas e participantes do 1º Colóquio de Linguística para o Processamento Automático de Linguagem Natural (LiPrAL).
Nessa coletânea, há o seguinte artigo sobre o Aelius:

ALENCAR, Leonel Figueiredo de. Novos recursos do Aelius para o processamento computacional raso do português. In: Laporte, Eric; Smarsaro, Aucione; Vale, Oto. (Orgs.). Dialogar é preciso: Linguística para processamento de línguas. Vitória: PPGEL/UFES, 2013.

quarta-feira, 27 de fevereiro de 2013

Aelius POS-Tagger 2013

Finalmente, está disponível no SourceForge a nova versão do Aelius Brazilian Portuguese POS-Tagger and Corpus Annotation Tool, que conta, agora, com um detalhado manual:

http://aelius.sourceforge.net/

O Aelius 2013 está muito mais poderoso. Entre outras coisas, consegue etiquetar morfossintaticamente  textos com base em três tag sets e vários algoritmos de aprendizagem de máquina! A etiquetagem morfossintática pelo Apache OpenNLP via Aelius é mais precisa do que pela própria ferramenta de etiquetagem do Apache OpenNLP porque o Aelius toqueniza corretamente as contrações e ênclises.

Palavras-chave: Linguística computacional. Processamento computacional do português. Toquenização. NLTK. Python. Etiquetagem morfossintática. Anotação de corpora linguísticos. 

Keywords: Computational linguistics. Shallow processing of Brazilian Portuguese. Tokenization. Tokenizing. NLTK. Python. POS-tagging. Part-of-speech tagging. Morpho-syntactic tagging. Corpus annotation.

quinta-feira, 7 de fevereiro de 2013

Caixas de ferramentas para o PLN

Panorama sucinto e principais bibliotecas para o processamento automático da linguagem natural que constituem software livre e de código aberto


Abaixo, uma descrição concisa e bem elaborada da função do processamento automático da linguagem natural no mundo empresarial, descrevendo algumas das principais bibliotecas (caixas de ferramentas) para execução de diversas tarefas de análise computacional de textos, as quais desempenham um papel cada vez mais importante no setor de tecnologia da informação:

http://osintegrators.com/opensoftwareintegrators%7Chowyoucanbenefitfromopensourcenaturallanguageprocessing

sexta-feira, 1 de fevereiro de 2013

Novos etiquetadores do Aelius

Exemplo de texto


Dois parágrafos iniciais de Luzia-Homem de Domingos Olímpio

O morro do Curral do Açougue emergia em suave declive da campina ondulada. Escorchado, indigente de arvoredo, o cômoro enegrecido pelo sangue de reses sem conto, deixara de ser o sítio sinistro do matadouro e a pousada predileta de bandos de urubutingas e camirangas vorazes.

Bateram-se os vastos currais, de grossos esteios de aroeira, fincados a pique, rijos como barras de ferro, currais seculares, obra ciclópica, da qual restava apenas, como lúgubre vestígio, o moirão ligeiramente inclinado, adelgaçado no centro, polido pelo contínuo atrito das cordas de laçar as vítimas, que a ele eram arrastadas aos empuxões, bufando, resistindo, ou entregando, resignadas e mansas, o pescoço à faca do magarefe. Ali, no sítio de morte, fervilhavam, então, em ruidosa diligência, legiões de operários construindo a penitenciária de Sobral.

Etiquetagem morfossintática pelo Aelius

Utilização do conjunto de etiquetas do Corpus Histórico do Português Tycho Brahe

>>> import os
>>> os.chdir("../analises")
>>> texto="luzia_inicio.txt"
>>> texto
'luzia_inicio.txt'
>>> print open(texto).read()
O morro do Curral do Açougue emergia em suave declive da campina ondulada. Escorchado, indigente de arvoredo, o cômoro enegrecido pelo sangue de reses sem conto, deixara de ser o sítio sinistro do matadouro e a pousada predileta de bandos de urubutingas e camirangas vorazes.

Bateram-se os vastos currais, de grossos esteios de aroeira, fincados a pique, rijos como barras de ferro, currais seculares, obra ciclópica, da qual restava apenas, como lúgubre vestígio, o moirão ligeiramente inclinado, adelgaçado no centro, polido pelo contínuo atrito das cordas de laçar as vítimas, que a ele eram arrastadas aos empuxões, bufando, resistindo, ou entregando, resignadas e mansas, o pescoço à faca do magarefe. Ali, no sítio de morte, fervilhavam, então, em ruidosa diligência, legiões de operários construindo a penitenciária de Sobral.





>>> from Aelius import Extras, Toqueniza, AnotaCorpus
>>> h=Extras.carrega("AeliusHunPos")
>>> AnotaCorpus.anota_texto(texto,h,"hunpos",Toqueniza.TOK_PORT)
Arquivo anotado:
luzia_inicio.hunpos.txt
>>> print open("luzia_inicio.hunpos.txt").read()
O/D morro/N do/P+D Curral/NPR do/P+D Açougue/N emergia/VB-D em/P suave/ADJ-G declive/N da/P+D-F campina/N ondulada/VB-AN-F ./.
Escorchado/VB-AN ,/, indigente/ADJ-G de/P arvoredo/N ,/, o/D cômoro/NPR enegrecido/VB-AN pelo/P+D sangue/N de/P reses/N-P sem/P conto/N ,/, deixara/VB-RA de/P ser/SR o/D sítio/N sinistro/N do/P+D matadouro/N e/CONJ a/D-F pousada/N predileta/ADJ-F de/P bandos/N-P de/P urubutingas/N-P e/CONJ camirangas/N-P vorazes/ADJ-G-P ./.


Bateram/VB-D -/+ se/SE os/D-P vastos/ADJ-P currais/N-P ,/, de/P grossos/ADJ-P esteios/N-P de/P aroeira/N ,/, fincados/VB-AN-P a/P pique/N ,/, rijos/ADJ-P como/CONJS barras/N-P de/P ferro/N ,/, currais/N-P seculares/ADJ-G-P ,/, obra/N ciclópica/ADJ-F ,/, da/P+D-F qual/WPRO restava/VB-D apenas/ADV ,/, como/CONJS lúgubre/ADJ-G vestígio/N ,/, o/D moirão/N ligeiramente/ADV inclinado/VB-AN ,/, adelgaçado/VB-AN no/P+D centro/N ,/, polido/VB-AN pelo/P+D contínuo/ADJ atrito/N das/P+D-F-P cordas/N-P de/P laçar/VB as/D-F-P vítimas/N-P ,/, que/WPRO a/P ele/PRO eram/SR-D arrastadas/VB-AN-F-P aos/P+D-P empuxões/N-P ,/, bufando/VB-G ,/, resistindo/VB-G ,/, ou/CONJ entregando/VB-G ,/, resignadas/VB-AN-F-P e/CONJ mansas/VB-AN-F-P ,/, o/D pescoço/N à/P+D-F faca/N do/P+D magarefe/N ./.
Ali/ADV ,/, no/P+D sítio/N de/P morte/N ,/, fervilhavam/VB-D ,/, então/ADV ,/, em/P ruidosa/ADJ-F diligência/N ,/, legiões/N-P de/P operários/N-P construindo/VB-G a/D-F penitenciária/N de/P Sobral/NPR ./.


Utilização do conjunto de etiquetas do corpus MAC-Morpho

>>> m=Extras.carrega("AeliusHunPosMM")
>>> AnotaCorpus.INFIXO="hunpos_macmorpho"
>>> AnotaCorpus.anota_texto(texto,m,"hunpos",Toqueniza.TOK_PORT_MM,separacao_contracoes=True)
Arquivo anotado:
luzia_inicio.hunpos_macmorpho.txt
>>> print open("luzia_inicio.hunpos_macmorpho.txt").read()
O/ART morro/N de/PREP|+ o/ART Curral/N de/PREP|+ o/ART Açougue/N emergia/V em/PREP suave/ADJ declive/N de/PREP|+ a/ART campina/N ondulada/PCP ./.
Escorchado/NPROP ,/, indigente/N de/PREP arvoredo/N ,/, o/ART cômoro/N enegrecido/PCP por/PREP|+ o/ART sangue/N de/PREP reses/N sem/PREP conto/N ,/, deixara/VAUX de/PREP ser/V o/ART sítio/N sinistro/ADJ de/PREP|+ o/ART matadouro/N e/KC a/ART pousada/N predileta/ADJ de/PREP bandos/N de/PREP urubutingas/N e/KC camirangas/N vorazes/ADJ ./.


Bateram/V se/KS os/ART vastos/ADJ currais/N ,/, de/PREP grossos/ADJ esteios/N de/PREP aroeira/N ,/, fincados/PCP a/ART pique/N ,/, rijos/PCP como/PREP barras/N de/PREP ferro/N ,/, currais/N seculares/ADJ ,/, obra/N ciclópica/ADJ ,/, de/PREP|+ a/PRO-KS-REL qual/PRO-KS-REL restava/V apenas/PDEN ,/, como/PREP lúgubre/ADJ vestígio/N ,/, o/ART moirão/N ligeiramente/ADV inclinado/PCP ,/, adelgaçado/PCP em/PREP|+ o/ART centro/N ,/, polido/PCP por/PREP|+ o/ART contínuo/ADJ atrito/N de/PREP|+ as/ART cordas/N de/PREP laçar/V as/ART vítimas/N ,/, que/PRO-KS-REL a/PREP ele/PROPESS eram/V arrastadas/PCP a/PREP|+ os/ART empuxões/N ,/, bufando/V ,/, resistindo/V ,/, ou/KC entregando/V ,/, resignadas/PCP e/KC mansas/PCP ,/, o/ART pescoço/N a/PREP|+ a/ART faca/N de/PREP|+ o/ART magarefe/N ./.
Ali/ADV ,/, em/PREP|+ o/ART sítio/N de/PREP morte/N ,/, fervilhavam/V ,/, então/ADV ,/, em/PREP ruidosa/ADJ diligência/N ,/, legiões/N de/PREP operários/N construindo/V a/ART penitenciária/N de/PREP Sobral/NPROP ./.





Avaliação de etiquetadores pelo Aelius

Etiquetagem nos moldes do Corpus Histórico do Português Tycho Brahe



 

>>> from Aelius import Avalia
>>> ouro="luzia_inicio.chptb.gold.txt"
>>> print open(ouro).read()
O/D morro/N do/P+D Curral/NPR do/P+D Açougue/NPR emergia/VB-D em/P suave/ADJ-G declive/N da/P+D-F campina/N ondulada/VB-AN-F ./.
Escorchado/VB-AN ,/, indigente/ADJ-G de/P arvoredo/N ,/, o/D cômoro/N enegrecido/VB-AN pelo/P+D sangue/N de/P reses/N-P sem/P conto/N ,/, deixara/VB-RA de/P ser/SR o/D sítio/N sinistro/ADJ do/P+D matadouro/N e/CONJ a/D-F pousada/N predileta/ADJ-F de/P bandos/N-P de/P urubutingas/N-P e/CONJ camirangas/N-P vorazes/ADJ-G-P ./.


Bateram/VB-D -/+ se/SE os/D-P vastos/ADJ-P currais/N-P ,/, de/P grossos/ADJ-P esteios/N-P de/P aroeira/N ,/, fincados/VB-AN-P a/P pique/N ,/, rijos/ADJ-P como/CONJS barras/N-P de/P ferro/N ,/, currais/N-P seculares/ADJ-G-P ,/, obra/N ciclópica/ADJ-F ,/, da/P+D-F qual/WPRO restava/VB-D apenas/ADV ,/, como/CONJS lúgubre/ADJ-G vestígio/N ,/, o/D moirão/N ligeiramente/ADV inclinado/VB-AN ,/, adelgaçado/VB-AN no/P+D centro/N ,/, polido/VB-AN pelo/P+D contínuo/ADJ atrito/N das/P+D-F-P cordas/N-P de/P laçar/VB as/D-F-P vítimas/N-P ,/, que/WPRO a/P ele/PRO eram/SR-D arrastadas/VB-AN-F-P aos/P+D-P empuxões/N-P ,/, bufando/VB-G ,/, resistindo/VB-G ,/, ou/CONJ entregando/VB-G ,/, resignadas/VB-AN-F-P e/CONJ mansas/ADJ-F-P ,/, o/D pescoço/N à/P+D-F faca/N do/P+D magarefe/N ./.
Ali/ADV ,/, no/P+D sítio/N de/P morte/N ,/, fervilhavam/VB-D ,/, então/ADV ,/, em/P ruidosa/ADJ-F diligência/N ,/, legiões/N-P de/P operários/N-P construindo/VB-G a/D-F penitenciária/N de/P Sobral/NPR ./.

>>> Avalia.TestaEtiquetador(h,"hunpos",ouro=ouro)
Total de erros: 4
Total de palavras:158
Acurácia:97.468354
>>> Avalia.VERBOSE=True
>>> Avalia.TestaEtiquetador(h,"hunpos",ouro=ouro)
Total de erros: 4
Total de palavras:158
Acurácia:97.468354
>>> Avalia.exibe_erros()
Anotação automática    Anotação humana

Açougue/N    Açougue/NPR
cômoro/NPR    cômoro/N
sinistro/N    sinistro/ADJ
mansas/VB-AN-F-P    mansas/ADJ-F-P
>>>


Etiquetagem nos moldes do corpus MAC-Morpho

>>> gold="luzia_inicio.macmorpho.gold.txt"
>>> Avalia.TestaEtiquetador(m,"hunpos",ouro=gold)
Total de erros: 9
Total de palavras:170
Acurácia:94.705882
>>> Avalia.exibe_erros()
Anotação automática    Anotação humana

Curral/N    Curral/NPROP
Açougue/N    Açougue/NPROP
indigente/N    indigente/ADJ
Bateram/V    Bateram/V|+
se/KS    se/PROPESS
a/ART    a/PREP
rijos/PCP    rijos/ADJ
a/PRO-KS-REL    a/PROSUB
mansas/PCP    mansas/ADJ
>>>










 





terça-feira, 29 de janeiro de 2013

Simpósio de Linguística Computacional em Fortaleza

O STIL 2013 – The 9th Brazilian Symposium in Information and Human Language Technology será realizado em Fortaleza, no período de 21 a 23 de outubro de 2013.  São aceitas, até 31 de março de 2013, submissões de trabalhos nas áreas de liguística computacional, linguística de corpus e outras subdisciplinas linguístiicas relevantes para o processamento automático da linguagem natural, conforme a chamada de trabalhos que reproduzo abaixo.



FIRST CALL FOR PAPERS

STIL 2013 - The 9th Brazilian Symposium in Information and Human Language Technology
Fortaleza/Ceará, October 21-23, 2013

STIL is the bi-annual Language Technology event supported by the Brazilian Computer Society (SBC - http://www.sbc.org.br) and by the Brazilian Special Interest Group on Natural Language Processing (CE-PLN -  http://www.nilc.icmc.usp.br/cepln/).

In 2013, it will be held in conjunction with both BRACIS 2013 (Brazilian Conference on Intelligent Systems), the combination of the Brazilian Symposium on Artificial Intelligence (SBIA) and the Brazilian Symposium on Neural Networks (SBRN), and ENIAC 2013 (Encontro Nacional de Inteligência Artificial e Computacional).

STIL will have the following collocated events: III Workshop on Portuguese Description, III Student Workshop on Information and Human Language Technology (TILic) and IV Workshop RST and the Lexical Studies.

The conference has a multidisciplinary nature and covers a broad spectrum of disciplines related to Human Language Technology, such as Linguistics, Computer Science, Psycholinguistics, Information Science, among others. It aims at bringing together both academic and industrial participants working on those areas.

STIL 2013 welcomes research work in human language technology in general (and not only Portuguese) in various fields. Topics of interest include, but are not limited to:
-       Natural Language Processing Applications
-       Natural Language Resources & Tools
-       User Studies and Evaluation Methods
-       Corpus Linguistics
-       Phonology/Morphology, Tagging and Chunking, Word Segmentation
-       Terminology, Lexicology and Lexicography
-       Lexical Semantics
-       Grammar Formalisms, Syntax and Parsing
-       Semantics, Semantic Representations and Semantic Parsing
-       Discourse, Dialogue and Pragmatics
-       Information Extraction & Retrieval
-       Question Answering
-       Human and Machine Translation, Multilinguality
-       Summarization and Generation
-       Sentiment Analysis and Opinion Mining
-       Text Classification
-       Text/Web Mining
-       Spoken Language Processing
-       Statistical and Machine Learning Methods for Language Processing
-       Semantic web
-       Ontologies
-       NLP for Web 2.0
-       Natural language interfaces
-       Computer-aided writing tools
-       Psycholinguistics
-       Information filtering and retrieval
-       Digital libraries
-       Document and knowledge management
-       Knowledge representation and modeling

GUIDELINES FOR SUBMISSION OF PAPERS

* Language

Papers can be written in English, Portuguese or Spanish.

*Length

We accept submissions of long and short papers. Long papers should describe complete work with significant results. Short papers can report work in progress, negative results, position papers, application papers.

Long papers may have up to eight (8) pages of content (including tables and pictures), with two (2) additional pages of references, and will be presented orally. Short papers should have up to four (4) pages of content, and one (1) additional page of references, and will be presented as posters. Authors should also indicate whether they accept their long paper to be reallocated as a poster should the reviewers recommend so.

* Format

Paper formatting must follow the SBC guidelines available at this address: http://www.sbc.org.br/index.php?option=com_jdownloads&Itemid=195&task=view.download&catid=32&cid=38

* Reviewing Process

All submitted papers will be reviewed by at least two experts in the field.

The reviewing will be double blind and therefore papers should not display any information regarding their authorship in the header or body of the text. Self-references that reveal the author's identity, e.g., "As we previously showed (Silva, 2005)...", must be avoided. Instead, authors such use "Silva previously showed (Silva, 2005) ...".

* Proceedings and Best Papers

All accepted papers (long and short) will be published in the online conference proceedings available  at the STIL website (soon available), under an ISBN reference. Authors of best selected papers will be invited to submit extended versions to one of the following:
- Journal of the Brazilian Computer Society (http://www.springer.com/computer/journal/13173) and
- a specialized journal of Artificial Intelligence and Natural Language Processing (TBA)

* Submission Policy

By submitting papers to STIL 2013, the authors agree that in case of acceptance at least one author  registers to the conference and presents the paper. Furthermore, it is the conference policy that at least one of the authors of accepted papers has to register **before** the deadline for sending the camera-ready paper. Accepted papers without the respective author registration **before** the deadline will not be included in the online proceedings.

* Important Dates

Deadline Submission for Long and Short Papers: March 31, 2013
Acceptance notification: May 31, 2013
Final camera-ready papers due: June 23, 2013

* Submission System

Long and short papers should only be submitted in PDF files via JEMS system  by the deadline indicated above. More information about the submission, using the system, will be given soon.

PROGRAM CHAIRS

Profa. Sandra Maria Aluísio (ICMC/USP)
Profa. Valéria Delisandra Feltrim (DIN/UEM)

LOCAL CHAIR

Profa. Vladia Pinheiro (UNIFOR)

EMAIL CONTACT

stil.secretaria.2013@gmail.com

Anais do X Encontro de Linguística de Corpus

CARVALHO, C. I. da C. ; VASCONCELOS, D. M. ; ALENCAR, L. F. de . Superando o estado da arte na etiquetagem morfossintática por meio de regras de pós-etiquetagem. In: X Encontro de Linguística de Corpus, 2011, Belo Horizonte. X Encontro de Linguística de Corpus, 2011.

Palavras-chave: Algoritmo; anotação automática de corpora; etiquetagem morfossintática; NLTK; Python.


Grande área: Lingüística, Letras e Artes / Área: Lingüística / Subárea: Lingüística Computacional. 


Grande Área: Lingüística, Letras e Artes / Área: Lingüística / Subárea: Lingüística de Corpus.
 
Grande Área: Lingüística, Letras e Artes / Área: Lingüística / Subárea: Teoria e Análise Lingüística. 



Referências adicionais: Classificação do evento: Internacional; Brasil/ Português; Meio de divulgação: Digital; Homepage: http://www.letras.ufmg.br/CMS/index.asp?pasta=linguisticacorpus2011; ISSN/ISBN: 9788577581535.

quinta-feira, 13 de dezembro de 2012

Minicurso no 1º LiPrAL

1º Colóquio de Linguística para o Processamento Automático de Linguagem Natural – 1º LiPrAL


UFES - Campus universitário de Goiabeiras

novembro 29, 2012 – novembro 30, 2012

Minicurso Introdução à análise sintática automática do português

Leonel Figueiredo de Alencar
Universidade Federal o Ceará (UFC)

No âmbito das tecnologias da linguagem natural, a análise sintática automática (parsing) tem um amplo leque de aplicações, que vão da extração de informações à tradução automática, passando pela resolução de perguntas. Por outro lado, na linguística teórica e descritiva, a implementação computacional de uma gramática de uma língua permite verificar a sua consistência, adequação empírica e plausibilidade psicológica, por meio da aplicação de um parser a uma grande quantidade de textos. Neste minicurso, mostramos como desenvolver e testar parsers do português por meio do Aelius e do Donatus, que juntos constituem uma caixa de ferramentas para o parsing tanto raso quanto profundo e a anotação de corpora, combinando o processamento estatístico da linguagem natural com a abordagem baseada em regras. Implementados em Python e distribuídos sob uma licença livre, esses pacotes oferecem não só uma interface mais amigável para o NLTK (no qual estão sobretudo baseados) e outras bibliotecas, mas também várias outras facilidades, ao mesmo tempo em que contribuem para diminuir a carência de recursos livres para o processamento morfossintático computacional do português do Brasil. 

Leituras recomendadas


ALENCAR, L. F. de. Donatus: uma interface amigável para o estudo da sintaxe formal utilizando a biblioteca em Python do NLTK. Alfa, rev. linguíst. (São José Rio Preto) [online]. 2012, vol.56, n.2, pp. 523-555. ISSN 1981-5794. 

ALENCAR, L. F. de (Org.) ; OTHERO, G. A. (Org.) . Abordagens computacionais da teoria da gramática. 1. ed. Campinas: Mercado de Letras, 2012. 304 p.


ALENCAR, L. F. de. Utilização de informações lexicais extraídas automaticamente de corpora na análise sintática computacional do português. Revista de Estudos da Linguagem, Belo Horizonte, vol. 19, n. 1, p. 7-85, jan./jun. 2011.


Cursos de Python:

Learn to Program: The Fundamentals


Think Python: How to Think Like a Computer Scientist

Python Brasil