Closed leoalenc closed 1 year ago
Eu mencionei este assunto em https://github.com/delph-in/docs/issues/17, veja que Erg tem no repositório dela tanto esta MRs test suite como a CSLI test suite, sendo a segunda, segundo o Stephan (veja quote no issue) sobre estruturas sintáticas e esta MRS sobre representações semânticas.
Uma solução seria adotar a mesma estratégia que Erg, incorporar neste repo as test suites e suas anotações golden como profiles. O LKB_FOS no Linux se conecta ao TSDB e pode trabalhar com profiles ao invés de text files.
@leoalenc eu gostaria de unificar os arquivos test_sentences e my-test_sentences.txt que estão no repositório. Isto está relacionado ao novo repositório que movi para cá http://github.com/LR-POR/ud-matrix e ao issue #19. A tabela do #19 poderá conter apenas os IDs das sentenças nos respectivos test suites quando organizarmos eles. Mas temos hoje várias novas sentenças que não estavam nos datasets originais:
% wc -l my-test_sentences.txt test_sentences
542 my-test_sentences.txt
299 test_sentences
@leoalenc eu gostaria de unificar os arquivos test_sentences e my-test_sentences.txt que estão no repositório. Isto está relacionado ao novo repositório que movi para cá http://github.com/LR-POR/ud-matrix e ao issue #19. A tabela do #19 poderá conter apenas os IDs das sentenças nos respectivos test suites quando organizarmos eles. Mas temos hoje várias novas sentenças que não estavam nos datasets originais:
% wc -l my-test_sentences.txt test_sentences 542 my-test_sentences.txt 299 test_sentences
@arademaker, _testsentences é sempre gerado pela Matriz a partir do arquivo choices, que contém esses exemplos. Desse modo, seguindo sua sugestão, vou eliminar _testsentences.
Não sei se eliminar faz sentido afinal outros tantos arquivos são também gerados pelo choices.
Mas certamente preciso entender seus exemplos melhor. A ideia é termos dentro do diretório tsdb os profiles para as test suítes MRS e CSLI, traduzidas. Mas vc criou um outro tanto de sentenças com variações das sentenças destes test suítes, certo? O que fazer com estas? Talvez criar outra test suíte? Ou manter nas mesmas relacionando de alguma forma as sentenças originais e suas variantes? Falta de atenção da minha parte, lendo com calma seu comentário inicial aqui, já temos a resposta do que fazer e como relacionar as sentenças pelos identificadores. Só vou precisar da sua ajuda para fazer esta relação das sentenças extras como as sentenças originais. Me avise quando puder, talvez em uma call possamos fazer juntos? Eu posso começar e peço para vc revisar depois?
Para casa profile que tivermos no tsdb, a ideia é ter as mesmas sentenças analisadas em ud neste repositório chamado agora UD-Matrix mas que precisa ser renomeado.
Não sei se eliminar faz sentido afinal outros tantos arquivos são também gerados pelo choices.
Mas certamente preciso entender seus exemplos melhor. A ideia é termos dentro do diretório tsdb os profiles para as test suítes MRS e CSLI, traduzidas. Mas vc criou um outro tanto de sentenças com variações das sentenças destes test suítes, certo? ~O que fazer com estas? Talvez criar outra test suíte? Ou manter nas mesmas relacionando de alguma forma as sentenças originais e suas variantes?~ Falta de atenção da minha parte, lendo com calma seu comentário inicial aqui, já temos a resposta do que fazer e como relacionar as sentenças pelos identificadores. Só vou precisar da sua ajuda para fazer esta relação das sentenças extras como as sentenças originais. Me avise quando puder, talvez em uma call possamos fazer juntos? Eu posso começar e peço para vc revisar depois?
Para casa profile que tivermos no tsdb, a ideia é ter as mesmas sentenças analisadas em ud neste repositório chamado agora UD-Matrix mas que precisa ser renomeado.
@arademaker, no momento, não temos uma versão final do conjunto de teste MRS em português do Brasil. E não ainda não traduzi o conjunto de teste CSLI. Portanto, o único conjunto de teste que tem sido utilizado para testar a gramática é _my-testsentences.txt, de que o arquivo apagado constitui um subconjunto. Esse conjunto de teste foi construído progressivamente para testar as diferentes versões da gramática. No diretório test, você pode acompanhar uma parte do desenvolvimento desse conjunto, comparando os diferentes arquivos com o prefixo out e os arquivos correspondentes com o prefixo choices em grammar_choices. Na verdade, não subi todos esses arquivos do meu diretório local, que contém toda a série desde as versões iniciais, ou seja, out01.txt e choices01.txt. Os exemplos de _my-testsentences.txt foram criados livremente por mim para testar os diferentes fenômenos que fui implementando, primeiro exclusivamente por meio do questionário, depois por meio de codificação manual em TDL. Procurei seguir a sequência do mais fácil para o mais difícil, conforme o meu aprendizado progressivo do sistema e do formalismo subjacente. Na implementação desses fenômenos, tive como norte maior o objetivo de permitir que a gramática analisasse o conjunto MRS. No entanto, não há vínculo direto entre _my-testsentences.txt e esse conjunto. Concluindo, para o que você pretende fazer, o que temos no momento é _my-testsentences.txt, que vai continuar crescendo, acompanhando a expansão da gramática. Num futuro próximo, podemos aplicar a gramática à versão do conjunto MRS que estou preparando, com os exemplos em português do Brasil. Analisar o conjunto MRS vai constituir, conforme parece, uma milestone.
related to #31
We now have a core
test suite but we need to revise some details:
00000000-99999999
Once I have fixed that, I will close this issue, recreating the core profile. The test
folder will be removed after the steps above, and the choice file will be updated not to have examples at all. It doesn't hurt to have the examples, but they are not supposed to be used for grammar development, just illustrative examples (maybe we can keep five small sentences).
We already have some sentences from the MRS Test suite translation in the core. So we may need to decide if in the future we many revise the core profile, removing the ones that are from MRS and keeping MRS separated from the new variations created by @leoalenc
In c8f31413a433f6c1d76d6579fc6cb9e52962c4af
I used the command below to create the core.tsv
awk 'BEGIN {OFS="@"; print "i-id","i-input","i-wf";} $0 ~ /^\*/ {i=sprintf("%08.0f",FNR); print i,substr($0,2),0; next} {i=sprintf("%08.0f",FNR); print i,$0,1;}' ../../test/my-test_sentences.txt > core.tsv
Next, I prepared the tsdb/work/core
to treebank with the command below. But now, we have ungrammatical sentences, so we need to consider each of the errors below if they were introduced on purpose.
% delphin process -s core -g ~/hpsg/porgram.dat --full-forest --options='--disable-generalization' ../work/core
Processing |# | 24/659NOTE: lexemes do not span position 2 `ladrou-se'!
NOTE: post reduction gap
NOTE: ignoring `o cachorro ladrou-se'
Processing |##### | 120/659NOTE: lexemes do not span position 1 `lagartãos'!
NOTE: post reduction gap
NOTE: ignoring `os lagartãos admiram o cachorro'
Processing |###### | 128/659NOTE: lexemes do not span position 3 `inteligentea'!
NOTE: post reduction gap
NOTE: ignoring `a lagartinha é inteligentea'
Processing |###### | 129/659NOTE: lexemes do not span position 3 `inteligenta'!
NOTE: post reduction gap
NOTE: ignoring `a lagartinha é inteligenta'
Processing |###### | 131/659NOTE: lexemes do not span position 3 `feroza'!
NOTE: post reduction gap
NOTE: ignoring `a lagartinha é feroza'
Processing |###### | 133/659NOTE: lexemes do not span position 3 `ferozas'!
NOTE: post reduction gap
NOTE: ignoring `as lagartinhas são ferozas'
Processing |###### | 134/659NOTE: lexemes do not span position 3 `ferozeas'!
NOTE: post reduction gap
NOTE: ignoring `as lagartinhas são ferozeas'
Processing |######## | 175/659NOTE: lexemes do not span position 2 `está-se'!
NOTE: post reduction gap
NOTE: ignoring `o cachorro está-se triste'
Processing |######## | 176/659NOTE: lexemes do not span position 2 `é-se'!
NOTE: post reduction gap
NOTE: ignoring `o cachorro é-se triste'
Processing |######## | 177/659NOTE: lexemes do not span position 6 `tivesse-se'!
NOTE: post reduction gap
NOTE: ignoring `o gato detestou que o cachorro tivesse-se latido'
Processing |######## | 178/659NOTE: lexemes do not span position 7 `latido-se'!
NOTE: post reduction gap
NOTE: ignoring `o gato detestou que o cachorro tivesse latido-se'
Processing |################################| 659/659
NOTE: parsed 0 / 659 sentences, avg 12638k, time 18.66695s
@leoalenc, the test_sentences
should be the output of the matrix. It should match the test-sentences
section in the choices file. But they are different. So, should I assume the current version of the files in the repo does not correspond to the ones generated by the matrix given the current choices file?
I confirmed that results.txt
has sentences we don't have in core.txt
. So results.txt may be based on a file that was not updated in the repository.
awk '$0 ~ /^[0-9]/ {s=gsub(/[ ]?[0-9]+[ ]?/,"",$0); print $0}' results.txt > results.raw
diff results.raw core.txt
Considering the questions above. I also found two different versions of choices files:
Can @leoalenc confirm which one is the last one?
@arademaker , choices
is the last one. It was generated by the Grammar Matrix.
@arademaker , with https://github.com/LR-POR/PorGram/commit/436380819c6af8f43c42d2362664d3f25de6fd26, I removed two duplicates from core.txt
:
sort core.txt | uniq -c | sort -nr | head
2 que gato o cachorro perseguiu 2 qual gato o cachorro perseguiu 1 vós estais felizes 1 uma artista imitou aquele gato 1 tu estás feliz 1 três ratazanas caçaram aquele cachorro 1 todos os gatos temem o cachorro 1 todos os gatos perseguiram algum cão 1 todos gatos temem o cachorro 1 todos gatos perseguiram alguns cães
@arademaker , the grammar does not generate any output for the following sentences:
26 a estudante disse para o artista para trazer uma bola 368 o cachorro tinha insistido em parar de latir
This is an excellent question for Dan!
This is why results.txt
has fewer sentences than core.txt
.
The file test_sentences not been used for the development of the grammar for a long time, see my first comment above. It is deprecated. The sole basis for the development of the grammar @arademaker is the file my-test_sentences.txt, which was created and has been updated manually.
The comment https://github.com/LR-POR/PorGram/issues/5#issuecomment-1419438419 was fixed.
@leoalenc can you double-check the examples in
https://github.com/LR-POR/PorGram/blob/main/tsdb/skeletons/core.txt
I found some cases that I expected to be ungrammatical (marked as 0 in the last field):
6300@que o cachorro perseguiu@1
6500@todas ratazanas temem o gato@1
6520@todos gatos perseguiram algum cão@1
6530@todos gatos perseguiram alguma ratazana@1
6540@todos gatos perseguiram algumas ratazanas@1
6550@todos gatos perseguiram alguns cães@1
6560@todos gatos temem o cachorro@1
@leoalenc can you double-check the examples in
https://github.com/LR-POR/PorGram/blob/main/tsdb/skeletons/core.txt
I found some cases that I expected to be ungrammatical (marked as 0 in the last field):
6300@que o cachorro perseguiu@1 6500@todas ratazanas temem o gato@1 6520@todos gatos perseguiram algum cão@1 6530@todos gatos perseguiram alguma ratazana@1 6540@todos gatos perseguiram algumas ratazanas@1 6550@todos gatos perseguiram alguns cães@1 6560@todos gatos temem o cachorro@1
@arademaker , all sentences mentioned are grammatical. However, you are right to raise doubts about this. In fact, the first sentence seems to be more common in European Portuguese. This construction appears on page 240 of the Grammar of the Portuguese Language, in the second edition, by Maria Elena Mira Matheus and other authors, published in Lisbon in 1989 by the publisher Caminho. The use of the universal quantifier in plural without article is considered incorrect by prescriptive approaches. Personally, I prefer the version with article. However, in my personal dialect, the construction without definite article is also possible. It is attested by Mario A. Perini in his Descriptive Grammar of Brazilian, Portuguese, published by Vozes in 2016, see page 364.
@arademaker , the grammar does not generate any output for the following sentences:
26 a estudante disse para o artista para trazer uma bola 368 o cachorro tinha insistido em parar de latir
This is an excellent question for Dan!
This is why
results.txt
has fewer sentences thancore.txt
.
@arademaker , the grammar analyses both sentences with LKB if we set the *maximum-number-of-edges*
parameter to 20000, see https://github.com/LR-POR/PorGram/commit/2193fce41efab3df6ea60c9c33d37b8424d4b974.
@arademaker , some sentences from core.txt
are legitimately ambiguous, e.g.
5510@os cachorros amarelos ladraram@1
The sentence should have two readings.
I'm going to correct this. In the future, I could design a tense feature architecture to avoid this. Would you like to ask Dan if this effort is worthy?
Last number is 1 for grammatical and 0 for ungrammatical. We are not recording ambiguity. A good question for @danflink
Thanks.
@arademaker, estou revendo a tradução ou adaptação desse conjunto teste para o português do Brasil, de modo a poder avaliar a cobertura da gramática. Num primeiro momento, vou simplesmente juntar num arquivo todas as traduções possíveis que me ocorrerem ou que me forem sugeridas. Levarei em conta, também, as sentenças equivalentes dos conjuntos teste do alemão e francês. Num segundo momento, seria interessante organizar as traduções seguindo estas orientações, para o que peço ajuda, se isso for realmente relevante para o desenvolvimento da PorGram:
http://moin.delph-in.net/wiki/MatrixMrsTestSuite
Esta issue será fechada quando esses dois objetivos forem cumpridos.