Как заставить nltk.data.load () возвращать объект POSTagger, а не Tuple? - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь настроить значение по умолчанию averaged_perceptron_tagger от NLTK, чтобы лучше адаптировать к техническому корпусу, с которым я работаю. Я делаю это, добавляя тегер Unigram, чтобы справиться с несколькими крайними случаями, как предложено в пользовательских тегов с nltk . Проблема в том, что nltk.data.load () в averaged_perceptron_tagger.pickle выводит файл Tuple, а не ожидаемый файл POSTagger.

До сих пор я пытался удалить и повторно загрузить averaged_perceptron_tagger.pickle. Однако та же проблема сохраняется. Возможно, также полезно отметить, что в моем случае nltk.data.load () для english.pickle из maxent_treebank_pos_tagger выводит правильный файл POSTagger.

Фрагмент кода ошибки приведен ниже:

import nltk
tagger_path = 'C:/path/to/nltk_data/taggers/averaged_perceptron_tagger/averaged_perceptron_tagger.pickle'
tagger_path_2 = 'C:/path/to/nltk_data/taggers/maxent_treebank_pos_tagger/english.pickle'
default_tagger = nltk.data.load('file://'+tagger_path)
default_tagger_2 = nltk.data.load('file://'+tagger_path_2)
type(default_tagger)
type(default_tagger_2)
model = {'bogie': 'NN', 'Bogie': 'NN'}
uni_tagger = nltk.tag.UnigramTagger(model=model, backoff=default_tagger_2)

В настоящее время type(default_tagger) равен Tuple , который нельзя использовать в качестве тега отката;тогда как type(default_tagger_2) является ожидаемым nltk.tag.sequential.ClassifierBasedPOSTagger . Любая помощь очень ценится!

...