Многие методы / инструменты пакета nltk не работают
1) Я попробовал код из официальной книги по пакету nltk под названием /Natural Language Processing', но он выдает ошибку
dt = nltk.DiscourseTester(['A student dances', 'Every student is a person'])
print(dt.readings())
Я получаю ошибку
NLTK не удалось найти файл mace4! Используйте программные параметры конфигурации или установите переменную среды PROVER9.
2) Я пытался использовать другой код из книги:
from nltk import load_parser
parser = load_parser('drt.fcfg', logic_parser=nltk.DrtParser())
trees = parser.parse('Angus owns a dog'.split())
print(trees[0].node['sem'].simplify())
Я получил ошибку
AttributeError: модуль 'nltk' не имеет атрибута 'DrtParser'
3) Я попробовал следующий код:
from nltk.sem import cooper_storage as cs
sentence = 'every girl chases a dog'
trees = cs.parse_with_bindops(sentence, grammar='storage.fcfg')
semrep = trees[0].label()
cs_semrep = cs.CooperStore(semrep)
print(cs_semrep.core)
for bo in cs_semrep.store:
print(bo)
cs_semrep.s_retrieve(trace=True)
for reading in cs_semrep.readings:
print(reading)
Это сработало, но все равно выдало следующую ошибку:
AttributeError: у объекта 'CooperStore' нет атрибута 'core'
4) Я попробовал другой код из книги:
from nltk import load_parser
parser = load_parser('simple-sem.fcfg', trace=0)
sentence = 'Angus gives a bone to every dog'
tokens = sentence.split()
trees = parser.parse(tokens)
for tree in trees:
print(tree.node['SEM'])
Я получил следующую ошибку:
NotImplementedError: Используйте label() для доступа к метке узла.
Пожалуйста, дайте мне знать, что делать? Являются ли эти функции устаревшими, потому что я слышал, что многие из функций nltk есть. Пожалуйста, предложите выход для всех упомянутых функций.
0 ответов
Я нашел ответ, на самом деле я следовал коду из книги, а не онлайн-версии книги НЛТК, которая обновляется. Поэтому следующая обновленная версия решила проблемы.