Возможно, я пропустил это, но есть ли функция для доступа к объекту Synset
из интерфейса NLTK wordnet с помощью ключа смысла ?
Если нет, можем ли мы предоставить функцию, которая может достичь этого в nltk.corpus.wordnet
? Например, https://stackoverflow.com/questions/48170666/how-to-get-the-gloss-given-sense-key-using-nltk-wordnet/
В идеале было бы хорошо иметь функциональные возможности для доступа к объектам Synset
используя:
offset-pos
, например 1433493-a
-> Synset('long.a.02')
sense_key
, например long%3:00:02::
-> Synset('long.a.02')
В настоящее время у нас есть synset_from_pos_and_offset()
для (1).
Есть еще одна функция ( _synset_from_pos_and_line
), которая читает следующую строку, чтобы вернуть 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"
но это не ключ смысла.
Я бы хотел над этим поработать!
@craaaa Извините за поздний ответ, какое-то время отсутствовал.
Не стесняйтесь работать над этим, а потом создавать пиар.
P / S: Не беспокойтесь о том, чтобы что-нибудь сломать, перед объединением кода будут проводиться проверки и обзоры.
Реализована функция, предложенная в stackoverflow, но, похоже, она не соответствует правильным смыслам - например, synset_from_sense_key('afraid%3:00:00::')
вернул afraid.a.04
вместо afraid.a.01
. Эта проблема распространяется и на другие точки продаж. (Смысловые ключи были получены из онлайн-интерфейса Wordnet )
Вместо этого использование метода, показанного в документации SemCor, отображается правильно - в настоящее время существует функция lemma_from_key(key)
которая, похоже, принимает что-то похожее на ключ смысла. Однако lemma_from key(key)
не поддерживает прилагательные сателлиты (например, afraid%3:00:02:concerned:00
). Я определенно могу реализовать оболочку вокруг lemma_from_key(key)
чтобы исправить это и вернуть Synset
.
@craaaa. Я думаю, что проблема с прилагательными спутниками все еще существует. Я попытался использовать функцию synset_from_sense_key, и вот ошибка:
Файл "/home/izorar/anaconda3/lib/python3.7/site-packages/nltk/corpus/reader/wordnet.py", строка 1356, в синсете поднять WordNetError (message% lemma) WordNetError: прилагательное спутник запрошен, но только простой прилагательное найдено в лемме 'первый'
Есть идеи, как исправить ошибку?
Самый полезный комментарий
Реализована функция, предложенная в stackoverflow, но, похоже, она не соответствует правильным смыслам - например,
synset_from_sense_key('afraid%3:00:00::')
вернулafraid.a.04
вместоafraid.a.01
. Эта проблема распространяется и на другие точки продаж. (Смысловые ключи были получены из онлайн-интерфейса Wordnet )Вместо этого использование метода, показанного в документации SemCor, отображается правильно - в настоящее время существует функция
lemma_from_key(key)
которая, похоже, принимает что-то похожее на ключ смысла. Однакоlemma_from key(key)
не поддерживает прилагательные сателлиты (например,afraid%3:00:02:concerned:00
). Я определенно могу реализовать оболочку вокругlemma_from_key(key)
чтобы исправить это и вернутьSynset
.