統計語言模型示例

2021-10-09 04:50:00 字數 1890 閱讀 1128

from collections import counter

from jieba import lcut

from random import choice

corpus = '''

這一生原本乙個人,你堅持廝守成我們,卻小小聲牽著手在預設。

感動的眼神說願意,走進我的人生。

進了門開了燈一家人,盼來生依然是一家人。

確認過眼神,我遇上對的人。

我揮劍轉身,而鮮血如紅唇。

前朝記憶渡紅塵,傷人的不是刀刃,是你轉世而來的魂。

青石板上的月光照進這山城,我一路的跟你輪迴聲,我對你用情極深。

誰在用琵琶彈奏一曲東風破,楓葉將故事染色,結局我看透。

籬笆外的古道我牽著你走過,荒煙漫草的年頭,就連分手都很沉默。

'''def get_model(corpus):

''':param corpus:

:return: ), '人生': counter()}

# 我 後面 的 出現2次 看透 出現1次

'''# 將語料按照\n切分為句子

corpus = corpus.strip().split('\n')

# 將句子切分為詞序列

corpus = [lcut(line) for line in corpus]

# 提取所有單詞

words = [word for words in corpus for word in words]

# 構造乙個儲存每個詞統計的字典

bigram =

# 根據語料庫進行統計資訊填充

for sentence in corpus:

for i in range(len(sentence) - 1):

bigram[sentence[i]][sentence[i + 1]] += 1

return bigram

def generate_text(bigram,first_word, free=4):

'''按照語言模型生成文字

:param first_word: 提示詞

:param free: 控制範圍 如果強制按照每個詞後面最有可能出現的詞進行生成,設定為1,需要一些靈活性,可以放寬一些

:return:

'''# 如果第乙個詞不在詞典中 隨機選乙個

if first_word not in bigram.keys():

first_word = choice(bigram.keys())

text = first_word

# 將候選詞按照出現概率進行降序排列

next_words = sorted(bigram[first_word], key=lambda w: bigram[first_word][w],reverse=true)

while true:

if not next_words:

break

# 候選詞前free個中隨機選乙個

next_word = choice(next_words[:free])

text += next_word

if text.endswith('。') :

print('生成文字:', text)

break

next_words = sorted(bigram[next_word], key=lambda w: bigram[next_word][w],reverse=true)

bigram = get_model(corpus)

first_words = ['你','我們','確認']

for word in first_words:

generate_text(bigram,word,free=4)

統計語言模型

語言模型就是用來計算乙個句子的概率的模型,即p w1,w2,wk 利用語言模型,可以確定哪個詞序列的可能性更大,或者給定若干個詞,可以 下乙個最可能出現的詞語。舉個音字轉換的例子來說,輸入拼音串為nixianzaiganshenme,對應的輸出可以有多種形式,如你現在幹什麼 你西安再趕什麼 等等,那...

統計語言模型(SLM)

摘自 第12講 slm廣泛使用於語音識別和統計機器翻譯領域,利用概率統計理論研究語言。規則方法 詞 句 篇章的生成比如滿足某些規則,不滿足該規則就不應存在。統計方法 任何語言片斷都有存在的可能,只是可能性大小不同 對於乙個文件片段d w1w2 wn,統計語言模型是指概率p w1w2 wn 求解,根據...

統計語言模型(下)

p wi wi 1 就是這兩個數的比值,再考慮到上面的兩個概率有相同的分母 語料庫大小 可以約掉,所以p wi wi 1 wi 1,wi wi 1 現在你是否感受到數學的美妙?它把一些複雜的問題變得如此簡單。似乎難以相信,這麼簡單的數學模型能解決複雜的語音識別 機器翻譯等問題,而很複雜的文法規則和人...