Open leoalenc opened 2 years ago
@analununes e @arademaker , para construir as molduras dos scripts, parti do pressuposto de que elas não codificam variações de ordem de constituintes, mas seguem um ordenamento pré-definido. Podem checar se isso de fato ocorre no programa em Python? Ou seja, dados os exemplos:
A uma ONG a prefeitura cedeu o prédio abandonado . A prefeitura cedeu o prédio abandonado a uma ONG. A prefeitura cedeu a uma ONG o prédio abandonado. O prédio abandonado a prefeitura cedeu a uma ONG.
a moldura correspondente seria:
'<VERB:act,nsubj,iobj:a,obj>'
É isso mesmo? Existiria também a variante abaixo?
'<VERB:act,nsubj,obj,iobj:a>'
@leoalenc, com seu script extraí os seguintes verbos:
_acc_goalverbs
representar, aumentar, dar, emprestar, reorientar, preparar, conceder, elevar, enviar, reduzir, abrir, indicar, encaminhar, tirar, nomear
_acc_datverbs
devolver, explicar, garantir, lançar, recordar, relatar, ganhar, encomendar, cobrar, rasgar, traçar, fazer, assistir, mover, interessar, pagar, preferir, creditar, transmitir, reconhecer, conceder, atribuir, apontar, encaminhar, revelar, saudar, adaptar, passar, confirmar, dedicar, denunciar, roubar, resistir, tirar, dispensar, conectar, proporcionar, atirar, juntar, exprimir, suscitar, adiantar, cortar, lembrar, restringir, dar, acrescentar, ensinar, conferir, distribuir, trazer, confiar, entregar, ligar, meter, doar, sobrepor, rematar, retirar, comprovar, adubar, possibilitar, dificultar, manifestar, apresentar, levar, jurar, provocar, atenuar, comunicar, arriscar, marcar, fornecer, custar, propor, prestar, obrigar, enriquecer, associar, sugerir, escrever, pedir, limitar, destinar, propôr, tomar, reduzir, dever, submeter, imprimir, remeter, deixar, aplicar, colocar, condenar, acariciar, alargar, solicitar, chegar, enviar, caber, mostrar, permitir, deitar, preparar, dizer, impor, mangueirar, oferecer, criar, alegar, exigir, endereçar, pôr, decretar, negar, prender, unir, tapar, abraçar, reconduzir, documentar, comparar, chamar, desafiar, acentuar, abrir, vender, apor, opor, disponibilizar, instaurar
fazendo a interseção dos grupos acima: nom-acc-rec-ditransitive-verb-lex
[' enviar', ' encaminhar', ' conceder', ' dar', ' tirar', ' reduzir', ' preparar', ' abrir']
Gerei as entradas desses verbos usando a delphin, apenas um teste: entradas.txt
@analununes, muito obrigado! As entradas têm um problema: você precisa colocar as strings entre aspas! Ou seja, em vez de
endereçar := nom-acc-dat-ditransitive-verb-lex &
[ STEM < endereçar >,
SYNSEM.LKEYS.KEYREL.PRED _endereçar_v_rel_ ].
precisamos de
endereçar := nom-acc-dat-ditransitive-verb-lex &
[ STEM < "endereçar" >,
SYNSEM.LKEYS.KEYREL.PRED "_endereçar_v_rel_" ].
@analununes e @arademaker, seria extremaente importante organizar os resultados extraídos do Bosque numa tabela no seguinte formato, para facilitar a validação manual dos dados:
lemma | number of occurrences with type | type | example sentence |
---|---|---|---|
tapar | 1 | nom-acc-dat-ditransitive-verb-lex | No momento em que regressava a casa, o indivíduo lançou-se sobre ela, tapou-lhe a boca, agrediu-a e atirou-a ao chão. |
Escolher para a última coluna a menor sentença exemplificativa. No caso, existe uma única sentença com o verbo tapar com o tipo nom-acc-dat-ditransitive-verb-lex
.
@leoalenc, consegui colocar entre aspas:
Estou tentando construir a tabela, ainda não consegui, não sei como extrair a informação de número de ocorrências :(
@leoalenc, consegui colocar entre aspas:
Estou tentando construir a tabela, ainda não consegui, não sei como extrair a informação de número de ocorrências :(
@analununes, obrigado. Realmente, parece bem difícil extrair o número de ocorrências, dada a maneira como essa featurer
foi implementada. Também não consegui. Talvez fosse o caso de mudar o programa em Python para que o atributo example
de <class 'valences.Valence'>
fosse uma lista de strings
e não uma string
. Você poderia abrir issue a respeito no repositório tools para alterar isso? O que acha, @arademaker?
@analununes e @arademaker , entendi agora como foi implementada a funcionalidade do programa que permite extrair os exemplos de um dado verbo com dada moldura: o objeto Verbo armazena uma lista com as molduras onde ocorre, cada uma das quais possui um atributo Exemplo. Por isso, para saber a quantidade de exemplos com cada moldura, basta iniciar um contador. Vejam:
>>> i=0
>>> for c in situar.valences:
if c.valence_category == '<VERB:act,nsubj,expl>':
i+=1
print(c.example)
As metas quanto à inflação é conseguir que esta, até ao final de 1992, se situe nos 12 por cento ao mês.
Mary Jo White considerou no entanto que as empresas não estavam protegidas pelo facto de a sua sede se situar fora dos Estados Unidos.
Confrontado com o pedido da mudança toponímica, o município viseense, através do seu líder, Fernando Ruas, oficiou a Junta no sentido de dar o nome de Luís Martins a uma outra avenida que atravessa a freguesia e que se situa num troço da Entrada Nacional 2 gerido pela Câmara -- o que não agradou aos elementos da autarquia repesense.
Adriana Varejão situa-se no campo das reflexões sobre o cruzamento de culturas.
>>> i
4
>>>
Portanto, ignorem minha sugestão de mudança no comentário anterior.
@leoalenc muito obrigada pela ajuda! Construí a tabela:
O objetivo desta issue, desdobramento de #19, é construir entradas de verbos de transferência, de que doar constitui exemplo prototípico. O grupo inclui não somente verbos de transferência de posse, mas, também, verbos de comunicação, que expressam transferência de informação de um AGENTE para um RECIPIENTE. Na PorGram, temos:
~/hpsg/por$ grep -En "^doar" *.tdl
Verbos com o tipo
nom-acc-rec-ditransitive-verb-lex
são ditransitivos (ou bitransitivos), tradicionalmente chamados de transitivos diretos e indiretos. O RECIPIENTE pode realizar-se tanto com a preposição de dativo a quanto com para, esta última restrita (ou pelo menos mais comum) ao PB. Para povoar esse tipo, precisamos inicialmente extrair os verbos do Bosque usando este script, apresentado no artigo submetido ao PROPOR:Em seguida, precisamos construir variante desse script substituindo
iobj:a
poriobj:para
:Finalmente, construímos as entradas para a união dos dois conjuntos gerados pelos dois scripts. @arademaker e @wellington36 , uma questão interessante é verificar a consistência do Bosque na anotação desse tipo de verbo. Por exemplo, em vez de
iobj
, será que teríamos tambémobj:a
ouobj:para
nas molduras do segundo script (excluindo os casos deiobj
sem preposição, que são clíticos dativos)? Notem que o clítico deiobj
deve sempre ser dativo. Essa é mais uma forma de detectar possíveis erros de anotação. Verbos que somente ocorrem no corpus comiobj:para
ouiobj:a
receberão tipos mais específicos, respectivamente:nom-acc-goal-ditransitive-verb-lex
nom-acc-dat-ditransitive-verb-lex
Uma inspeção manual, contudo, poderá reclassificar esses verbos como
nom-acc-rec-ditransitive-verb-lex
. Por exemplo, vamos supor que encontremos no Bosque:Intuitivamente, sabemos que poderíamos parafrasear essa frase como:
O mesmo sentido do verbo admite também clíticos dativos:
Esses dois últimos exemplos evidenciam que ceder enquadra-se no tipo
nom-acc-rec-ditransitive-verb-lex
.