Ошибка Assertion с помощью функции .sents в NLTK - PullRequest
0 голосов
/ 07 марта 2020

У меня есть набор текстов, которые я анализирую с помощью пакета NLTK (и некоторых обученных тэгеров).

По какой-то таинственной причине я получаю

File "C:\Users\gavrk\AppData\Local\Programs\Python\Python37-32\Lib\site-packages\nltk\data.py", line 1424, in tell
  assert check1.startswith(check2) or check2.startswith(check1)

builtins.AssertionError

Каждый раз, когда я начинаю итерацию через предложения некоторых (!) моих текстов.

Более того, если удалить первую строку такого текста, все работает отлично (например, эта строка):

enter image description here

Кажется, что эти строки не содержат ничего особенного.

Есть ли какое-либо разумное объяснение этому явлению и какому-либо решению, кроме простого удаления строк из текстового материала?

Вот мой код (если это важно):

[[t[0] for t in tagger.tag(s)] for s in corpus.sents() if any([vds in s for vds in vds_nennen])]

vds_nennen - это список, содержащий все формы немецкого глагола "nennen" в виде строк, а tagger.tag() - тег POS, созданный с помощью ClassifierBasedGermanTagger (описан здесь )

Таким образом, код в основном возвращает все предложения из нескольких текстов, которые содержат глагол «nennen» в любой из его грамматических форм, в виде списков токенов, упакованных в список списков, и он работает , Но мне любопытно, почему мне нужно удалить первые строки, чтобы избежать ошибок утверждений.

Любое предложение будет оценено!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...