Python NLTK标记AssertionError

时间:2011-02-22 20:02:15

标签: python nltk

当使用NLTK使用PlainTextCorpusReader处理大约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在文件缓冲区中失去了它的位置,但我不是100%。知道可能导致这种情况发生的原因吗?几乎看起来它必须与我正在处理的数据有关。也许一些时髦的角色?

2 个答案:

答案 0 :(得分:0)

当一个写入函数使我的语料库变空时,我也遇到了这个问题。确保我们正在读取的文件不为空可以避免此错误。

答案 1 :(得分:-1)

从解析中删除了一些空文件,解决了问题。