我正在尝试训练我的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 Corpus 2.2版(2012年7月))
我发现有一个很好的书面教程如何解决这个问题。所以我现在要做的就是重新创建代码:
对我不起作用的部分是:
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
我得到的错误如下:
ng-switch
你有没有解决这个问题的方法,甚至可以解释为什么它对于编写该教程的绅士有用,以及为什么它会给我显示错误?目前我正在使用Python 3。
非常感谢你们。
答案 0 :(得分:3)
有点晚了,但也许它可以帮助别人。
教程的作者忘记了NLTK书中所述的“列表”: http://www.nltk.org/book/ch06.html#evaluation
所以而不是
tagged_sents = corp.tagged_sents()
必须是:
tagged_sents = list(corp.tagged_sents())
答案 1 :(得分:0)
tagged_sents = list(range(<some number>,<some number>)) # make sure some_nums is a list/mutable sequence
random.shuffle(tagged_sents)
你可以在这里找到解决方案