0

更新: 問題は解決しました。(以下のコメント セクションを参照してください。) 最終的に、.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 として保存されます。これでブロックを解除する方法と、コードの欠陥についてフィードバックを提供できますか?
助けてくれてありがとう。

4

1 に答える 1

0

したがって、次のように変更できます。

row = str([cell.encode('utf-8') for cell in row])
于 2016-05-11T02:23:04.480 に答える