Pythonのバージョン:は2.7NLTKはUnicodeDecodeError - ntpath.pyファイルに接続
Windows版:システムのWindows 7の64ビット
言語:ロシア
Iまだインターネットでは解決されていない問題があります。ここで
は私のコードです:
import textblob
text = "I love people"
text = TextBlob(text)
print text.sentiment
私はnltk
方法で接続し、次のエラーを取得:
Traceback (most recent call last):
File "C:\Users\Александр\Desktop\TextBlob.py", line 1, in <module>
import textblob
File "C:\Python27\lib\site-packages\textblob\__init__.py", line 9, in <module>
from .blob import TextBlob, Word, Sentence, Blobber, WordList
File "C:\Python27\lib\site-packages\textblob\blob.py", line 28, in <module>
import nltk
File "C:\Python27\lib\site-packages\nltk\__init__.py", line 128, in <module>
from nltk.chunk import *
File "C:\Python27\lib\site-packages\nltk\chunk\__init__.py", line 155, in <module>
from nltk.data import load
File "C:\Python27\lib\site-packages\nltk\data.py", line 77, in <module>
if 'APPENGINE_RUNTIME' not in os.environ and os.path.expanduser('~/') != '~/':
File "C:\Python27\lib\ntpath.py", line 311, in expanduser
return userhome + path[i:]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc0 in position 9: ordinal not in range(128)
私の知る限りは、GoogleとのStackOverflowから回答から理解されるように、問題が関連していますntpath.py
の言語問題に
私は、次の問題を試してみました、そして、彼らは動作しませんでした:
をそれがエラーを解消
sys.setdefaultencoding('Cp1252')
を使用してsys.setdefaultencoding('utf8')
How to fix: "UnicodeDecodeError: 'ascii' codec can't decode byte"を使用します。しかし、私のプログラムの出力も消えてしまった。
import io
を使用。 Python (nltk) - UnicodeDecodeError: 'ascii' codec can't decode bytentpath.py
でunicode().decode()
を使用しています(私はこの解決策を見つけたリンクを覚えていません)。
UPD:私は解決策を発見しました。
私はntpath.py
にこの部分を挿入しようとした:それは完璧に動作 import os
import sys
import stat
import genericpath
import warnings
#another way
reload(sys)
sys.setdefaultencoding('Cp1252')
:
reload(sys)
sys.setdefaultencoding('Cp1252')
だから、ここでは、このファイル内のコードの一部です。あなたのシステム設定に別の言語がある場合は、それらを「再生」し、Cp1252
を置き換えます。
これはNLTKとは関係ありません。問題は、パスに適切に処理されない非ASCII文字が含まれていることです。 Pythonを初めてお使いの方は、なぜPython 3を使用していませんか?あなたはこの種の問題をはるかに少なくします。 – lenz
@lenz、私は3.5バージョンで動作しようとしましたが、exeファイルでコンパイルすると多くの問題がありました。 2.7はとてもうまく動作します。この問題を避けるために私のシステムのパラメータをどうにか変更することはできますか? – Alex
はい:あなたのユーザ名は "Александр"なので、 'userhome'はおそらく' r "C:\ Users \Александр" 'でしょう。 Alexander(またはAleksandr、またはDonald)という名前の新しいユーザーを作成して、フォルダーパスにはASCII文字のみが含まれるようにします。 – alexis