Есть ли способ захвата ограничений выбора WordNet (например, + анимация, + человек и т. Д.) Из synsets через NLTK? Или есть ли другой способ предоставления семантической информации о synset? Ближайшим, к которому я мог добраться, были гипернимные отношения.Ограничения выбора Wordnet в NLTK
ответ
Это зависит от того, что ваше «селекционного ограничения» или я бы назвал его семантическими особенности, потому что в классической семантике, существует мир concepts
и сравнить между понятиями, мы должны найти
- дискриминацию особенности (то есть признаки понятий, которые используются, чтобы отличить их друг от друга) и
- особенности подобия (то есть особенности понятий подобных и выдвигает на первый план необходимость дифференцировать их)
Например:
Man is [+HUMAN], [+MALE], [+ADULT]
Woman is [+HUMAN], [-MALE], [+ADULT]
[+HUMAN] and [+ADULT] = similarity features
[+-MALE] is the discrimating features
Общей проблемой традиционной семантики и применение этой теории в вычислительной семантики является вопрос о
«Есть конкретный перечень функций, которые мы можем использовать для сравнения любая
«Если да, то каковы функции этого списка?» concept? "
(см www.acl.ldc.upenn.edu/E/E91/E91-1034.pdf для более подробной информации)
Возвращаясь к WordNet, я могу предложить 2 способа решить " ограничения выбора "
Во-первых, Проверьте гипернимки на отличительные черты, но сначала вы должны решить, какие отличительные черты. Чтобы отличить животное от людей, давайте рассмотрим отличительные черты как [+ -human] и [+ -animal].
from nltk.corpus import wordnet as wn
# Concepts to compare
dog_sense = wn.synsets('dog')[0] # It's http://goo.gl/b9sg9X
jb_sense = wn.synsets('James_Baldwin')[0] # It's http://goo.gl/CQQIG9
# To access the hypernym_paths()[0]
# It's weird for that hypernym_paths gives a list of list rather than a list, nevertheless it works.
dog_hypernyms = dog_sense.hypernym_paths()[0]
jb_hypernyms = jb_sense.hypernym_paths()[0]
# Discriminating features in terms of concepts in WordNet
human = wn.synset('person.n.01') # i.e. [+human]
animal = wn.synset('animal.n.01') # i.e. [+animal]
try:
assert human in jb_hypernyms and animal not in jb_hypernyms
print "James Baldwin is human"
except:
print "James Baldwin is not human"
try:
assert human in dog_hypernyms and animal not in dog_hypernyms
print "Dog is an animal"
except:
print "Dog is not an animal"
Во-вторых, Проверка мер подобия как @Jacob предложил.
dog_sense = wn.synsets('dog')[0] # It's http://goo.gl/b9sg9X
jb_sense = wn.synsets('James_Baldwin')[0] # It's http://goo.gl/CQQIG9
# Features to check against whether the 'dubious' concept is a human or an animal
human = wn.synset('person.n.01') # i.e. [+human]
animal = wn.synset('animal.n.01') # i.e. [+animal]
if dog_sense.wup_similarity(animal) > dog_sense.wup_similarity(human):
print "Dog is more of an animal than human"
elif dog_sense.wup_similarity(animal) < dog_sense.wup_similarity(human):
print "Dog is more of a human than animal"
Вы можете попробовать использовать некоторые функции подобия с помощью handpicked synsets и использовать это для фильтрации. Но это по существу то же самое, что и после гипернимного дерева - afaik, все функции сходства wordnet используют гипернимное расстояние в своих вычислениях. Кроме того, существует множество необязательных атрибутов синхронизации, которые могут стоить изучить, но их присутствие может быть очень непоследовательным.
- 1. NLTK Wordnet Download Устаревший
- 2. NLTK Иерархия глаголов WordNet
- 3. Python - WordNet NLTK KeyError
- 4. Добавить язык в NLTK WordNet
- 5. NLTK Wordnet, ошибка отсортирована (wn.langs())
- 6. Отсутствует испанский wordnet от NLTK
- 7. NLTK - WordNet: список длинных слов
- 8. 0-я синхронизация в интерфейсе wordnet NLTK
- 9. Ошибка использования арабского Wordnet в nltk
- 10. Как использовать испанский Wordnet в NLTK?
- 11. NLTK WordNet Lemmatizer - Как удалить неизвестные слова?
- 12. Почему NLTK WordNet не находит простых слов?
- 13. Классификация NLTK и WordNet с текстовым блоком
- 14. Как получить синонимы из nltk WordNet Python
- 15. получение hypernyms из WordNet через NLTK питона
- 16. NLTK Wordnet Synset для фразы слов
- 17. Извлечение только существительных из NLTK WordNet
- 18. преобразующая WordNet TXT в списки в питона NLTK
- 19. Что такое pos `r` или` s` в Wordnet через NLTK
- 20. Извлечение Word из Synset с использованием Wordnet в NLTK 3.0
- 21. Почему функция NLTK wn.all_synsets() в wordnet возвращает список synsets?
- 22. WordNet лемматизатор в NLTK не работает для наречий
- 23. Как получить Sense Key в WordNet для NLTK Python?
- 24. wordnet на другом тексте?
- 25. NLTK WordNet Lemmatizer: Не следует ли лемммировать все перегибы слова?
- 26. Как получить доступ к фреймам с помощью NLTK + wordnet?
- 27. Как получить доступ к объекту Sync nltk/wordnet?
- 28. Как распечатать все содержимое Wordnet (желательно с помощью NLTK)?
- 29. lemmatize множественного числа существительных с использованием NLTK и WordNet
- 30. Найти Python NLTK Wordnet Synsets для каждого элемента списка
Благодарим за подробный ответ. Некоторое время назад я понял, что не могу найти сходство/дискриминационные функции в WordNet из-за причин, о которых вы упомянули. – erickrf