1. 程式人生 > >使用馬爾科夫鏈生成文本

使用馬爾科夫鏈生成文本

時間 bsp pytho nbsp spa python mage 訓練 auth

馬爾科夫鏈是一種隨機模型,能根據先前的事件單獨預測一個時間。

用馬爾科夫鏈生成文本也是采用了相同的理念,努力找到一個詞出現在另一個詞後面的概率。

技術分享圖片

代碼包含兩部分,一個用來訓練,一個用來生成

#!/usr/bin/env python
# coding:utf8
# author:Z time:2018/10/27

import random
#訓練模型 model
={START: [i, you], i: [like], like: [to], to: [eat], you: [eat], eat: [apples,oranges
],END: [apples,oranges]} #上面的模型詞典中還有兩個術語:“起始”(START)和“結束”(END),它們表示一個生成的句子的起始詞和結束詞
#生成雞湯句 generated
= [] while True: if not generated: words = model[START]#[‘i‘, ‘you‘] elif generated[-1] in model[END]: break else: words
= model[generated[-1]] generated.append(random.choice(words)) print(generated)
#生成器部分包含一個循環。它首先會選取一個隨機的起始詞並將其添加至一個列表,然後會在詞典中所搜包含潛在跟隨詞的列表,並隨機選取一個列表,將新的選取的詞添加至該列表。生成器#會一直選擇隨機的潛在跟隨詞直到找到結束詞,然後會停止循環,輸出生成的句子或所謂的“名言”

使用馬爾科夫鏈生成文本