Wenn ich Brill Tagger verwende, erhalte ich diesen Fehler.'_sre.SRE_Pattern' Objekt ist in Python 3.4 nicht iterierbar
TypeError: '_sre.SRE_Pattern' object is not iterable
WARNING:root:2016-04-05 00:05:37.503718 is when this event was logged.
ERROR:root:'_sre.SRE_Pattern' object is not iterable
Traceback (most recent call last):
File "D:\Dropbox\VCL\MyWrapper.py", line 137, in run_alg
CLC_POS.tag_file(input_utf8, path_out + '.pos', file_encoding, CLC_POS.load_tagger('pos_tbl_86943.model'), '')
File "D:\Dropbox\VCL\CLC_POS.py", line 277, in tag_file
token_tag = tagger.tag(word_list)
File "C:\Python34\lib\site-packages\nltk\tag\brill.py", line 264, in tag
tagged_tokens = self._initial_tagger.tag(tokens)
File "C:\Python34\lib\site-packages\nltk\tag\sequential.py", line 61, in tag
tags.append(self.tag_one(tokens, i, tags))
File "C:\Python34\lib\site-packages\nltk\tag\sequential.py", line 81, in tag_one
tag = tagger.choose_tag(tokens, index, history)
File "C:\Python34\lib\site-packages\nltk\tag\sequential.py", line 546, in choose_tag
for regexp, tag in self._regexs:
TypeError: '_sre.SRE_Pattern' object is not iterable
In sequential.py, bekomme ich Fehler, wenn es um für Schleife kommt.
def choose_tag(self, tokens, index, history):
for regexp, tag in self._regexs:
if re.match(regexp, tokens[index]):
return tag
return None
Ich habe den gleichen Code vor einem Monat ausgeführt und es gab keinen Fehler. sequential.py gehört zu Nltk-Dateien, bedeutet das, dass ich damit umgehen sollte?
Was habe ich falsch gemacht? Bitte geben Sie eine Korrektur an, wenn möglich.
'self._regexs' ist keine Liste. Es ist ** ein ** kompiliertes reguläres Ausdrucksobjekt. –
Ich kann keine Lösung bereitstellen, da ohne Ihren Code, der den 'tagger' erzeugt und anderweitig damit interagiert, wir Ihnen nicht sagen können, was diese Liste mit einem einzelnen regulären Ausdruck ersetzt haben könnte. –