2017-01-31 12 views
0

私のコードは、コードのオフに基づいていますで:https://rstudio-pubs-static.s3.amazonaws.com/79360_850b2a69980c4488b1db95987a24867a.htmlPythonの潜在的ディリクレ配分Stopped_tokensエラー

私は1000年の周りに大きなファイル番号を取得するために起動したとき、私は、私はその後、しかし、ファイル数が少ないと私のプログラムを実行することができます[私はen_stopに私は、トークンに私用でない場合]

不平等 stopped_tokensの=であるとして、それらを解釈する - Unicodeの同等比較はUnicodeに両方の引数の変換に失敗しました:

ReadWrite.py:59:UnicodeWarningこのエラーが出ます

誰かがこの前に出会ったのか、それともこのエラーをどのように修正するかについての考えはあります。

答えて

0

リストの理解の中でさまざまなタイプの変数を比較しようとしているようです。 en_stopには、Unicode変数が含まれています。あなたがファイルから読み込んでいるトークンは、utf-8、cp1251などのようなエンコーディングを持っています。トークンがどのようなエンコーディングを持っているかを判断してください。あなたは、このようにそれを行うことができます。

encoding = 'utf-8' # assign name like 'utf-8', 'cp1251', etc. 
string = tokens[0] 
try: 
    string.decode(encoding) 
    print 'string is {}'.format(encoding) 
except UnicodeError: 
    print 'string is not {}'.format(encoding) 

あなたは正しいエンコーディングを見つけ、あなたはstopped_tokensこの方法を取得することができます:

stopped_tokens = [i for i in tokens if not unicode(i, encoding) in en_stop] 

unicode(i, encoding)はあなたのリスト内包のUnicode表現に自分のトークンを変換する必要があります。

+0

私はあなたのアドバイスを取ったし、自分が持っているファイルがutf-8であることを確認します。しかし、コード変更を実行すると、私のエラーがUnicodeDecodeErrorに変更されることが示唆されました。 'ascii'コーデックは、位置2のバイト0xe2をデコードできません:序数は範囲(128)にありません。これはファイルをutf-8にしたからですか? –

関連する問題