Closed leoalenc closed 2 years ago
amostra de 50 entradas para avaliação:
acabar_2 := nonrefl-ine-obj-verb-lex &
[ STEM < "acabar" >,
SYNSEM.LKEYS.KEYREL.PRED "_acabar_v_2_rel" ].
ligar_1 := nonrefl-goa-obj-verb-lex &
[ STEM < "ligar" >,
SYNSEM.LKEYS.KEYREL.PRED "_ligar_v_1_rel" ].
vetar_1 := trans-verb-lex &
[ STEM < "vetar" >,
SYNSEM.LKEYS.KEYREL.PRED "_vetar_v_1_rel" ].
mencionar_1 := trans-verb-lex &
[ STEM < "mencionar" >,
SYNSEM.LKEYS.KEYREL.PRED "_mencionar_v_1_rel" ].
relegar_1 := trans-verb-lex &
[ STEM < "relegar" >,
SYNSEM.LKEYS.KEYREL.PRED "_relegar_v_1_rel" ].
colmatar_1 := trans-verb-lex &
[ STEM < "colmatar" >,
SYNSEM.LKEYS.KEYREL.PRED "_colmatar_v_1_rel" ].
calibrar_1 := trans-verb-lex &
[ STEM < "calibrar" >,
SYNSEM.LKEYS.KEYREL.PRED "_calibrar_v_1_rel" ].
chamar_1 := trans-verb-lex &
[ STEM < "chamar" >,
SYNSEM.LKEYS.KEYREL.PRED "_chamar_v_1_rel" ].
bater_3 := refl-int-verb-lex &
[ STEM < "bater" >,
SYNSEM.LKEYS.KEYREL.PRED "_bater_v_3_rel" ].
indicar_3 := trans-verb-lex &
[ STEM < "indicar" >,
SYNSEM.LKEYS.KEYREL.PRED "_indicar_v_3_rel" ].
celebrar_1 := trans-verb-lex &
[ STEM < "celebrar" >,
SYNSEM.LKEYS.KEYREL.PRED "_celebrar_v_1_rel" ].
acoplar_1 := nonrefl-dat-obj-verb-lex &
[ STEM < "acoplar" >,
SYNSEM.LKEYS.KEYREL.PRED "_acoplar_v_1_rel" ].
concentrar_1 := trans-verb-lex &
[ STEM < "concentrar" >,
SYNSEM.LKEYS.KEYREL.PRED "_concentrar_v_1_rel" ].
explodir_1 := trans-verb-lex &
[ STEM < "explodir" >,
SYNSEM.LKEYS.KEYREL.PRED "_explodir_v_1_rel" ].
cessar_1 := trans-verb-lex &
[ STEM < "cessar" >,
SYNSEM.LKEYS.KEYREL.PRED "_cessar_v_1_rel" ].
amplificar_1 := trans-verb-lex &
[ STEM < "amplificar" >,
SYNSEM.LKEYS.KEYREL.PRED "_amplificar_v_1_rel" ].
formular_1 := trans-verb-lex &
[ STEM < "formular" >,
SYNSEM.LKEYS.KEYREL.PRED "_formular_v_1_rel" ].
reencontrar_2 := refl-int-verb-lex &
[ STEM < "reencontrar" >,
SYNSEM.LKEYS.KEYREL.PRED "_reencontrar_v_2_rel" ].
colher_1 := trans-verb-lex &
[ STEM < "colher" >,
SYNSEM.LKEYS.KEYREL.PRED "_colher_v_1_rel" ].
supor_3 := trans-verb-lex &
[ STEM < "supor" >,
SYNSEM.LKEYS.KEYREL.PRED "_supor_v_3_rel" ].
passar_3 := refl-int-verb-lex &
[ STEM < "passar" >,
SYNSEM.LKEYS.KEYREL.PRED "_passar_v_3_rel" ].
batizar_1 := nonrefl-gen-obj-verb-lex &
[ STEM < "batizar" >,
SYNSEM.LKEYS.KEYREL.PRED "_batizar_v_1_rel" ].
cobrar_1 := trans-verb-lex &
[ STEM < "cobrar" >,
SYNSEM.LKEYS.KEYREL.PRED "_cobrar_v_1_rel" ].
solicitar_3 := subj-cl-rec-verb-lex &
[ STEM < "solicitar" >,
SYNSEM.LKEYS.KEYREL.PRED "_solicitar_v_3_rel" ].
estourar_1 := trans-verb-lex &
[ STEM < "estourar" >,
SYNSEM.LKEYS.KEYREL.PRED "_estourar_v_1_rel" ].
treinar_1 := trans-verb-lex &
[ STEM < "treinar" >,
SYNSEM.LKEYS.KEYREL.PRED "_treinar_v_1_rel" ].
consubstanciar_1 := trans-verb-lex &
[ STEM < "consubstanciar" >,
SYNSEM.LKEYS.KEYREL.PRED "_consubstanciar_v_1_rel" ].
revisitar_1 := trans-verb-lex &
[ STEM < "revisitar" >,
SYNSEM.LKEYS.KEYREL.PRED "_revisitar_v_1_rel" ].
votar_2 := trans-verb-lex &
[ STEM < "votar" >,
SYNSEM.LKEYS.KEYREL.PRED "_votar_v_2_rel" ].
conformar_1 := refl-com-obj-verb-lex &
[ STEM < "conformar" >,
SYNSEM.LKEYS.KEYREL.PRED "_conformar_v_1_rel" ].
valer_1 := trans-verb-lex &
[ STEM < "valer" >,
SYNSEM.LKEYS.KEYREL.PRED "_valer_v_1_rel" ].
acompanhar_2 := nonrefl-gen-obj-verb-lex &
[ STEM < "acompanhar" >,
SYNSEM.LKEYS.KEYREL.PRED "_acompanhar_v_2_rel" ].
torturar_1 := trans-verb-lex &
[ STEM < "torturar" >,
SYNSEM.LKEYS.KEYREL.PRED "_torturar_v_1_rel" ].
punir_1 := trans-verb-lex &
[ STEM < "punir" >,
SYNSEM.LKEYS.KEYREL.PRED "_punir_v_1_rel" ].
replicar_1 := ind-cl-verb-lex &
[ STEM < "replicar" >,
SYNSEM.LKEYS.KEYREL.PRED "_replicar_v_1_rel" ].
visitar_1 := trans-verb-lex &
[ STEM < "visitar" >,
SYNSEM.LKEYS.KEYREL.PRED "_visitar_v_1_rel" ].
reconstruir_1 := trans-verb-lex &
[ STEM < "reconstruir" >,
SYNSEM.LKEYS.KEYREL.PRED "_reconstruir_v_1_rel" ].
estudar_1 := trans-verb-lex &
[ STEM < "estudar" >,
SYNSEM.LKEYS.KEYREL.PRED "_estudar_v_1_rel" ].
privilegiar_1 := trans-verb-lex &
[ STEM < "privilegiar" >,
SYNSEM.LKEYS.KEYREL.PRED "_privilegiar_v_1_rel" ].
contar_5 := nonrefl-com-obj-verb-lex &
[ STEM < "contar" >,
SYNSEM.LKEYS.KEYREL.PRED "_contar_v_5_rel" ].
mimetizar_1 := trans-verb-lex &
[ STEM < "mimetizar" >,
SYNSEM.LKEYS.KEYREL.PRED "_mimetizar_v_1_rel" ].
demover_1 := trans-verb-lex &
[ STEM < "demover" >,
SYNSEM.LKEYS.KEYREL.PRED "_demover_v_1_rel" ].
plantar_1 := trans-verb-lex &
[ STEM < "plantar" >,
SYNSEM.LKEYS.KEYREL.PRED "_plantar_v_1_rel" ].
afastar_1 := refl-gen-obj-verb-lex &
[ STEM < "afastar" >,
SYNSEM.LKEYS.KEYREL.PRED "_afastar_v_1_rel" ].
adiantar_3 := nom-acc-dat-ditransitive-verb-lex &
[ STEM < "adiantar" >,
SYNSEM.LKEYS.KEYREL.PRED "_adiantar_v_3_rel" ].
mentir_1 := nonrefl-dat-obj-verb-lex &
[ STEM < "mentir" >,
SYNSEM.LKEYS.KEYREL.PRED "_mentir_v_1_rel" ].
dissolver_1 := trans-verb-lex &
[ STEM < "dissolver" >,
SYNSEM.LKEYS.KEYREL.PRED "_dissolver_v_1_rel" ].
reconciliar_1 := trans-verb-lex &
[ STEM < "reconciliar" >,
SYNSEM.LKEYS.KEYREL.PRED "_reconciliar_v_1_rel" ].
inscrever_2 := refl-ine-obj-verb-lex &
[ STEM < "inscrever" >,
SYNSEM.LKEYS.KEYREL.PRED "_inscrever_v_2_rel" ].
repor_1 := trans-verb-lex &
[ STEM < "repor" >,
SYNSEM.LKEYS.KEYREL.PRED "_repor_v_1_rel" ].
Código no sample-eval-valence.py
de e9f4bdb
Em e9f4bdb acrescentei os mapeamentos das molduras extraídas do bosque no etc/valence.py para os tipos da PorGram.
Em https://github.com/LR-POR/tools/commit/2190f238228f8d0960b9f26f9336185642d84dfd, incluí as seguintes funções:
get_examples_of_verbtype
, que extrai do Bosque os exemplos que correspondem a tipos da PorGram, com base nos mapeamentos de https://github.com/LR-POR/tools/tree/main/etc/ud-types.
2.get_shortest_example
, que extrai o exemplo mais curto de uma lista de exemplos. https://github.com/LR-POR/tools/commit/f91956466f6bb1a9950b362f3d9c82ce463c051b contém mudanças e acréscimos que facilitam a outros usuários a criação de novas entradas da PorGram a partir de exemplos do Bosque.
Implementei, em https://github.com/LR-POR/tools/commit/4f3b38843ed4a2626f3c75d6043542deb3daf74a, a função compute_stats
, que cria tabela m*n, onde m é a aridade de uma moldura e n é a quantidade de molduras com essa aridade, relevante para detecção de molduras excessivamente longas que podem indicar erros de anotação, conforme https://github.com/UniversalDependencies/UD_Portuguese-Bosque/issues/393#.
Em https://github.com/LR-POR/tools/commit/dfb654ad9cc4a9fe4248a335021d810f4804035c, implementei a função insert_examples
que, aplicada sobre um arquivo TDL com entradas geradas automaticamente a partir de dados do UD_Portuguese-Bosque, insere, em cada entrada lexical, como docstring, o exemplo mais curto do verbo no tipo respectivo. Para tanto, é feita uma reconversão do tipo da PorGram para a lista de molduras correspondentes.
A função permite também extrair uma amostra aleatória do arquivo TDL dado, incorporando a funcionalidade de https://github.com/LR-POR/tools/commit/e9f4bdb7f6b9ff90765f24e5bdd592677b835cf2, implementado por @arademaker.
Um exemplo extraído de um arquivo gerado pela função:
afastar_1 := refl-gen-obj-verb-lex &
[ STEM < "afastar" >,
SYNSEM.LKEYS.KEYREL.PRED "_afastar_v_1_rel" ]
"""
Como melhorar o ensino superior sem transformar as universidades em «escolões», onde os professores só repetem e se afastam da pesquisa?
""".
Em https://github.com/LR-POR/tools/commit/15817208d0bfa6c84efd5a14a930a36789b20495, melhorei a função que extrai todas as preposições de todas as molduras valenciais. A lista de preposições revela potenciais erros de anotação do Bosque, problemas que detalharei em issue própria do respectivo repositório.
Corrigir problema detectado em https://github.com/LR-POR/PorGram/issues/59#issuecomment-1024587420, causado pelo fato de alguns verbos como cópulas não estarem sendo incorporados ao dicionários de entradas existentes, levando a que o módulo de criação automática de entradas a partir de molduras do Bosque gere duplicatas.
Com https://github.com/LR-POR/tools/commit/ed7dff9939e880e3d025fded2fd2eb94c0957203, fecho a questão. Os scripts ValenceExtractor.py
e WriteVerbEntries.py
permitem agora extrair todas as entradas existentes da PorGram e incluir novas entradas automaticamente a partir de dados do UD Bosque, atualizando os índices, conforme as seguintes issues:
https://github.com/LR-POR/PorGram/issues/60 https://github.com/LR-POR/PorGram/issues/66 https://github.com/LR-POR/PorGram/issues/67 https://github.com/LR-POR/PorGram/issues/69
Fecho a issue. Problemas que surgirem e melhoras que vierem a ser feitas nos scripts serão objeto de issues específicas.
Em e9f4bdb acrescentei os mapeamentos das molduras extraídas do bosque no etc/valence.py para os tipos da PorGram.
Novos mapeamentos incluídos com https://github.com/LR-POR/tools/commit/ed7dff9939e880e3d025fded2fd2eb94c0957203.
@arademaker, construí scripts com diversas funções em Python que extraem verbos do Bosque, usando o dicionário criado por meio de
valences.py
, e geram entradas da gramática, atualizando o índice dos lemas. Componente central da criação de entradas é um mapping de molduras sobre tipos da gramática. Esta issue relaciona-se, além de #11, às seguintes:https://github.com/LR-POR/PorGram/issues/60 https://github.com/LR-POR/PorGram/issues/19
O objetivo desta issue é melhorar esses scripts meus. Uma atividade talvez para @analununes ou quem se dispuser a isso.