2016-04-17 7 views
-1

以下のようなレビューと極性のあるデータフレームがあります。私はいくつかの操作を行い、私は、このデータフレームのすべてのレビュー・口コミを渡す必要のある機能書かれた名前のfind_featuresを持って、私は1000の以上のレビューと極性Python:エラーが発生しました:Dataframeの列をループする際にアンパックする値が多すぎます(予想2)

Reviews    Polarity 
This movie is good Positive 
This is bad   negative 

を持ってここに2つのサンプルを撮影したが、それに類似しており、フィーチャセットのリストとしてそれらを取得します。私はDFの見直し列をループし、以下の技術を使用しようとしていますし、同様にそれらの列のために私は

featuresets = [(find_features(df.reviews), df.polarity) for (df.reviews, df.polarity) in df] 

Find_features機能featuresetsに割り当てられた極性の値を取得する必要があります:

def find_features(document): 
words = word_tokenize(document) 
features = {} 
for w in word_features: 
    features[w] = (w in words) 
return features 

呼び出すことによりこの関数では、私のレビュー列のすべての単語がfind_featureのtokenize関数の結果として分割され、極性(正または負)が割り当てられます。私は最も頻繁な単語と比較して生成された単語の特定のリストを持っており、word_featureは一番頻繁に使われる単語が一番多い。私は上記のロジックは、リストや辞書のあらゆる種類の作品を知っている

ValueError: too many values to unpack (expected 2) 

が、私はのためのロジックの似たようなものを使用したい:featuresets機能を書きながら

all_words = nltk.FreqDist(all_words) 
word_features = list(all_words.keys()) 

good - positive 
bad  - negative 

、私は以下のエラーを取得していますデータフレーム。これで私を助けてくれますか?

+1

tupleにその結果を配置しようとしているdict返すことになっている: 'featuresets = [(find_features(item.reviews)、アイテムを.polarity)dfの項目のために ' –

+1

私はそれをやってみました。しかし、別のエラーが発生しました: AttributeError: 'str'オブジェクトに 'reviews'属性がありません –

+0

'find_features'とは何ですか?レビューから1つの項目を取り出し、他の 'str'オブジェクトを出力しますか? – quapka

答えて

0

与えられたコードスニペットのシーケンシングは非常に直感的ではないものの、 私は与えられたスニペットでは珍しい2つのことに気づく:

  • for (df.reviews, df.polarity) in dfを:通常の方法ではfor col_name in dfで、利用可能列を反復処理することをdfの名前。
  • find_featuresは、あなたは私が何をしたいことはあると思い表現(find_features(df.reviews), df.polarity)
関連する問題