Polyglotで品詞タグづけしたときのエラー話(一部未解決)
Polyglotで品詞タグ付けをやろうと思った時のこと。
ユニコードエラー
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 3131: invalid start byte
ぜんぜんわからないまま格闘すること一時間
polyglot自体を再インストールすることで直った(emmbeding2とpos2も一緒に入れ直した)
そしたら違うエラー(pos2.laがないよと言われた)
ラテン語なんて処理しているつもりはないのだが、どうもどこかに出てくるらしい。
ValueError: Package 'pos2.la' not found in index
しかし、download embedding2 pos2 をしても、pos2だけ、どーもうまく入らない。
[polyglot_data] Error loading pos2.la: Package 'pos2.la' not found in [polyglot_data] index Error installing package. Retry? [n/y/e]
polyglot再インストールしてもだめ。PC再起動してもダメ。
そもそもラテン語を処理する必要なんてないので、スキップしてもらいたい。
言語判定をいれることにした
ソース
Detector(tokens.words[t])
出力
polyglot.detect.base.UnknownLanguage: Try passing a longer snippet of text
しかし今度は不明な言語に対してエラーが出る。そんな言語ねえよと。
どうやらこの例外は黙らせることができるらしい。
ソース
Detector(tokens.words[t],quiet=True)
例外はだまったが。では言語判定してラテン語が出てきたら弾く処理を書く。
ソース
if detector.language.name != "英語": ...
まさかの"!="の先は日本語だった。
しかし、pos2.laエラーは消えなかった
いくらprintデバッグしたって、意味がわからない。
Polyglotで超長文を処理するのはやめておくべきということだろうか。