1

TF-IDF を使用して Google+ データをクエリし、データをJSONファイルとして保存しています。このファイルの操作中にエラーが発生します。

コード

import json
import nltk

DATA = 'C:/Users/Dung Ring/Desktop/kpdl/107033731246200681024.json'
data = json.loads(open(DATA).read())

QUERY_TERMS = ['SOPA']

activities = [activity['object']['content'].lower().split() \
          for activity in data \
            if activity['object']['content'] != " "]

# TextCollection provides tf, idf, and tf_idf abstractions so 
# that we don't have to maintain/compute them ourselves

tc = nltk.TextCollection(activities)

relevant_activities = []

for idx in range(len(activities)):
    score = 0
    for term in [t.lower() for t in QUERY_TERMS]:
        score += tc.tf_idf(term, activities[idx])
    if score > 0:
         relevant_activities.append({'score': score, 'title': data[idx]['title'],
                          'url': data[idx]['url']})

# Sort by score and display results

relevant_activities = sorted(relevant_activities, key=lambda p: p['score'],    reverse=True)
for activity in relevant_activities:
      print activity['title']
      print '\tLink: %s' % (activity['url'], )
      print '\tScore: %s' % (activity['score'], )
      print

エラーメッセージ

Traceback (most recent call last):
  File "ex9.py", line 11, in <module>
    if activity['object']['content']!= ""]
TypeError: string indices must be integers

Python 2.7 を使用しています。

4

1 に答える 1

0

orは文字列でありactivityactivity['object']期待どおりの辞書ではありません。印刷dataして確認してください。

于 2014-12-05T09:28:59.617 に答える