。乙個最大逆向匹配分詞演算法的例子

2022-02-03 07:34:41 字數 1088 閱讀 7617

逆向匹配法思想與正向一樣,只是從右向左切分,這裡舉乙個例子:

輸入例句:s1=」計算語言學課程有意思」 ;

定義:最大詞長maxlen = 5;s2= 」 「;分隔符 = 「/」;

假設存在詞表:…,計算語言學,課程,意思,…;

最大逆向匹配分詞演算法過程如下:

(1)s2=」」;s1不為空,從s1右邊取出候選子串w=」課程有意思」;

(2)查詞表,w不在詞表中,將w最左邊乙個字去掉,得到w=」程有意思」;

(3)查詞表,w不在詞表中,將w最左邊乙個字去掉,得到w=」有意思」;

(4)查詞表,w不在詞表中,將w最左邊乙個字去掉,得到w=」意思」

(5)查詞表,「意思」在詞表中,將w加入到s2中,s2=」 意思/」,並將w從s1中去掉,此時s1=」計算語言學課程有」;

(6)s1不為空,於是從s1左邊取出候選子串w=」言學課程有」;

(7)查詞表,w不在詞表中,將w最左邊乙個字去掉,得到w=」學課程有」;

(8)查詞表,w不在詞表中,將w最左邊乙個字去掉,得到w=」課程有」;

(9)查詞表,w不在詞表中,將w最左邊乙個字去掉,得到w=」程有」;

(10)查詞表,w不在詞表中,將w最左邊乙個字去掉,得到w=」有」,這w是單字,將w加入到s2中,s2=「 /有 /意思」,並將w從s1中去掉,此時s1=」計算語言學課程」;

(11)s1不為空,於是從s1左邊取出候選子串w=」語言學課程」;

(12)查詞表,w不在詞表中,將w最左邊乙個字去掉,得到w=」言學課程」;

(13)查詞表,w不在詞表中,將w最左邊乙個字去掉,得到w=」學課程」;

(14)查詞表,w不在詞表中,將w最左邊乙個字去掉,得到w=」課程」;

(15)查詞表,「意思」在詞表中,將w加入到s2中,s2=「 課程/ 有/ 意思/」,並將w從s1中去掉,此時s1=」計算語言學」;

(16)s1不為空,於是從s1左邊取出候選子串w=」計算語言學」;

(17)查詞表,「計算語言學」在詞表中,將w加入到s2中,s2=「計算語言學/ 課程/ 有/ 意思/」,並將w從s1中去掉,此時s1=」」;

(18)s1為空,輸出s2作為分詞結果,分詞過程結束。

乙個最大逆向匹配分詞演算法的例子

逆向匹配法思想與正向一樣,只是從右向左切分,這裡舉乙個例子 輸入例句 s1 計算語言學課程有意思 定義 最大詞長maxlen 5 s2 分隔符 假設存在詞表 計算語言學,課程,意思,最大逆向匹配分詞演算法過程如下 1 s2 s1不為空,從s1右邊取出候選子串w 課程有意思 2 查詞表,w不在詞表中,...

逆向最大匹配分詞演算法C

逆向順序 程式設計師 序員 員 名程式 程式 序 一名程 名程 程 是一名 一名 名 我是一 是一 一 x我是 我是 是 xx我 x我 我 叫xx xx x 我叫x 叫x x 好我叫 我叫 叫 家好我 好我 我 大家 家 大class program else if flag else len st...

逆向最大匹配分詞演算法C

逆向順序 程式設計師 序員 員 名程式 程式 序 一名程 名程 程 是一名 一名 名 我是一 是一 一 x我是 我是 是 xx我 x我 我 叫xx xx x 我叫x 叫x x 好我叫 我叫 叫 家好我 好我 我 大家 家 大class program else if flag else len st...