lr-por / morphobr Goto Github PK
View Code? Open in Web Editor NEWResources for morphological analysis of Portuguese
License: Apache License 2.0
Resources for morphological analysis of Portuguese
License: Apache License 2.0
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
Vejam https://flammie.github.io/omorfi/pages/usage-examples.html e https://github.com/flammie/omorfi. Acho que pode ser uma boa inspiração para o que podemos fazer com MorphoBr.
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)
@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.
https://github.com/heliolbs/MorphoBrExpansion/
We need to add here the additions from Hélio in the repo above.
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.
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.
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.
reports sobre experimentos de cobertura do recurso com corpora: http://github.com/universaldependencies/UD_Portuguese-GSD e http://github.com/own-pt/bosque-UD.
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 |
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
@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?
The form “bubonídeas” is incorrectly assigned both the masculine +M and the feminine +F tags. Only the latter is correct.
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.
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 .
Vide comentário no issue #61.
Será que teremos casos de palavras que não tem plural? Neste caso como sinalizar?
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.
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)
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
vamos querer um conversor para unimorph?
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'
@lucasrct , pode apontar aqui para script e listas que vc produziu de possíveis verbos faltando no MorphoBr?
@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.
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
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...
have the docs say which features each class has and in which order.
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.
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.
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
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:
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.
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?
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.
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.
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.
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:
adjs.gfl.dict:cagarretaa cagarreta+A+F+SG
adjs.gfl.dict:cagarretaas cagarreta+A+F+PL
adjs.gfl.dict:cagarretaes cagarreta+A+M+PL
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
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
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
~/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.
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.
@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.
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:
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
abalroaçãozinhas abalroação+N+DIM+F+PL
cabeça-chatazinhos cabeça-chata+N+DIM+M+PL
ze-povinhozinho zé-povinho+N+DIM+M+SG
diff da correção necessária:
- Pres = ss "+PRF" ;
+ Pres = ss "+PRS" ;
typo, should be vertiginosamente
@odanoburu @arademaker Quem poderia construir programinha para verificar se todos os verbos do dicionário de São Carlos possuem pelo menos 71 formas diferentes, isto é, pares diferentes word\tlemma+tags
?
Relevante direção para este issue: #8 (comment)
https://github.com/LFG-PTBR/MorphoBr/blob/master/diminutives/README.org
@leoalenc , you are talking about Foma and xfst but only the last one was used , right ?
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
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)
@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!
nouns/q-z.delaf.dict:última última+N+F+SG
nouns/q-z.delaf.dict:última último+N+F+SG
molengu molenga AQCCS00
molengus molenga AQCCP00
a tag C
marca como diminutivo.
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?
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.
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.