Código Fonte
git bundle
Estrutura de diretórios
Existem dois projetos principais:
- O cogroo.uima que contém o código da primeira implementação do CoGrOo com o UIMA.
- O uima.parent que contém a nova estrutura divida por módulos.
cogroo.uima
- src/main: Código fonte dos anotadores.
- src/test: Testes de unidade com JUnit.
- data: Textos de exemplo para testar os módulos.
- Descriptors: Arquivos XML para configuração dos anotadores compatíveis com UIMA. Contém um XML por anotador mais um anotador por linguagem. As duas linguagens suportadas são: português (Cogroo_pt-Br.xml) e inglês (Cogroo_en.xml).
- metadata: Contém os arquivos descritores dos pacotes pear para português e inglês (install_XX.xml).
- resources: Contém os recursos necessários para fazer a análise do texto em cada módulo (dicionários, modelos de linguagem). Estão separados por língua.
- target: Pasta aonde são construídos os jars e os pacotes pear.
- test_descriptors: Contém os descritores de anotadores para execução de testes de unidade.
uima.parent
- agregators - Responsável por integrar os módulos. Possui três partes:
- TextAnnotators-ptBR - Integra os pacotes necessários ao UIMA para realizar a análise de texto em língua portuguesa do Brasil.
- Pears - Lugar aonde todos os pears são disponibilizados para o UIMA.
- CoGrOo - Integra o CoGrOo com o OpenOffice.org.
- CommonTypeSystem - Configurações e chaves em formato String necessárias para o funcionamento interno do CoGrOo e integração com o UIMA.
- ContractionSeparator-ptBR - Responsável por separar contrações da língua portuguesa (ex: "daquela"="de"+"aquela", "nas"="em"+"as").
- Dictionaries - Define o funcionamento dos dicionários usados pelo CoGroO: dicionário de palavras e dicionários de abreviaturas.
- Dictionaries-ptBR - Contém arquivos que implementam o dicionário para a língua portuguesa do Brasil.
- its - Realiza testes de integração entre o UIMA e os módulos do CoGrOo.
- POSTaggerME - Aplica as anotações aos tokens, de acordo com a sua classe.
- POSTaggerME-ptBR - Define as regras de anotações para tokens de acordo com a língua portuguesa.
- Pretagger-ptBr - Com base na saída do ContractionSeparator e do ProperNameFinder, faz pré-processamentos para normalizar o texto e disponibiizá-lo ao tokenizer.
- ProperNameFinderME - Procura nomes próprios em frases e os classifica como tal.
- ProperNameFinderME-ptBR - Buscador de nomes próprios específico para a língua portuguesa do Brasil.
- RulesApplier - Pacote esqueleto do CoGrOo. Responsável por coordenar o processo de análise do texto e de invocar e integrar os demais módulos do CoGrOo.
- SentenceDetectorME - Responsável por separar frases nos textos.
- SentenceDetectorME-ptBR - Responsável por separar frases nos textos.
- TokenizerME - Responsável por separar o texto em uma sequência de tokens (tokenização).
- TokenizerME-ptBR - Contém modelos que especificam o comportamento da tokenização em texto de língua portuguesa.
- utils - Responsável pela instalação.
Compilação
O projeto cogroo.uima é desenvolvido em Eclipse e utiliza Maven para a construção de pacotes.
Dado que o projeto está composto de diferentes módulos (anotadores), o projeto (diretório) uima.parent contém estes módulos e é possível construir o corretor gramatical e os pacotes pear independentes com o comando mvn install.
Dependências
O Maven administra automaticamente as dependências de pacotes jar e pear para a aplicação. No entanto, cada módulo depende de recursos para a análise, por exemplo, o sentencedetect requer SentDetectModel e o dicionário de abreviações. Atualmente, tais recursos já estão no diretório resources, e no caso de uma extensão para nova língua recomenda-se seguir a estrutura deste diretório.
Plugin PearPackagingMavenPlugin
Para a criação dos pacotes pear foi utilizado o plugin para Maven PearPackagingMavenPlugin. Este atualmente não encontra-se disponível em nenhum repositório Maven, portanto para instalá-lo, faz-se necessário os seguintes passos:
- Baixar o código fonte do plugin (aqui), pacote Source de UIMA Annotator Addons & Simple Server & Pear packaging tools.
- Descompactar o arquivo uimaj-annotator-addons-2.2.2-incubating-src.tar.gz.
- Entrar na pasta PearPackagingMavenPlugin.
- Executar desde consola mvn install.
wiki
Caso ocorra o seguinte erro, substituir o arquivo pom.xml da pasta PearPackagingMavenPlugin pelo arquivo PomPluginMavenPear.xml, e certificar-se que o nome do novo arquivo é pom.xml:
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] The scm url cannot be null.
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.NullPointerException: The scm url cannot be null.