14.2%企業願意聘用大資料人才
Cloud Future Built Today
IT EXPLAINED 數位轉型攻略 VII
技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2024 iThome 鐵人賽
DAY
30
0
佛心分享-IT 人自學之術
Python學習馬拉松:30天挑戰
系列 第
30
篇
Day30. 實作練習:馬可夫鏈文本生成器 Markov Chain Text Composer
16th鐵人賽
sheep
2024-10-14 14:56:40
489 瀏覽
分享至
教學來源:https://www.youtube.com/watch?v=8ext9G7xspg
這個專案是一個基於馬可夫鏈(Markov Chain)的文本生成器,透過分析文本中的單詞之間的關聯,來生成新文本。
➤ 馬可夫鏈文本生成器的核心概念是透過「當前狀態」來決定「下一個狀態」,在這裡,狀態指的是一個單詞。換句話說,這個程式的目標是根據已知文本中單詞的排列規則,模擬生成類似的文本。
程式碼:
➤ compose.py:
➤ graph.py:
執行3次程式碼的結果:
程式說明:
➤ compose.py:
get_words_from_text函數:
-從給定的文本檔案中讀取內容,去除標點符號,將文本轉換為小寫,並分割成最多 1000 個單詞的列表。
make_graph函數:
-建立一個圖(Graph)來表示單詞之間的關聯。每個單詞是圖中的一個節點(Vertex),如果兩個單詞在文本中連續出現,則在它們之間建立一條邊,邊的權重表示它們一起出現的頻率。
-該圖的功能是幫助後續生成文本時,根據單詞的出現頻率來預測下一個單詞。
compose函數:
-使用生成的圖,隨機選擇一個單詞作為起點,並根據圖中節點之間的關聯逐步生成文本。文本的長度由 length 參數決定(默認為 50 個單詞)。
main函數:
-讀取指定文本檔案,提取單詞,建立單詞之間的關聯圖,並最終生成一段隨機文本。
➤ graph.py:
Vertex 類別:
-圖中的節點,表示一個單詞。每個節點都有一個 adjacent 字典,用來儲存與其他單詞的關聯及其權重。當兩個單詞一起出現時,增加它們之間邊的權重。
-還包含一個方法 next_word(),用來根據關聯單詞的權重,隨機選擇下一個單詞。
Graph 類別:
-圖結構,用來管理所有單詞及它們之間的關聯。每個單詞都是圖中的一個節點,可以根據關聯性預測下一個單詞。
-generate_probability_mappings 用來為每個單詞生成一個概率映射,讓文本生成器根據權重來選擇下一個單詞。
留言
追蹤
檢舉
上一篇
Day29. 實作練習:圈圈叉叉Tic-Tac-Toe --AI
系列文
Python學習馬拉松:30天挑戰
共
30
篇
目錄
RSS系列文
訂閱系列文
2
人訂閱
26
Day26. 實作練習:Binary Search
27
Day27. 實作練習:踩地雷遊戲 Minesweeper
28
Day28. 實作練習:數獨解決器Sudoku Solver
29
Day29. 實作練習:圈圈叉叉Tic-Tac-Toe --AI
30
Day30. 實作練習:馬可夫鏈文本生成器 Markov Chain Text Composer
完整目錄
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22211
篇
完賽人數
600
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
VMware remote console下載....
如何控管現在的手機連公司wifi-因手機現在會自動變更mac位置
求推介好用 AI 工具!
如何規劃一個安全的網路管制區
幼兒會亂按桌機開關關停桌機,奇怪以前的桌機需長按5秒才能關停,怎麼現在的桌機一按就關停了?請問有什麼方法或設定可以解決幼兒亂按關停桌機的問題.謝謝!!
公司大量報廢 3C 產品如何清理?
如何解決搜尋網址的摘要被導去垃圾站的問題?
Kali Linux如何執行exe檔?
加入網域後導致的微軟程式封鎖
系統開發的問題請益
AI 賦能 DevOps,開啟創新應用!
立即標記行事曆,7/2 探索 AI 與雲端的無限未來!
僅需 6~12週快速建立 GenAI 策略與路線圖
Windows 10支援倒數,聯繫微軟夥伴諮詢
GenAI 加速企業創新落地,更需要全新 IT 戰略
熱門回答
如何控管現在的手機連公司wifi-因手機現在會自動變更mac位置
系統開發的問題請益
中小公司 郵件系統、人資系統 更換請益
幼兒會亂按桌機開關關停桌機,奇怪以前的桌機需長按5秒才能關停,怎麼現在的桌機一按就關停了?請問有什麼方法或設定可以解決幼兒亂按關停桌機的問題.謝謝!!
如何宣告讓任何 IP 都能連線的資料庫 (WorkBench)
熱門文章
【讓機器人做】自動截取網頁資料 + 排程器篇 I
kintone 外掛開發 ② 簡單實作範例 part 1 - 動手打包第一個外掛
Awesome Go Classroom Site
Angular 多專案架構
什麼是高內聚與低耦合的程式架構?
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}