0

**この投稿で解決された問題**私は Windows 10 PC を使用しており、Web サイト フォーラムをスクレイピングして分析しようとしています。私のソリューションは Scrapy と Textblob を使用しており、Python 2.7 を実行しています。スクレイピングにより、目的の出力が生成されます (.csv または .json として保存します)。ただし、TextBlob を統合する Python スクリプトでこのファイルを使用すると、次のエラーが発生します。

Traceback (most recent call last):
  File "C:\Users\Marcus\Documents\Blog\Python\Scripts\Brooks\textblob_sentiment.py", line 14, in <module>
print blob
  File "C:\Python27\lib\site-packages\textblob\compat.py", line 30, in <lambda>
cls.__str__ = lambda x: x.__unicode__().encode('utf-8')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xf0 in position 425: ordinal not in range(128)

このエラーを生成するスクリプトは次のとおりです。

# from __future__ import division, unicode_literals (This was recommended     for Python 2.x, but didn't help in my case.)

import csv

from textblob import TextBlob


infile = 'items.csv'

with open(infile, 'r') as scrape_file:
    comments = csv.reader(scrape_file)
    for comment in comments:
        sentence = comment[0]
        blob = TextBlob(sentence)
        print blob

コードの構造は、SO で見つけた別のスレッドに似ています。また、SO で見つけた他のスレッドに基づいて、エンコード/デコード メソッドをこのスクリプトに統合しようとしました。しかし、おそらく私はそうしませんでした (私は開発者ではありません)。また、おそらく問題は .csv のエンコード方法にあると考えて、json ファイルを開こうとしました。目的のコンテンツを印刷できます (たとえば、「文章を印刷する」または「コメントを印刷する」、エラーを受け取るのは TextBlob を使用しようとしたときだけです。
このエラーのブロックを解除する解決策はありますか?これらのライブラリを再び使用するには、どうすれば同様の頭痛を避けることができますか?

これについてあなたの助けをありがとう...

4

1 に答える 1

0

これを試して:

unicodedata.normalize('NFKD', sentence).encode('ascii','ignore').lower()

必ずユニコードをインポートしてください

import unicodedata
于 2016-05-09T06:46:04.410 に答える