當(dāng)前位置:首頁>知識>nlp常用文本處理模型 基于Markov的拼音漢字轉(zhuǎn)換方法
發(fā)布時間:2024-01-22閱讀(19)
通常情況下,我們在做語音識別的時候,一般是以下的一個流程:

這里最主要的是依靠兩個模型:聲學(xué)模型和語言模型,聲學(xué)模型接收我們說話的音頻,輸出的結(jié)果為拼音,而從拼音轉(zhuǎn)換到文字,這個就需要語言模型來進行操作。也就是這一篇文章的核心,基于馬爾可夫的拼音文字轉(zhuǎn)換方法。
一:拼音到文字的Markov模型推導(dǎo)
Markov模型的特點是某一狀態(tài)的發(fā)生概率僅其以前的狀態(tài)有關(guān),而和其他狀態(tài)無關(guān)
,這一點在語言學(xué)中稱為左語境約束,左語境約束這一點很好理解,因為我們的文字讀寫習(xí)慣都是從左到右,因此你現(xiàn)在讀到的文字語境會受到你剛剛讀到的文字的約束。
前提假設(shè):


綜上所述:可以通過下邊的圖片來解釋這個流程,其中方塊表示輸入的拼音,圓形表示同音字,箭頭表示對外轉(zhuǎn)移概率(沒有箭頭表示轉(zhuǎn)移概率為0)

二:動態(tài)規(guī)劃的算法求解
包括最大似然估計,很多方法都可以解決尋找路徑的問題。需要通過對觀察到的數(shù)據(jù)來進行概率判斷下一時刻最可能的狀態(tài),從拼音到漢字的轉(zhuǎn)換過程可以看做是在一個有向圖中,求解概率最大路徑的問題。可以用維特比(Viterb)算法:
假設(shè):我們觀察到的是拼音:
但是觀測序列中序列排序很復(fù)雜,比如wo可能有三種可能:喔、我、沃,如下圖所示:

現(xiàn)在變成了最大概率問題,把概率最大的理解為路徑最短,轉(zhuǎn)換為了求解最短路徑問題:

算法求解:
1:A->B

2:A->B->C

3:A->B->C->D

4:A->B->C->D->E

最終就得到了A->E的最短路徑A->B1->C2->D2->E1,至此,找到了wo ai zhong guo對應(yīng)的概率最大的中文漢字組合為:我愛中國。

三:系統(tǒng)結(jié)構(gòu)
參考https://github.com/letiantian/Pinyin2Hanzi項目代碼。羅列系統(tǒng)結(jié)構(gòu):

用戶輸入拼音串后,會學(xué)習(xí)語料庫,然后通過維特比算法去求解最大解,,并
將形成最大值的狀態(tài)串接起來作為輸出 。
四:實驗結(jié)果

代碼學(xué)習(xí)部分放在下一篇
五:參考文章
1:基于詞詞同現(xiàn)概率的拼音漢字自動轉(zhuǎn)換方法。馬少平老師
2:如何通俗地講解 viterbi 算法?
https://www.zhihu.com/question/2013
歡迎分享轉(zhuǎn)載→http://www.avcorse.com/read-80886.html
Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖