日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

语音识别:时间序列的匹配算法(Needleman-Wunsch 算法)

發(fā)布時(shí)間:2025/3/21 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 语音识别:时间序列的匹配算法(Needleman-Wunsch 算法) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、說明

? ? ? ? 如果存在這樣的語句:

  • 武松攥緊拳頭,朝老虎的眼睛打去。
  • 武松朝老虎打去”;

????????以上兩句話,雖長度不同,其意思是高度相似的。如果按照字符串匹配,將無法說明兩個(gè)句子意思一樣。那么字符串如何匹配才能說明它們是一樣的??Needleman-Wunsch 算法就是解決類似問題的一種。

????????Needleman-Wunsch 算法是一種在生物信息學(xué)中用于比對(duì)蛋白質(zhì)或核苷酸序列的算法。它是動(dòng)態(tài)規(guī)劃比較生物序列的首選應(yīng)用之一。該算法由 Saul B. Needleman 和 Christian D. Wunsch 開發(fā),并于 1970 年發(fā)表。該算法本質(zhì)上將一個(gè)大問題(例如整個(gè)序列)劃分為一系列較小的問題,并使用小問題的解來找到較大問題的最優(yōu)解。?

????????Needleman-Wunsch 算法有時(shí)也被稱為最優(yōu)匹配算法或全局對(duì)齊技術(shù)。 Needleman-Wunsch 算法仍然廣泛用于優(yōu)化全局對(duì)齊,特別是當(dāng)全局對(duì)齊的質(zhì)量至關(guān)重要時(shí)。該算法為每個(gè)可能的對(duì)齊分配一個(gè)分?jǐn)?shù),并找到所有可能的具有最高分?jǐn)?shù)的對(duì)齊形式。

? ? ? ? 生物DNA匹配,必須遵守的規(guī)則是:從第一個(gè)序列的索引到另一個(gè)序列的索引的映射必須是單調(diào)遞增的,反之亦然,即如果? 是來自第一個(gè)序列的索引,那么不允許有另一個(gè)序列中的兩個(gè)索引 ,使得索引 與索引 匹配,?索引?與索引?匹配,反之亦然。

二、最大子串匹配算法

2.1最大子串匹配

例如,字符串A=kitten,字符串B=sitting ,那他們的最長公共子串為ittn ,最長公共子串長度為4。(注:最長公共子串不需要連續(xù)出現(xiàn),但一定是出現(xiàn)的順序一致).

2.2 字符串和LSC

表示A是由這N個(gè)字符組成,;

,表示B是由這M個(gè)字符組成,.

2.3 LSC定義

定義1:LCS(A,B)表示字符串A和字符串B的最長公共子串的長度。

很顯然,?表示兩個(gè)字符串沒有公共部分。

定義2:其中.

對(duì)于有公式:

若,則
若,則
?

2.4 遞推原理

????????對(duì)于任意兩個(gè)字符串。這里使用兩個(gè)小 DNA 序列作為示例,如圖 1 所示,如兩段DNA片段:

????????? ? ? ? ? ? ? ?和? ? ? ? ????
? ? ? ?如何求它們的最大相似度?

三、運(yùn)算步驟

3.1 第一步,建立結(jié)構(gòu)表格

????????首先建立如圖一的得分矩陣。從第一列第一行的位置起始。計(jì)算過程從d 【0 , 0】開始,可以是按行計(jì)算,每行從左到右,也可以是按列計(jì)算,每列從上到下。當(dāng)然,任何計(jì)算過程,只要滿足在計(jì)算d【 i , j】時(shí)d【 i-1 , j】、d 【i-1 , j-1】和d【 i, j-1】都已經(jīng)被計(jì)算這個(gè)條件即可。在計(jì)算d【 i , j】后,需要保存d 【i , j】是從d【 i-1 , j】、d【 i-1 , j-1】或d【i, j-1】中的哪一個(gè)推進(jìn)的,或保存計(jì)算的路徑,以便于后續(xù)處理。上述計(jì)算過程到d 【m , n】結(jié)束。

1) 選擇得分體系

????????接下來我們需要決定如何給每個(gè)獨(dú)立配對(duì)打分。從我們的序列中,你可能就能發(fā)現(xiàn)最好的序列配對(duì)之一:

GCATG-CU
G-ATTACA

我們可以看出每個(gè)位置配對(duì)都有三種可能情況:匹配, 不匹配與錯(cuò)位(或插入):

  • 匹配: 兩個(gè)字母相同
  • 不匹配:兩個(gè)字母不相同
  • 空缺位:一個(gè)字母與另一個(gè)序列中的間隔(空白)相匹配

????????

2)初始化表格

????????這三種得分情況有很多打分標(biāo)準(zhǔn),從現(xiàn)在開始,我們將使用Needleman 和Wunsch創(chuàng)造的簡(jiǎn)單體系來進(jìn)行打分,即匹配得1分,不匹配得-1分,空缺位得-1分。

? ? ? ? 1)從第二行第二列的零開始。

? ? ? ? 2)逐行移動(dòng)單元格,計(jì)算每個(gè)單元格的分?jǐn)?shù)。

? ? ? ? 3)通過比較與單元格左側(cè)、頂部或左上角(對(duì)角線)相鄰的單元格的分?jǐn)?shù)并添加匹配、不匹配或插入缺失的適當(dāng)分?jǐn)?shù)來計(jì)算分?jǐn)?shù)。計(jì)算三種可能性中每一種的候選分?jǐn)?shù):

  • 來自頂部或左側(cè)單元格的路徑代表一個(gè) indel 配對(duì),因此獲取左側(cè)和頂部單元格的分?jǐn)?shù),并將 indel 的分?jǐn)?shù)添加到每個(gè)單元格中。
  • 對(duì)角線路徑表示匹配/不匹配,因此取左上角對(duì)角線單元格的分?jǐn)?shù),如果行和列中的相應(yīng)堿基(字母)匹配,則添加匹配分?jǐn)?shù),如果不匹配,則添加不匹配分?jǐn)?shù)。

????????單元格的結(jié)果分?jǐn)?shù)是三個(gè)候選分?jǐn)?shù)中最高的。 鑒于第二行沒有“頂部”或“左上”單元格,只有左側(cè)的現(xiàn)有單元格可用于計(jì)算每個(gè)單元格的分?jǐn)?shù)。因此,每次向右移動(dòng)都會(huì)添加 -1,因?yàn)檫@表示對(duì)前一個(gè)分?jǐn)?shù)的插入刪除。這導(dǎo)致第一行是 0、-1、-2、-3、-4、-5、-6、-7。這同樣適用于第一列,因?yàn)橹荒苁褂妹總€(gè)單元格上方的現(xiàn)有分?jǐn)?shù)。因此結(jié)果表是:

-GCATGCG
-0-1-2-3-4-5-6-7
G-1
A-2
T-3
T-4
A-5
C-6
A-7

3.2 第二步,如何逐行填表

從第三行開始,進(jìn)行實(shí)質(zhì)匹配。第一項(xiàng)是行為G,列為G。

其中X如何填寫?該單元格具有三個(gè)可能的候選總和:

  • 對(duì)角線左上角的鄰居得分為 0。G 和 G 的配對(duì)是匹配的,所以添加匹配的分?jǐn)?shù):0+1 = 1
  • 頂部鄰居的得分為 -1,從那里移動(dòng)代表一個(gè)插入缺失,因此添加插入缺失的得分:(-1) + (-1) = (-2)
  • 左鄰居的得分也為 -1,代表一個(gè)插入缺失,也產(chǎn)生 (-2)。

最高的候選人是 1 并被輸入到單元格中:

因此出現(xiàn)一個(gè)公式:

?是最后分?jǐn)?shù);

是當(dāng)前兩個(gè)字母是否匹配;

是當(dāng)前cell的左側(cè)分?jǐn)?shù),上部分?jǐn)?shù),左上部分?jǐn)?shù);


在下一個(gè)示例中,X 和 Y 的對(duì)角線步長表示不匹配:

X填寫規(guī)則:

  • Top: (?2)+(?1) = (?3)
  • Left: (+1)+(?1) = (0)
  • Top-Left: (?1)+(?1) = (?2)

最后取最大值:X = 0

Y填寫規(guī)則:

  • Top: (1)+(?1) = (0)
  • Left: (?2)+(?1) = (?3)
  • Top-Left: (?1)+(?1) = (?2)

?最后取最大值:Y = 0

接著按上面同樣規(guī)律,填寫另一個(gè):

最后,填寫的評(píng)分矩陣如下:

四、匹配鏈:追蹤箭頭回到原點(diǎn)

? ? ? ? 按照箭頭的方向標(biāo)記從右下角的單元格返回到左上角的單元格的路徑。從這條路徑開始,序列由以下規(guī)則構(gòu)成:

????????對(duì)角箭頭表示匹配或不匹配,因此列的字母和原始單元格的行的字母將對(duì)齊。
水平或垂直箭頭表示插入缺失。垂直箭頭將間隙(“-”)與行的字母(“side”序列)對(duì)齊,水平箭頭將間隙與列的字母(“top”序列)對(duì)齊。
????????如果有多個(gè)箭頭可供選擇,它們代表路線的一個(gè)分支。如果兩個(gè)或多個(gè)分支都屬于從右下角到左上角單元格的路徑,則它們是同樣可行的對(duì)齊。在這種情況下,請(qǐng)注意將路徑作為單獨(dú)的對(duì)齊候選。
????????按照這些規(guī)則,圖 1 中一種可能的對(duì)齊候選的步驟是:

G → CG → GCG → -GCG → T-GCG → AT-GCG → CAT-GCG → GCAT-GCG A → CA → ACA → TACA → TTACA → ATTACA → -ATTACA → G-ATTACA ↓(branch) → TGCG → ...→ TACA → ...

匹配分?jǐn)?shù):將匹配路徑的所有分?jǐn)?shù)累加,得到分?jǐn)?shù)為6.


?

總結(jié)

以上是生活随笔為你收集整理的语音识别:时间序列的匹配算法(Needleman-Wunsch 算法)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。