Nltk: Função para acessar o objeto Synset usando a tecla de sentido

Criado em 10 jan. 2018  ·  4Comentários  ·  Fonte: nltk/nltk

Posso ter perdido, mas há uma função para acessar o objeto Synset da interface NLTK wordnet da chave de sentido ?

Se não houver, poderíamos expor uma função que pode fazer isso em nltk.corpus.wordnet ? Por exemplo, https://stackoverflow.com/questions/48170666/how-to-get-the-gloss-given-sense-key-using-nltk-wordnet/

Idealmente, seria bom ter funcionalidades para acessar objetos Synset usando:

  1. offset-pos , por exemplo, 1433493-a -> Synset('long.a.02')
  2. sense_key , por exemplo, long%3:00:02:: -> Synset('long.a.02')

Atualmente, temos synset_from_pos_and_offset() para (1).

Há outra função ( _synset_from_pos_and_line ) que lê a seguinte linha para retornar Synset('long.a.02') :

01433493 00 a 01 long 1 016 = 05129201 n 0000 + 05133287 n 0101 ! 01436003 a 0101 & 01434007 a 0000 & 01434218 a 0000 & 01434530 a 0000 & 01434717 a 0000 & 01434841 a 0000 & 01434966 a 0000 & 01435060 a 0000 & 01435189 a 0000 & 01435290 a 0000 & 01435399 a 0000 & 01435507 a 0000 & 01435675 a 0000 & 01435891 a 0000 | primarily spatial sense; of relatively great or greater than average spatial extension or extension as specified; "a long road"; "a long distance"; "contained many long words"; "ten miles long" 

mas não é a chave dos sentidos.

corpus enhancement goodfirstbug nice idea wordnet

Comentários muito úteis

Implementada a função sugerida no stackoverflow, mas ela não parecia mapear os sentidos corretos - por exemplo, synset_from_sense_key('afraid%3:00:00::') retornou afraid.a.04 vez de afraid.a.01 . Esse problema se estende a outros PDVs também. (As chaves de detecção foram obtidas na

Em vez disso, o uso do método mostrado na documentação do lemma_from_key(key) que parece receber algo semelhante a uma tecla de detecção. No entanto, lemma_from key(key) não suporta satélites adjetivos (por exemplo, afraid%3:00:02:concerned:00 ). Definitivamente, posso implementar um invólucro em torno de lemma_from_key(key) para consertar isso e retornar um Synset .

Todos 4 comentários

Eu gostaria de trabalhar nisso!

@craaaa Desculpe pelo atraso na resposta, estava ausente por um tempo.

Sinta-se à vontade para trabalhar nisso e criar um PR depois.
P / S: Não se preocupe em quebrar nada, haverá verificações e revisões antes de mesclar o código.

Implementada a função sugerida no stackoverflow, mas ela não parecia mapear os sentidos corretos - por exemplo, synset_from_sense_key('afraid%3:00:00::') retornou afraid.a.04 vez de afraid.a.01 . Esse problema se estende a outros PDVs também. (As chaves de detecção foram obtidas na

Em vez disso, o uso do método mostrado na documentação do lemma_from_key(key) que parece receber algo semelhante a uma tecla de detecção. No entanto, lemma_from key(key) não suporta satélites adjetivos (por exemplo, afraid%3:00:02:concerned:00 ). Definitivamente, posso implementar um invólucro em torno de lemma_from_key(key) para consertar isso e retornar um Synset .

@craaaa. Acho que ainda há um problema com satélites de adjetivo. Tentei usar a função synset_from_sense_key e aqui está o erro:

Arquivo "/home/izorar/anaconda3/lib/python3.7/site-packages/nltk/corpus/reader/wordnet.py", linha 1356, em synset raise WordNetError (mensagem% lemma) WordNetError: adjetivo satélite solicitado, mas apenas simples adjetivo encontrado para o lema 'primeiro'

Alguma ideia de como consertar o erro?

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

alvations picture alvations  ·  4Comentários

stevenbird picture stevenbird  ·  3Comentários

vezeli picture vezeli  ·  3Comentários

alvations picture alvations  ·  4Comentários

talbaumel picture talbaumel  ·  4Comentários