Python NLTK 标注 AssertionError

1 投票
2 回答
601 浏览
提问于 2025-04-16 12:19

我在用NLTK处理大约5000条帖子时遇到了一个奇怪的错误,具体是一个断言错误。对于我们的一些数据集,基本上没有什么大问题。但是,偶尔会碰到这样的情况:

File "/home/cp-staging/environs/cpstaging/lib/python2.5/site-packages/nltk/tag/api.py", line 51, in batch_tag
return [self.tag(sent) for sent in sentences]
File "nltk/corpus/reader/util.py", line 401, in iterate_from
File "nltk/corpus/reader/util.py", line 343, in iterate_from
AssertionError

我的代码大致是这样工作的:

from nltk.corpus import brown
brown_tagged_sents = brown.tagged_sents()
tag0 = ArcBaseTagger('NN')
tag1 = nltk.UnigramTagger(brown_tagged_sents, backoff=tag0)
posts = PlaintextCorpusReader(posts_path, '.*')
tagger = nltk.BigramTagger(brown_tagged_sents, backoff=tag1)
tagged_sents = tagger.batch_tag(posts.sents())

看起来NLTK在文件缓冲区中失去了位置,但我不太确定。你觉得这可能是什么原因造成的呢?这似乎和我处理的数据有关系。也许是一些奇怪的字符?

2 个回答

-1

把一些空文件从解析中去掉了,问题就解决了。

0

我也遇到过这个问题,就是有一个写入函数把我的数据搞空了。确保我们读取的文件不是空的,这样可以避免这个错误。

撰写回答