我目前正在尝试训练我的Python NLTK词性标记器来正确地标记德语文本。为了做到这一点,我使用了ClassifiedBasedGermanTagger,它来自:
https://github.com/ptnplanet/NLTK-Contributions/tree/master/ClassifierBasedGermanTagger
和来自该网站的培训语料库:
http://www.ims.uni-stuttgart.de/forschung/ressourcen/korpora/TIGERCorpus/download/start.html (TIGER语料库版本2.2 (2012年7月))
我发现有一个写得很好的教程,教你如何做到这一点。所以现在我要做的就是重新创建代码:
对我不起作用的部分是:
tagged_sents = corp.tagged_sents()
random.shuffle(tagged_sents)我得到的错误如下所示:
File "C:\somedude\lib\random.py", line 274, in shuffle
x[i], x[j] = x[j], x[i]
TypeError: 'LazyMap' object does not support item assignment你有没有解决这个问题的办法,或者甚至可以解释为什么它对编写该教程的先生有效,为什么它对我显示了一个错误?目前我使用的是Python 3。
提前感谢你们所有人。
发布于 2018-02-02 19:04:12
有点晚了,但也许这对其他人有帮助。
本教程的作者忘记了NLTK一书中提到的“列表”:http://www.nltk.org/book/ch06.html#evaluation
因此,不是
tagged_sents = corp.tagged_sents()
它必须是:
list= tagged_sents (corp.tagged_sents())
发布于 2017-12-03 15:51:17
tagged_sents = list(range(<some number>,<some number>)) # make sure some_nums is a list/mutable sequence
random.shuffle(tagged_sents)你可以在这里找到解决方案
https://stackoverflow.com/questions/47616332
复制相似问题