Code Monkey home page Code Monkey logo

lr-por / morphobr Goto Github PK

View Code? Open in Web Editor NEW
24.0 12.0 4.0 449.95 MB

Resources for morphological analysis of Portuguese

License: Apache License 2.0

Python 59.03% Grammatical Framework 11.31% Awk 0.22% Shell 16.36% Common Lisp 8.64% Dockerfile 2.53% Haskell 1.92%
morphology morphological-analyser morphological-analysis natural-language-processing syntactic-parsing brazilian-portuguese finite-state-transducer finite-state-transducers finite-state-automata finite-state-morphology

morphobr's Introduction

MorphoBr - resources for morphological analysis of Portuguese

LICENSE
see LICENSE file

Unless otherwise stated, the present resources are derived from the dictionaries of the:

Unitex-PB project
http://www.nilc.icmc.usp.br/nilc/projects/unitex-pb/web/dicionarios.html
Freeling Portuguese data
https://github.com/TALP-UPC/FreeLing/tree/master/data/pt/dictionary/entries

Repository contents

Entries are separated by class, each in its own directory. Entries are divided in small files, so that they can be previewed on GitHub and processed in less powerful computers. The repository structure is meant for development: if you would like a copy of the data, you should go to our releases page.

Code (and its documentation) employed in the resource’s development can be found in the tools/ directory.

Tagset

The tagset used in the above projects was converted to a more mnemonical one which generally follows the notational conventions of the descriptive linguistic and finite-state morphology literatures, see the TAGSET file.

Morphological analysis

In order to use MorphoBr resources for morphological analysis in the context of syntactic parsing (e.g. with PorGram), they must be compiled into finite-state transducers. The easier way is to load and compile it with Foma:

% ./compile.sh
% foma -f compile.foma
% echo "fortinho" | flookup -i morphobr.bin
fortinho	forte+N+DIM+M+SG
fortinho	forte+A+DIM+M+SG

% echo "comprei-o" | flookup -i morphobr.bin
comprei-o	comprar+V+ele.ACC.3.M.SG+PRF+1+SG

For that, you need to:

  1. change the MAX_STACK value in the int_stack.c file in Foma source code to at least 9097152. Compile Foma.

See mhulden/foma#146 and mhulden/foma#130

Python modules as well as XFST and bash scripts for performing this task are available in the tools/ folder. Inadequacies and errors found in the source dictionaries were corrected using these tools. See the respective incode documentation for a detailed description of the changes made to the source entries.

Download

See our releases page.

Bibliography

See https://github.com/LFG-PTBR/MorphoBr/wiki#publicações. To cite this resource, please use http://www.periodicos.letras.ufmg.br/index.php/textolivre/article/view/14294 (first in the publications list).

morphobr's People

Contributors

analununes avatar arademaker avatar fcbr avatar leoalenc avatar lucasrct avatar odanoburu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

morphobr's Issues

modeling productive word formation rules

@odanoburu @arademaker Um recurso lexical robusto deve levar em conta as palavras potenciais, capazes de serem geradas pelas regras produtivas de derivação e composição da língua. Uma maneira de se implementar isso é por meio da morfologia de estados finitos. Desse modo, implementei a derivação sufixal responsável pelos diminutivos produtivos do português. Comecei com os substantivos. Falta fazer isso com os adjetivos.

  • diminutivos:
    • substantivos
    • adjetivos
  • aumentativos
  • ...

missing V tag in clitics

há várias entradas no diretório verbs/clitics/ sem a tag V, que deveria aparecer depois do lema da palavra e antes do lema do clítico:

ababadai-nos	ababadar+nós.AD.1.PL+PRS+2+PL

usando grep -E " [^\+]+\+[^V]" clitics.all (o espaço na string é uma TAB)

organização dos arquivos

usar o comando split é uma boa ideia pra diminuir o tamanho dos arquivos-dicionário e balancear o tamanho deles, mas me parece ter uma desvantagem: ao adicionarmos novas palavras e rerodarmos o comando, vamos ter palavras saindo de um arquivo para outro, o que vai aumentar o diff desnecessariamente. depois de muitas iterações disso, pode até ser que o repositório fique com um tamanho excessivo (o que vai dificultar a clonagem por quem for usá-lo).

minha ideia era separar as entradas por índice (algo como a-j, k-n, etc), o que possivelmente vai demandar um script. isso pode criar um desbalanceamento no tamanho dos arquivos, mas acredito que a distribuição das entradas não deva mudar muito agora que já temos muitas delas.

o que acham?

verbos não presentes no repositório

Durante algumas análises, juntei alguns verbos que não constam ainda no MorphoBr, são eles:

priorizar
reaglutinar
desestimular
gestar
reconfigurar
credenciar
reaparelhar
pós-graduar (?)
repactuar
superfaturar
reinstaurar
acessar
monitorar
realocar
elencar
contra-argumentar (?)
operacionalizar
reapropriar

tagset inconsistency?

@leoalenc, uma dúvida sobre essa parte do tagset dos cliticos:

  • A feature is not specified when it is not explicitly.
    marked, e.g. "lhe", "me", etc. are not marked for gender. In this
    respect, compare these forms, for example, with "a" and "o".

não seria mais consistente com as outras escolhas se gerássemos uma entrada com cada gênero? ou é semelhante à #4?

palavras compostas

no DELACF (ainda não incorporado ao MorphoBr) me parece que há análises (ou pelo menos tags) diferentes:

abaixa-luz,abaixa-luz.N+VN:ms

enquanto no GFL (já no formato morphoBR):

antero-posteriores,antero-posterior.A+NA:mp:fp
abaixa-luz      abaixa-luz+N+M+SG

talvez fosse interessante incorporar o DELACF, harmonizando as tags.

adjetivos vs substantivos

Este issue é para uma discussão mais ampla que #57 (que trata de um caso específico). E continua discussão iniciada no issue #65 mas que também tem foco diferente.

Em resposta ao comentário do @leoalenc:

Concordo que elipses (link para os mais novos) não devam sugerir entradas no léxico, mas este critério de corte não me parece óbvio. Na OWN-PT usamos alguns testes linguisticos. No inglês dois exemplos seriam:

A good clue that you have an adjective is if you try to modify it with "very" or "rather" and it sounds ok: “very/rather favorable conditions” (ok) vs. “very/rather cotton shirts” (not ok). Another good clue is if you can make a comparative or superlative form out of it (“damper/dampest/more favorable/most favorable conditions” are all adjectives, but “cottoner/cottonest/more cotton/most cotton shirts” are not).

O primeiro parece funcionar para PT também. Então só precisamos definir bem os testes para termos critérios para decisão. Bem, obviamente nosso critério pode ser apenas seguir os dicionários...

missing lines in freeling -> morphobr conversion

at the GF prompt, trying to parse an incomplete sentence will yield an error:

Morpho> p -lang=Eag "oi tchau A Q 0 F S 0"
The sentence is not complete

but when I do batch conversion, there are no warnings, and (apparently) no way of knowing which (if any) lines gave parse errors.

when converting the nouns from garcia+freeling, I got:

bruno@debian-live:~/sites/morphobr/tmp$ wc -l nouns.gfl nouns.bra
 160965 nouns.gfl
 160962 nouns.bra

so apparently 3 forms were not converted.

(to make this comparison I temporarily made the common gender output only one line, else we'd have much more forms in nouns.bra and no way of knowing if any from freeling were not parsed)

pente-fino em palavras curtas

muitos nouns são na verdade abreviaturas, ou estão na forma errada (em formato freeling):

h h NCMN000
h h NCMS000
ha ha NCMN000

h deveria ser agá. ha é abreviatura de hectare, etc @leoalenc

formas M/F e SG/PL

quantos casos temos de formas que são M e F? Na modelagem atual, ao invés de uma TAG especial, optamos por duplicar as entradas. O mesmo para plural e singular, quando a forma é a mesma, temos duas entradas.

Seria bom termos uma estatística destes casos para poder reavaliar nossa decisão se for o caso.

Superlative in adjectives incorrectly tagged

@odanoburu O superlativo de adjetivos está incorretamente etiquetado como SBJR, etiqueta destinada ao subjuntivo presente. A razão desse erro está na minha tabela de conversão, onde aparecem duas vezes a letra S. Quando o dicionário na linguagem piton é construído, o valor SUPER, atribuído inicialmente à chave S, é sobrescrito como SBJR. O que me induziu a esse erro foi o fato de que a letra S tem dois valores no dicionário de São Carlos, superlativo dos adjetivos e subjuntivo presente dos verbos! Vou corrigir manualmente via SED esse erro nos arquivos dos adjetivos!

DELAF-PB lacks 3rd person singular forms of imperfect

Como obervou @odanoburu, o DELAF-PB não tem formas de alguns verbos. Considero isso um erro desse recurso. De fato, os verbos da 2ª conjugação, como "vender", possuem aí tanto as formas da 1ª quanto da 3ª pessoa do singular do imperfeito do indicativo:

$ grep -E ",vender\.V:I[13]s" Delaf2015v04.dic
vendia,vender.V:I1s
vendia,vender.V:I3s

$ grep -Ec ",.*er\.V:I1s" Delaf2015v04.dic
800
$ grep -Ec ",.*er\.V:I3s" Delaf2015v04.dic
800

Quando consideramos a 1ª conjugação, porém, apenas as formas da 1ª pessoa do singular do imperfeito do indicativo estão incluídas:

$ grep -Ec ",.*ar\.V:I1s" Delaf2015v04.dic
12714
$ grep -Ec ",.*ar\.V:I3s" Delaf2015v04.dic
0

Não vejo razão para esse tratamento desigual conferido às duas conjugações. Se o argumento para essas lacunas fosse o fato de que uma forma é depreensível da outra, então deveríamos ter também apenas as formas da 1ª pessoa do singular do imperfeito do indicativo da 2ª conjugação. Note que essa identidade de formas é um fenômeno geral do português, que atinge tanto verbos regulares quanto irregulares.

Por outro lado, a filosofia do DELAF-PB parece ser a de outros recursos análogos que se enquadram na categoria dicionário de formas plenas ("full-form lexica"/"full-form dictionaries"). Esse tipo de recurso consiste em listar exaustivamente todas as formas existentes com as suas análises (sob a forma de "word-parse pairs"), essas últimas consistindo de lemas, categoria lexical e demais traços morfossintáticos. Se essa não fosse a filosofia subjacente do DELAF-PB, então esse recurso deveria ter sido consistente nos inúmeros outros casos em que formas são depreensíveis de outras.
Desse modo, proponho que procuremos sistematicamente por outras lacunas desse tipo, calculando que verbos discrepam no número de formas. Os comando abaixo evidenciam que problema análogo existe no mais-que-perfeito:

$ grep -Ec ",.*ar\.V:Q3s" Delaf2015v04.dic
5
$ grep -Ec ",.*ar\.V:Q1s" Delaf2015v04.dic
12714

As únicas formas de 3ª pessoa do singular do mais-que-perfeito são estas:

$ grep -E ",.*ar\.V:Q3s" Delaf2015v04.dic
dera,dar.V:Q3s
desdera,desdar.V:Q3s
estivera,estar.V:Q3s
redera,redar.V:Q3s
sobrestivera,sobrestar.V:Q3s

Vemos que não há lógica por trás da inclusão dessas formas e exclusão das demais.

Depois de feito o levantamento das lacunas, devemos incluir as formas faltantes. Quanto a isso, não há que se preocupar com o tamanho do recurso, uma vez que o tamanho total pode ser reduzido extremamente através da compilação em transdutor de estados finitos (ver, entre outros, Alencar et. al., 2014, p.61)

Incorrect forms

Out of the following entries, the last two are spurious:

~/MorphoBr$ grep -E "sagueir[oa]" nouns/*.dict adjectives/*.dict
nouns/nouns.gfl.dict:sagueiro   sagueiro+N+M+SG
nouns/nouns.gfl.dict:sagueiros  sagueiro+N+M+PL
nouns/q-z.delaf.dict:sagueiões  sagueiro+N+F+PL
nouns/q-z.delaf.dict:sagueiro   sagueiro+N+F+SG

In Portuguese, only "sagueiro" (name of a palm tree) exists https://www.infopedia.pt/dicionarios/lingua-portuguesa/sagueiro

The three last forms of lexeme "comentarista" are spurious:

~/MorphoBr/nouns$ grep -E "[[:space:]]comentarista\+N" *.dict
a-c.delaf.dict:comentarista     comentarista+N+F+SG
a-c.delaf.dict:comentarista     comentarista+N+M+SG
a-c.delaf.dict:comentaristas    comentarista+N+F+PL
a-c.delaf.dict:comentaristas    comentarista+N+M+PL
nouns.gfl.dict:comentaristaa    comentarista+N+F+SG
nouns.gfl.dict:comentaristaas   comentarista+N+F+PL
nouns.gfl.dict:comentaristaes   comentarista+N+M+PL

Extracting possible spurious noun forms:

~/MorphoBr/nouns$ grep -E ".+a[ae]s?[[:space:]]" *.dict
nouns.gfl.dict:cagarretaa       cagarreta+N+F+SG
nouns.gfl.dict:cagarretaas      cagarreta+N+F+PL
nouns.gfl.dict:cagarretaes      cagarreta+N+M+PL
nouns.gfl.dict:comentaristaa    comentarista+N+F+SG
nouns.gfl.dict:comentaristaas   comentarista+N+F+PL
nouns.gfl.dict:comentaristaes   comentarista+N+M+PL
nouns.gfl.dict:folha-sebrae     folha-sebrae+N+F+SG
nouns.gfl.dict:hediondezaes     hediondeza+N+F+PL
nouns.gfl.dict:reflectânciaa    reflectância+N+F+SG
nouns.gfl.dict:reflectânciaas   reflectância+N+F+PL
nouns.gfl.dict:reflectânciaes   reflectância+N+M+PL
nouns.gfl.dict:retransmissoraes retransmissora+N+F+PL
nouns.gfl.dict:talassaes        talassa+N+F+PL
nouns.gfl.dict:talassaes        talassa+N+M+PL
nouns.gfl.dict:venezuelaas      venezuelao+N+F+PL
nouns.gfl.dict:venezuelaa       venezuelao+N+F+SG
q-z.delaf.dict:reggae   reggae+N+M+SG
q-z.delaf.dict:reggaes  reggae+N+M+PL
q-z.delaf.dict:sundaes  sundae+N+M+PL
q-z.delaf.dict:sundae   sundae+N+M+SG

Out of these forms, the following are correct ones, i.e. the lemma
ends with "ae":

nouns.gfl.dict:folha-sebrae     folha-sebrae+N+F+SG
q-z.delaf.dict:reggae   reggae+N+M+SG
q-z.delaf.dict:reggaes  reggae+N+M+PL
q-z.delaf.dict:sundaes  sundae+N+M+PL
q-z.delaf.dict:sundae   sundae+N+M+SG

Besides, the following lemmas are spurious:

nouns.gfl.dict:venezuelaas      venezuelao+N+F+PL
nouns.gfl.dict:reflectânciaes   reflectância+N+M+PL

The former doesn't seem to exist, the latter only exists as a feminine
noun, see https://www.infopedia.pt/dicionarios/lingua-portuguesa/reflectância

Applying the same procedure to adjectives:

~/MorphoBr/adjectives$ grep -E ".+a[ae]s?[[:space:]]" *.dict

The results are classified into groups and commented on below:

  1. spurious final "a" in the inflected form:
adjs.gfl.dict:cagarretaa        cagarreta+A+F+SG
adjs.gfl.dict:cagarretaas       cagarreta+A+F+PL
adjs.gfl.dict:cagarretaes       cagarreta+A+M+PL
  1. missing "d" between final vowels, e.g. it should read "calejado"
    instead of "calejao"
adjs.gfl.dict:calejaa   calejao+A+F+SG
adjs.gfl.dict:calejaas  calejao+A+F+PL
adjs.gfl.dict:camuflaa  camuflao+A+F+SG
adjs.gfl.dict:camuflaas camuflao+A+F+PL
adjs.gfl.dict:camurçaa  camurçao+A+F+SG
adjs.gfl.dict:camurçaas camurçao+A+F+PL
adjs.gfl.dict:canaliculaa       canaliculao+A+F+SG
adjs.gfl.dict:canaliculaas      canaliculao+A+F+PL
adjs.gfl.dict:caparazonaa       caparazonao+A+F+SG
adjs.gfl.dict:caparazonaas      caparazonao+A+F+PL
adjs.gfl.dict:firmamentaa       firmamentao+A+F+SG
adjs.gfl.dict:firmamentaas      firmamentao+A+F+PL
  1. spurious "e" before the plural morpheme -s:
adjs.gfl.dict:cavernícolaes     cavernícola+A+F+PL
adjs.gfl.dict:cavernícolaes     cavernícola+A+M+PL
adjs.gfl.dict:hospitaes hospita+A+F+PL
adjs.gfl.dict:hospitaes hospita+A+M+PL
adjs.gfl.dict:talassícolaes     talassícola+A+F+PL
adjs.gfl.dict:talassícolaes     talassícola+A+M+PL
  1. the following lemma is a Latin noun in the genitive singular, it
    only occurs in Portuguese in the MWE "curriculum vitae":
adjs.gfl.dict:vitae     vitae+A+F+PL
adjs.gfl.dict:vitae     vitae+A+F+SG
adjs.gfl.dict:vitae     vitae+A+M+PL
adjs.gfl.dict:vitae     vitae+A+M+SG
  1. an "n" is missing in the following forms:
~/MorphoBr/adjectives$ grep -E "plutómao" *.dict
adjs.gfl.dict:plutómaa  plutómao+A+F+SG
adjs.gfl.dict:plutómaas plutómao+A+F+PL
adjs.gfl.dict:plutómao  plutómao+A+M+SG
adjs.gfl.dict:plutómaos plutómao+A+M+PL

As shown by the file names, almost all the above errors were inherited from GFL.

DELAF-PB lacks SBJF 3 SG of vender

@odanoburu @arademaker Essa lacuna atinge a maioria dos verbos da segunda conjugação. Pelas minhas contas, 72 verbos dessa conjugação possuem a terceira pessoa do singular do futuro do subjuntivo. Para primeira pessoa, no entanto, são 800 formas.

masculine nouns lacking a plural form

The following masculine nouns lack a plural form:

biômetra
bumba
cola
deus-nos-acuda
ébola
fecha
garanganja
hinaiana
mimansa
paraarranca
ronga
tetra
vira

Some of these are proper nouns. However, all should have a plural form.

missing plural of feminine nouns

The plural forms of the following feminine nouns are missing:

~/MorphoBr$ grep -E "[[:space:]]pólio\+N" nouns/*.dict
nouns/j-p.delaf.dict:pólio      pólio+N+F+SG
nouns/j-p.delaf.dict:pólio      pólio+N+M+SG
nouns/j-p.delaf.dict:pólios     pólio+N+M+PL

~/MorphoBr$ grep -E "[[:space:]]ratio\+N" nouns/*.dict
nouns/nouns.gfl.dict:ratio      ratio+N+F+SG

~/MorphoBr$ grep -E "[[:space:]]expo\+N" nouns/*.dict
nouns/d-i.delaf.dict:expo       expo+N+F+SG
nouns/nouns.gfl.dict:expo       expo+N+M+SG
nouns/nouns.gfl.dict:expos      expo+N+M+PL

As for the last three entries, feminine noun "expo" is derived from "exposição", which means "exposition" (Michaelis). It seems that masculine "expo" doesn't exist, at least it is not registered in Infopédia, Dicio, Priberam, Michaelis, and iAulete.

inconsistências

Outros issues estão tratando de lacunas no DELAF_* e duplicatas quando quando juntamos os recursos, mas e as possíveis inconsistências?

Quais casos podem existir de mais de uma forma para a mesma análise de um lema? Mais de uma forma para um determinado tempo e pessoa de um verbo, por exemplo... Vale verificar enumerando os casos para garantirmos que as ocorrências que acharmos são válidas ou não.

merging Marcos Garcia Dic

O dicionário por defeito de FreeLing só contém formas de Português Europeu; este contém de PE, de PB e também novas formas do Acordo Ortográfico. Fizemos umas avaliações (o artigo ainda não está publicado), e o novo dicionário não é muito relevante para o PoS-tagging (salvo alguma palavrinha nova do Acordo), mas talvez sim para lematização de PB. Ora, como o processo de conversão e fusão foi quase tudo automático, também pode gerar dispersão e piorar os resultados :?

@leoalenc disse:

Seria interessante comparar esse outro dicionário com aquele de São Carlos que nós já estamos usando. Poderemos extrair, por exemplo, aleatoriamente 20 formas de cada classe gramatical aberta que estão nesse novo dicionário mas não estão no de São Carlos.

Seria interessante também comparar os lemas das classes abertas nos dois recursos, Produzindo duas listas com as diferenças.

Chamo atenção para a necessidade de levar em conta aquelas formas verbais faltantes no dicionário de São Carlos que eu criei. São formas do pretérito imperfeito e mais que perfeito da primeira e terceira pessoa do singular de verbos com pronomes, conforme apontei na questão número oito.

Estas formas faltantes que vc produziu já estão incorporadas nos arquivos? Como obte-las?

Algumas pistas para fazer a comparação do língua livre com esse recurso do Marcos: como os dois recursos tratam os substantivos e adjetivos de gênero comum? Estou falando de palavras como dentista e alegre que não variam para gênero. Por conta disso, por exemplo o dicionário de São Carlos tende a ter mais formas, Uma vez que não trabalha com a noção de gênero comum nem de número comum (Palavras como simples e lápis).

Boa observação, como vamos compatibilizar isso? Vamos seguir São Carlos ou adotamos a postura mais compacta? Boa info para o artigo. Hoje temos no MorphoBr:

$ egrep "^dentista" nouns/*
nouns/d-i.dict:dentista	dentista+N+F+SG
nouns/d-i.dict:dentista	dentista+N+M+SG
nouns/d-i.dict:dentistas	dentista+N+F+PL
nouns/d-i.dict:dentistas	dentista+N+M+PL

Marcos e Freeling:

$ egrep "^dentista" tmp/marcos/dicc-AO3_long.src
dentista dentista NCCS000
dentistas dentista NCCP000

A propósito: só pra facilitar o meu trabalho, você poderia colocar tanto o arquivo do língua livre quanto o dicionário do Marcos num ramo "experimental" do nosso repositório?

Vide ffe2e5d no ramo 'garcia'

Error in clitics

Found some strange entries in clitics:

$ grep protrairnos ../verbs/clitics/*
../verbs/clitics/uniq.adb.delaf.dict:protrairnos	protrair+V.None+SBJF+1+SG
../verbs/clitics/uniq.adb.delaf.dict:protrairnos	protrair+V.None+SBJF+3+SG
../verbs/clitics/uniq.adb.delaf.dict:protrairnos	protrair+V.None+INF
../verbs/clitics/uniq.adb.delaf.dict:protrairnos	protrair+V.None+INF+3+1
../verbs/clitics/uniq.adb.delaf.dict:protrairnos	protrair+V.None+INF+3+SG

duplicatas

há duplicatas em vários arquivos.

se as duplicatas estão no mesmo arquivo, basta um sort -u file > sorted-file.

se estão em arquivos diferentes, usando o comando comm -1 -3 old new > new-new podemos obter as linhas de new que não estão em old.

  • nouns
    • diminutives
  • adjs
  • advs
  • verbs

Evaluation of resource

Os diferentes formatos de entrada do dicionário original se classificam em um número limitado de tipos. Podemos avaliar a conversão para o formato atual, realizada pelo módulo em linguagem piton, testando o módulo nesses casos específicos. desse modo, vou preparar essa bateria de testes e submeter ao resto da equipe, para analisar a sua consistência .

missing words

Trabalhando em UniversalDependencies/UD_Portuguese-PUD#19. Identifiquei os seguintes tokens sem form no MorphoBr. Alguns são erros no corpus, mas alguns são efetivas faltas no MorphoBr:

   1 | 1.º/ADJ               |
   2 | 1º/ADJ                |
   1 | 31º/ADJ               |
   1 | 3º/ADJ                |
   1 | 45º/ADJ               |
   1 | 96º/ADJ               |
   1 | AIDS/NOUN             |
   1 | Antilhas/NOUN         |
   1 | B-29s/NOUN            |
   1 | Balcãs/NOUN           |
   1 | Caesarians/NOUN       |
   1 | Cifuentes/NOUN        |
   2 | DNA/NOUN              |
   1 | Dr./NOUN              |
   1 | F1/NOUN               |
   1 | Franco-Monegasco/ADJ  |
   1 | GIFs/NOUN             |
   1 | HFCs/NOUN             |
   1 | Hispânia/NOUN         |
   5 | III/ADJ               |
   2 | IV/ADJ                |
   1 | IX/ADJ                |
   1 | Imobliliário/ADJ      |
   1 | Indo-Australiana/ADJ  |
   1 | Jr/ADJ                |
   1 | Kven/NOUN             |
   1 | MLASs/NOUN            |
   1 | Meänkieli/NOUN        |
   2 | Nem/ADV               |
   1 | No./NOUN              |
   1 | Pilatos/NOUN          |
   1 | Rifte/NOUN            |
   1 | Rugby/NOUN            |
   1 | Saara/NOUN            |
   2 | Sami/NOUN             |
   1 | Seguranca/NOUN        |
   1 | Select/NOUN           |
   1 | Simple/NOUN           |
   5 | Sr./NOUN              |
   2 | Sr.ª/NOUN             |
   2 | Sra./NOUN             |
   1 | Super-heróis/NOUN     |
   3 | VIII/ADJ              |
   1 | Z./NOUN               |
  15 | a.C./NOUN             |
   1 | acessar/VERB          |
   1 | aconchegador/NOUN     |
   1 | all/NOUN              |
   1 | and/NOUN              |
   1 | anti-fascista/ADJ     |
   2 | app/NOUN              |
   1 | apunhalamento/NOUN    |
   1 | audiencia/NOUN        |
   1 | austro-prussiano/ADJ  |
   1 | auto-governadas/ADJ   |
   1 | auto-governados/VERB  |
   1 | bjórr/NOUN            |
   1 | blogueiros/NOUN       |
   1 | bullying/NOUN         |
   1 | chat/NOUN             |
   1 | chats/NOUN            |
   1 | co-escritas/VERB      |
   1 | contigente/NOUN       |
   1 | contruídos/VERB       |
   3 | coprotagonizado/VERB  |
   1 | coprotagonizou/VERB   |
   1 | crecidas/VERB         |
   1 | customizados/ADJ      |
   1 | cúlticos/ADJ          |
   1 | daqui/ADV             |
   1 | designers/NOUN        |
   1 | ditato/VERB           |
   1 | drones/NOUN           |
   1 | emoji/NOUN            |
   2 | ex-ministro/NOUN      |
   1 | extra-conjugal/ADJ    |
   1 | feed/NOUN             |
   1 | flocagem/NOUN         |
   1 | incomumente/ADV       |
   1 | linguado-areeiro/NOUN |
   1 | looping/NOUN          |
   1 | maglev/NOUN           |
   1 | maiorum/NOUN          |
   1 | massebot/NOUN         |
   1 | megárica/ADJ          |
   1 | memes/NOUN            |
   1 | meteorítico/ADJ       |
   1 | mos/NOUN              |
   5 | nem/ADV               |
   1 | norte-sul/NOUN        |
   1 | offshore/ADJ          |
   1 | personificador/NOUN   |
   1 | pessoas.../NOUN       |
   1 | photo-offset/NOUN     |
   1 | pro-cônsul/NOUN       |
   1 | proxima/ADJ           |
   2 | pré-históricos/ADJ    |
   1 | pré-pagamento/NOUN    |
   1 | pró-Pequim/ADJ        |
   1 | pós-clássico/ADJ      |
   1 | recém-chegados/NOUN   |
   1 | recém-criada/ADJ      |
   1 | reinforçado/VERB      |
   1 | reinvindicar/VERB     |
   1 | seguidoresda/NOUN     |
   1 | sem-teto/ADJ          |
   3 | smartphone/NOUN       |
   1 | smartphones/NOUN      |
   1 | subdução/NOUN         |
   2 | sul-coreana/ADJ       |
   1 | superpoder/NOUN       |
   1 | taiga/NOUN            |
   1 | teratoma/NOUN         |
   1 | timings/NOUN          |
   8 | tudo/NOUN             |
   1 | voucher/NOUN          |
   1 | wi-fi/NOUN            |
   1 | yazidis/ADJ           |
   1 | yuk/NOUN              |

DELAF inconsistency?

para a consistência da anotação do DELAF, em que uma entrada como dentista tem duas linhas (uma para cada gênero), a entrada abaixo tb deveria ser quebrada em duas, correto? estou abrindo a issue para saber se não herdamos esse problema.

abstrair,abstrair.V:W31
->
abstrair,abstrair.V:W3
abstrair,abstrair.V:W1

Integration of files correcting detected errors

@arademaker @odanoburu eu constatei que vários arquivos que eu criei corrigindo erros que têm sido apontados ainda não foram incorporados aos arquivos principais. Acho que já seria a hora de fazer essa integração , removendo as entradas erradas correspondentes nos arquivos principais. Precisamos fazer essa integração porque aquelas formas que eu achei que estavam desaparecidas se encontram, na verdade, em um desses arquivos que eu criei. Como houve um acúmulo de erros do mesmo tipo em um determinado grupo de entradas, vou ter de fazer de novo a correção daquelas entradas que possuem pessoa três e, simultaneamente, pessoa número um, erro herdado do dicionário de São Carlos.

typos in unpublished-garcia

bentsa  benzer+V+PTPASS+F+SG
bentsas benzer+V+PTPASS+F+PL
bentso  benzer+V+PTPASS+M+SG
bentsos benzer+V+PTPASS+M+PL

gauuhada        gauchar+V+PTPASS+F+SG
gauuhadas       gauchar+V+PTPASS+F+PL
gauuhado        gauchar+V+PTPASS+M+SG
gauuhados       gauchar+V+PTPASS+M+PL

a origem desses erros está nos arquivos não-publicados pelo Marcos Garcia.

prepare release

it seems to me that the best mechanism for us to prepare releases is using github releases, because using git clone will download a lot of project history which is irrelevant to the end-user.

  • make release
  • calculate the difference between the zipped repo and the zipped release

spurious masculine nouns

The following masculine nouns doesn't seem to exist in Portuguese:
apanha+N+M+SG
aventurança+N+M+SG
chega+N+M+SG
finança+N+M+SG
liga+N+M+SG
manda+N+M+SG

Excepting the last two, which were derived from DELAF-PB, all were inherited from GFL.
Some of these spurious entries also have plural forms.
The corresponding feminine entries are correct.

DELAF format error

há 41 verbos sem clíticos com erro de formatação: :, deveria ser ,.

abstinhas:,abster.V:I2s
advéns:,advir.V:P2s
advinhas:,advir.V:I2s
atinhas:,ater.V:I2s
avéns:,avir.V:P2s
avinhas:,avir.V:I2s
continhas:,conter.V:I2s
contravéns:,contravir.V:P2s
contravinhas:,contravir.V:I2s
convéns:,convir.V:P2s
...

@leoalenc será que herdamos esses erros?

como lidar com símbolos e abreviaturas?

Nos recursos que utilizamos, existem vários casos de abreviaturas e símbolos tratados como substantivos. As formas geram diminutivos improváveis. Desse modo, seria interessante considerar uma anotação especial, no futuro, para essas formas, até porque não parecem ocorrer com a mesma distribuição de substantivos em português. No exemplo abaixo, “ha” não deve ser pronunciado como [ha] ou [a], mas como [aga’a] ou “hectare”.

?O ha é uma unidade de medida.

Uma primeira abordagem para detecção dessas formas é o comando seguinte:
~/MorphoBr$ grep -Ei "^[bcdfghjklmnpqrstvwxyz][aeiou][[:space:]]" nouns/*.dict

nouns/a-c.delaf.dict:bi bi+N+M+SG
...
nouns/j-p.delaf.dict:ki ki+N+M+SG
nouns/j-p.delaf.dict:li li+N+M+SG
nouns/j-p.delaf.dict:mi mi+N+M+SG
nouns/j-p.delaf.dict:mu mu+N+M+SG
...
nouns/nouns.gfl.dict:Ba ba+N+M+SG
nouns/nouns.gfl.dict:Ca ca+N+M+SG
nouns/nouns.gfl.dict:go go+N+M+SG
nouns/nouns.gfl.dict:ha ha+N+M+PL
nouns/nouns.gfl.dict:ha ha+N+M+SG
nouns/nouns.gfl.dict:ji ji+N+M+SG
...
nouns/nouns.gfl.dict:re re+N+M+SG
nouns/nouns.gfl.dict:ti ti+N+M+SG
nouns/q-z.delaf.dict:si si+N+M+SG
nouns/q-z.delaf.dict:vu vu+N+M+SG

Eu chequei todas essas formas em dois dos dicionários de referência e cheguei à seguinte lista de itens que não parecem funcionar como substantivos em português, pelo menos do ponto de vista da derivação morfológica:

ha (símbolo de hectare)

Ba e Ca (Símbolos de elementos químicos)

Essas formas geram os seguintes diminutivos, que não parecem aceitáveis, seguindo o modelo geral de casinha e casazinha a partir de casa:

hazinho
hinho
bazinho
binho
cazinho
cinho

Seja como for, na próxima versão do gerador de diminutivos, vou excluir essas três abreviaturas ao importar as formas base.

merging Label-Lex and DELAF-PB

O dicionário PT do Freeling (https://github.com/TALP-UPC/FreeLing/tree/master/data/pt/dictionary) veio do http://label.ist.utl.pt/pt/labellex_pt.php. Algumas adaptações do Label-Lex foram feitas par compatibilização do dicionários com os módulos de processamento do Freeling. Possíveis artigos relevantes:

  1. Gamallo, Pablo, and Marcos Garcia, ‘FreeLing E TreeTagger: Um Estudo Comparativo No Âmbito Do Português’, Gramatica.Usc.Es http://gramatica.usc.es/~gamallo/artigos-web/PROLNAT_Report_01.pdf [accessed 4 September 2015]
  2. Garcia, Marcos, and Pablo Gamallo, ‘Análise Morfossintáctica Para Português Europeu E Galego: Problemas, Soluções E Avaliação’, 2010, 1–9
  3. Garcia, Marcos, and Pablo Gamallo, ‘Using Morphosyntactic Post-Processing to Improve POS-Tagging Accuracy’, Inf.Pucrs.Br https://www.inf.pucrs.br/~propor2010/proceedings/regular_papers/GarciaGamallo.pdf [accessed 1 September 2015]
  4. Garcia, Marcos, Pablo Gamallo, Iria Gayo, and Miguel A Pousada Cruz, ‘PoS-Tagging the Web in Portuguese. National Varieties, Text Typologies and Spelling Systems’, Procesamiento Del Lenguaje Natural, 53 (2014), 95–101
  5. González, Marcos Garcia, ‘Extração De Relações Semânticas. Recursos, Ferramentas E Estratégias’, 2014, pp. 1–204
  6. Eleutério, Samuel; E. M. Ranchhod; C. Mota; P. Carvalho, «Dicionários Electrónicos do Português. Características e Aplicações». In Actas do VIII Simposio Internacional de Comunicación Social, pp. 636-642, Centro de Lingüística Aplicada, Santiago de Cuba.

O MorphoBr veio de http://www.nilc.icmc.usp.br/nilc/projects/unitex-pb/web/dicionarios.html.

Este issue trata do esforço de unir os dois recursos compatibilizando decisões tomadas pelos diferentes recursos.

formas verbais inválidas GFL

pra eliminar as formas agramaticais do tipo

ababadamo       ababadar+V+PRF+1+PL
ababadamo       ababadar+V+PRS+1+PL
ababadáramo     ababadar+V+PQP+1+PL
ababadarmo      ababadar+V+SBJF+1+PL
ababadarmo      ababadar+V+INF+1+PL
ababadássemo    ababadar+V+SBJP+1+PL
ababadávamo     ababadar+V+IMPF+1+PL
ababademo       ababadar+V+SBJR+1+PL

basta executar

grep -Ev ".*mo[[:space:]].*\+V\+[A-Z]+\+1\+PL" x*.pairs > verbs.pairs

existem certamente outras formas agramaticais no GLF decorrentes da estratégia de toquenização adotada. o número de casos é limitado. eu poderia fazer esse levantamento, mas se alguém criativo quiser bolar um programinha pra fazer isso, melhor. estratégia: checar se a forma adicional equivale à forma que se obtém separando o clítico da forma com V+PRO no DELAF-PB. Caso afirmativo, deletar a forma adicional.
Por exemplo, dado

ababadávamo     ababadar+V+IMPF+1+PL
ababadávamos     ababadar+V+IMPF+1+PL

checamos se uma dessas formas corresponde ao que obtemos separando as formas de ababadar+V+IMPF+1+PL com clítico, ou seja

grep -Eh "ababadar\+V.*\+IMPF\+1\+PL" uniq.*.pairs
ababadávamo-la  ababadar+V.ele.ACC.3.F.SG+IMPF+1+PL
ababadávamo-las ababadar+V.ele.ACC.3.F.PL+IMPF+1+PL
ababadávamo-lo  ababadar+V.ele.ACC.3.M.SG+IMPF+1+PL
ababadávamo-los ababadar+V.ele.ACC.3.M.PL+IMPF+1+PL
ababadávamos-lhe        ababadar+V.ele.DAT.3.SG+IMPF+1+PL
ababadávamos-lhes       ababadar+V.ele.DAT.3.PL+IMPF+1+PL
ababadávamos-me ababadar+V.eu.AD.1.SG+IMPF+1+PL
ababadávamos-te ababadar+V.tu.AD.2.SG+IMPF+1+PL
ababadávamos-vos        ababadar+V.vós.AD.2.PL+IMPF+1+PL

o teste vai ser positivo porque separando e eliminado informação sobre clítico em

ababadávamo-la  ababadar+V.ele.ACC.3.F.SG+IMPF+1+PL

obtemos

ababadávamo ababadar+V+IMPF+1+PL

acredito que isso funciona pros verbos do GLF que estão do DELAF-PB. para os outros verbos, aí precisaríamos estender a estratégia, mas pensamos nisso depois. seria importante colecionar os casos de divergência encontrados na execução do algoritmo sugerido (por ex. IMPF+1+PL), creio que isso possa ser útil pra lidar com os verbos "desconhecidos".
eu poderia tranquilamente implementar esse algoritmo em Python, seria divertido, mas é melhor eu me concentrar no componente de estados finitos e no paper...

abraços
Leonel

clitic tagset

se AD === accusative or dative, pq não dar um tratamento semelhante à ambiguidade?

e.g.:

nos    ACC.3.M.PL/AD.1.PL

ficaria como

nos    ACC.3.M.PL/ACC.1.PL/DAT.1.PL

diminutivos mal formados

Cerca de 6500 erros foram encontrados nos diminutivos gerados a
partir dos substantivos e adjetivos provenientes dos recursos
incorporados. Esses erros decorrem (i) de falhas na filtragem de bases
e na modelação dos processos morfológicos e (ii) erros dos recursos
utilizados, tais como relatados em #64, #65, #66, #67, #68, #70 e #71.
Os erros do primeiro tipo distribuem-se nas seguintes classes
principais:

  1. Abreviaturas, letras, símbolos químicos etc. como BCG, b, Ba, Br e
    Bq não podem funcionar como bases de processos morfológicos de
    derivação:
BCGzinho        bcg+N+DIM+M+SG
Bazinho ba+N+DIM+M+SG
Bazinhos        ba+N+DIM+M+PL
Binha   ba+N+DIM+M+SG
Binhas  ba+N+DIM+M+PL
Bqzinho bq+N+DIM+M+SG
Brzinho br+N+DIM+M+SG
Bzinho  b+N+DIM+M+SG
  1. Plural de diminutivos derivados de bases em -ão ou de compostos (a base ou o primeiro membro do composto deve estar no plural):
abalroaçãozinhas        abalroação+N+DIM+F+PL
cabeça-chatazinhos      cabeça-chata+N+DIM+M+PL
  1. Diminutivos derivados de compostos (o primeiro membro não deve
    perder o acento):
ze-povinhozinho      zé-povinho+N+DIM+M+SG

systematically checking missing plural forms for compounds

As pointed out in issues #61 and #64, some nouns lack a plural form.
This problem seems to be widespread, e.g. the plural form of the
following N+Adj compound is missing:

~/MorphoBr$ grep -E "[[:space:]]mosca\-morta\+" nouns/*.dict adjectives/*.dict
nouns/nouns.gfl.dict:mosca-morta        mosca-morta+N+F+SG
nouns/nouns.gfl.dict:mosca-morta        mosca-morta+N+M+SG

There is no linguistic reason for this gap, compare the analogous
compound below:

~/MorphoBr$ grep -E "[[:space:]]cabeça\-chata\+" nouns/*.dict adjectives/*.dict
nouns/nouns.gfl.dict:cabeça-chata       cabeça-chata+N+F+SG
nouns/nouns.gfl.dict:cabeça-chata       cabeça-chata+N+M+SG
nouns/nouns.gfl.dict:cabeças-chatas     cabeça-chata+N+F+PL
nouns/nouns.gfl.dict:cabeças-chatas     cabeça-chata+N+M+PL

So it would be very useful to automatically check the whole inventory
of nouns and adjectives for missing plural forms in order to fill in these gaps.

write sources -> MBR script

como discutido em #48 , é interessante termos um script que pegue nossas fontes originais e apliquem todas as modificações/correções/conversões necessárias para obtermos o MorphoBr. assim disponibilizamos um recurso de fácil reprodução, e quando introduzirmos erros percebidos tardiamente (quando modificações posteriores já os propagaram), só precisamos de alterar esse script para consertar o problema.

estou me baseando na lista de problemas dos recursos-fonte para escrever os scripts.

  • correção:
    • tools/prepare-{delaf,freeling}.sh
    • garcia
  • conversão

Including tags for lemmas of clitic pronouns

Constatei que, para a gramática léxico-funcional do português no sistema de desenvolvimento da xerox produzir análises em conformidade com as do projeto pargram, É preciso incluir, no mapeamento das propriedades dos clíticos, os respectivos lemas ou formas canônicas.

update docs

have the docs say which features each class has and in which order.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.