更新: 問題は解決しました。(以下のコメント セクションを参照してください。) 最終的に、.csv を Unicode に変換して TextBlob を利用するには、row = [cell.decode('utf-8') for cell in row], and text = ' ' の 2 行が必要でした。 .join(行)。
元の質問: Textblob という Python ライブラリを使用して、.csv ファイルのテキストを分析しようとしています。コードで Textblob を呼び出したときに受け取るエラーは次のとおりです。
トレースバック (最後の最後の呼び出し): File "C:\Users\Marcus\Documents\Blog\Python\Scripts\Brooks\textblob_sentiment.py", line 30, in blob = TextBlob(row) File "C:\Python27\lib \site-packages\textblob\blob.py", line 344, in init '{0} ではなく文字列である必要があります'.format(type(text)))TypeError:
text
渡される引数は__init__(text)
文字列である必要があります。
私のコードは次のとおりです。
#from __future__ import division, unicode_literals #(This was recommended for Python 2.x, but didn't help in my case.)
#-*- coding: utf-8 -*-
import csv
from textblob import TextBlob
with open(u'items.csv', 'rb') as scrape_file:
reader = csv.reader(scrape_file, delimiter=',', quotechar='"')
for row in reader:
row = [unicode(cell, 'utf-8') for cell in row]
print row
blob = TextBlob(row)
print type(blob)
私はUTF / unicodeの問題に取り組んできました。私はもともと別のテーマを持っていましたが、それをこのスレッドに投稿しました。(コードとエラーが変更されたため、新しいスレッドに投稿しています。) print ステートメントは、変数「行」が type=str であることを示しています。これは、リーダー オブジェクトが Textblob の要求どおりに変換されたことを示していると思いました。 . ソース .csv ファイルは UTF-8 として保存されます。これでブロックを解除する方法と、コードの欠陥についてフィードバックを提供できますか?
助けてくれてありがとう。