2016-12-07 11 views
0

Imは問題のこの部分に固執します。私は約8kのレビューのテキストファイルを読み込む必要がありますが、簡単な処理のためにフォーマットされています。例文の前の数字は文字列内の各単語を割り当てると、その文字列に割り当てられたスコア

3この映画は楽しくてよく書かれていました。

その文中の各単語のスコアは3で、単語、スコア、および出現回数を含むハッシュテーブルに入れる必要があります。

def main(): 
    fin = open("movieReviews.txt") 
    # read lines from file one at a time 
    count = 0 
    for line in fin: 
     # tokenize each review 
     reviewToken = line.split() 

     if reviewToken[0].isdigit(): 
      count = count + 1  

    print(count) 

私はちょうど文中の各単語に異なる長さの文を付けてその先頭に値を割り当てる方法に固執しています。

+1

「その文の各単語のスコアは3でなければならない」とはどういう意味ですか? – RafaelC

+0

の例では、文の最初にある値3が、その特定の文の各単語にスコアとして割り当てられます。追加する必要があります、私はハッシュテーブルにこれを実装しなければなりません。この部分を見つけた後 – ThePyroMark

+0

あなたのファイルに「3この映画は良いですか?」と別の「7つの愚かな映画」があります。 「映画」にはどのようなスコアがありますか? –

答えて

1

私はあなたがcollectionsモジュールからdefaultdict Sにscorescountsを作ることによって、このもう少しコンパクトに作ることができます

with open(filename) as f: 
    counts = {} 
    scores = {} 
    for line in f: 
     i, *line = line.split() 
     for word in line: 
      if word not in counts: 
       counts[word] = 0 
      if word not in scores: 
       scores[word] = 0 
      count[word] += 1 
      scores[word] += int(i) 

2つの辞書、スコアのために1つずつ保管数に分割したいです。

関連する問題