python實(shí)現(xiàn)馬耳可夫鏈算法實(shí)例分析
本文實(shí)例講述了python實(shí)現(xiàn)馬耳可夫鏈算法的方法。分享給大家供大家參考。具體分析如下:
在《程序設(shè)計(jì)實(shí)踐》(英文名《The Practice of Programming》)的書(shū)中,第三章分別用C語(yǔ)言,C++,AWK和Perl分別實(shí)現(xiàn)了馬耳可夫鏈算法,來(lái)通過(guò)輸入的文本,“隨機(jī)”的生成一些有用的文本。
說(shuō)明:
1. 程序使用了字典,字典和散列可不是一個(gè)東西,字典是鍵值對(duì)的集合,而散列是一種能夠常數(shù)階插入,刪除,不過(guò)可以用散列來(lái)實(shí)現(xiàn)字典。
2. 字典的setdefault()方法使得程序少了許多條件判斷。
3. random.choice()可以隨機(jī)取出一個(gè)序列中的元素。
4. 每?jī)蓚€(gè)前綴詞確定一個(gè)后綴。
實(shí)現(xiàn)代碼:
import random import sys MAXGEN = 10000 NONWORD = '\n' w1 = w2 = NONWORD statetab = {} text = sys.stdin.read() words = text.split() for word in words: statetab.setdefault((w1, w2),[]).append(word) w1, w2 = w2, word # add tail statetab.setdefault((w1, w2),[]).append(NONWORD) # show mar words w1 = w2 = NONWORD for i in xrange(MAXGEN): suf = statetab[(w1,w2)] t = random.choice(suf) if t == NONWORD: break print t w1, w2 = w2, t
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
- python插入排序算法實(shí)例分析
- python選擇排序算法實(shí)例總結(jié)
- python實(shí)現(xiàn)的希爾排序算法實(shí)例
- Python實(shí)現(xiàn)LRU算法的2種方法
- Python語(yǔ)言實(shí)現(xiàn)機(jī)器學(xué)習(xí)的K-近鄰算法
- python實(shí)現(xiàn)數(shù)獨(dú)算法實(shí)例
- python實(shí)現(xiàn)的DES加密算法和3DES加密算法實(shí)例
- Python實(shí)現(xiàn)二分查找算法實(shí)例
- Python二分法搜索算法實(shí)例分析
- Python實(shí)現(xiàn)的最近最少使用算法
相關(guān)文章
python識(shí)別文字(基于tesseract)代碼實(shí)例
這篇文章主要介紹了python識(shí)別文字(基于tesseract)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08python開(kāi)發(fā)中range()函數(shù)用法實(shí)例分析
這篇文章主要介紹了python開(kāi)發(fā)中range()函數(shù)用法,以實(shí)例形式較為詳細(xì)的分析了Python中range()函數(shù)遍歷列表的相關(guān)技巧,需要的朋友可以參考下2015-11-11淺談Pandas:Series和DataFrame間的算術(shù)元素
今天小編就為大家分享一篇淺談Pandas:Series和DataFrame間的算術(shù)元素,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Python函數(shù)關(guān)鍵字參數(shù)及用法詳解
本文主要介紹了Python函數(shù)關(guān)鍵字參數(shù)及用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Python Traceback異常代碼排錯(cuò)利器使用指南
這篇文章主要為大家介紹了Python Traceback異常代碼排錯(cuò)利器使用指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01為2021年的第一場(chǎng)雪錦上添花:用matplotlib繪制雪花和雪景
這篇文章主要介紹了為2021年的第一場(chǎng)雪錦上添花:用matplotlib繪制雪花和雪景,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01利用python將json數(shù)據(jù)轉(zhuǎn)換為csv格式的方法
下面小編就為大家分享一篇利用python將json數(shù)據(jù)轉(zhuǎn)換為csv格式的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03