真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何使用Python生成基于馬爾可夫鏈的偽隨機(jī)文本

這篇文章給大家介紹如何使用Python生成基于馬爾可夫鏈的偽隨機(jī)文本,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

目前創(chuàng)新互聯(lián)已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、大祥網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

首先看一下來自Wolfram的定義

馬爾可夫鏈?zhǔn)请S機(jī)變量{X_t}的集合(t貫穿0,1,...),給定當(dāng)前的狀態(tài),未來與過去條件獨(dú)立。

Wolfram的定義更清楚一點(diǎn)兒

...馬爾可夫鏈?zhǔn)蔷哂旭R爾可夫性質(zhì)的隨機(jī)過程...[這意味著]狀態(tài)改變是概率性的,未來的狀態(tài)僅僅依賴當(dāng)前的狀態(tài)。

馬爾可夫鏈具有多種用途,現(xiàn)在讓我看一下如何用它生產(chǎn)看起來像模像樣的胡言亂語。

算法如下,

找一個(gè)作為語料庫(kù)的文本,語料庫(kù)用于選擇接下來的轉(zhuǎn)換。

從文本中兩個(gè)連續(xù)的單詞開始,最后的兩個(gè)單詞構(gòu)成當(dāng)前狀態(tài)。

生成下一個(gè)單詞的過程就是馬爾可夫轉(zhuǎn)換。為了生成下一個(gè)單詞,首先查看語料庫(kù),查找這兩個(gè)單詞之后跟著的單詞。從它們中隨機(jī)選擇一個(gè)。

重復(fù)2,直到生成的文本達(dá)到需要的大小。

代碼如下:

如何使用Python生成基于馬爾可夫鏈的偽隨機(jī)文本

如何使用Python生成基于馬爾可夫鏈的偽隨機(jī)文本

為了看到一個(gè)示例結(jié)果,我們從古騰堡計(jì)劃中拿了沃德豪斯的《My man jeeves》作為文本,示例結(jié)果如下。

如何使用Python生成基于馬爾可夫鏈的偽隨機(jī)文本

馬爾可夫算法怎樣呢?

最后兩個(gè)單詞是當(dāng)前狀態(tài)。

接下來的單詞僅僅依賴最后兩個(gè)單詞,也就是當(dāng)前狀態(tài)。

接下來的單詞是從語料庫(kù)的統(tǒng)計(jì)模型中隨機(jī)選擇的。

這是一個(gè)示例文本。

如何使用Python生成基于馬爾可夫鏈的偽隨機(jī)文本

這個(gè)文本對(duì)應(yīng)的語料庫(kù)像這樣,

如何使用Python生成基于馬爾可夫鏈的偽隨機(jī)文本

現(xiàn)在如果我們從"brown fox"開始,接下來的單詞可以是"jumps"或者"who"。如果我們選擇"jumps",然后當(dāng)前的狀態(tài)就變成了"fox jumps",再接下的單詞就是"over",之后依此類推。

提示

我們選擇的文本越大,每次轉(zhuǎn)換的選擇更多,生成的文本更好看。

狀態(tài)可以設(shè)置為依賴一個(gè)單詞、兩個(gè)單詞或者任意數(shù)量的單詞。隨著每個(gè)狀態(tài)的單詞數(shù)的增加,生成的文本更不隨機(jī)。

不要去掉標(biāo)點(diǎn)符號(hào)等。它們會(huì)使語料庫(kù)更具代表性,隨機(jī)文本更好看。

關(guān)于如何使用Python生成基于馬爾可夫鏈的偽隨機(jī)文本就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


網(wǎng)站標(biāo)題:如何使用Python生成基于馬爾可夫鏈的偽隨機(jī)文本
轉(zhuǎn)載源于:http://weahome.cn/article/jsejoe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部