私はバイグラムモデルを構築し、単語の出現確率を計算しようとしています。私はする必要があります •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"と置くだけです。 ありがとうございました!この式