2017-07-06 5 views
0

私はバイグラムモデルを構築し、単語の出現確率を計算しようとしています。私はする必要があります •bigramsを格納する適切なデータ構造を選択します。 •単語と前の単語の組み合わせの増分カウント。これは、前の言葉の内容を把握する必要があることを意味します。 •前の単語カウントに基づいて現在の単語の確率を計算します。 CURRワードの単語の出現確率を作成してカウントするバイグラム

度Prob =回数(前の単語、CURRワード)/回数(前の単語)

たちは、次の単語列を観察し考えてみましょう: 指が 指で 指の 指に 指を述べました。 「指が当たった」ことが2回観察されたことに注意してくださいまた、その期間は別個の単語として扱われることに注意してください。このデータ構造の情報があれば、2/5 = 0.4という確率(指で)を計算できます。

filename = 'blah-blah.txt' 
bigrams ={} 
prev_word = "START" 

# opening the filename in read mode 
with open(filename, "r") as fp: 
    for line in fp: 

     words = line.split() 

     for word in words: 
      word = word.lower() 
      bigram = prev_word + ' ' + word 

      if bigram in bigrams: 
       bigrams[bigram] += 1 

      else: 
       bigrams[bigram] = 1 
       prev_word = word 
       #print(bigram) 

for k, v in bigrams.items(): 
    probability = v/1 

    print(k + ':' + str(probability)) 

しかし、私は確率をカウントする前の単語を追跡保つことができるか、現時点で立ち往生:ここ
は、私がこれまでに得たものです。私はちょうど私が次に何をしなければならないかを理解するためにここに1を "確率= v/1"と置くだけです。 ありがとうございました!この式

答えて

0

:CURRワード=カウント(前の単語、CURRワード)/数(前の単語)の

度Prob ..

及び "前の単語" との総発生である場合その単語の出現箇所が格納されているボキャブの辞書を作成したい場合があります。

vocab = {'my_word' : num_occurences} 
のような:)

関連する問題