(1)正向最大匹配演算法
**例項:**
s1=「計算語言學課程是三個課時」 ,設定最大詞長maxlen = 5 ,s2= " "
字典中含有三個詞:[計算語言學]、[課程]、[課時]
(1)s2="";s1不為空,從s1左邊取出候選子串w=「計算語言學」;
(2)查詞表,「計算語言學」在詞表中,將w加入到s2中,s2=「計算語言學/ 」, 並將w從s1中去掉,此時s1=「課程是三個課時」;
(3)s1不為空,於是從s1左邊取出候選子串w=「課程是三個」;
(4)查詞表,w不在詞表中,將w最右邊乙個字去掉,得到w=「課程是三」;
(5)查詞表,w不在詞表中,將w最右邊乙個字去掉,得到w=「課程是」;
(6)查詞表,w不在詞表中,將w最右邊乙個字去掉,得到w=「課程」
(7)查詞表,w在詞表中,將w加入到s2中,s2=「計算語言學/ 課程/ 」,並 將w從s1中去掉,此時s1=「是三個課時」;
(8)s1不為空,於是從s1左邊取出候選子串w=「是三個課時」;
(9)查詞表,w不在詞表中,將w最右邊乙個字去掉,得到w=「是三個課」;
(10)查詞表,w不在詞表中,將w最右邊乙個字去掉,得到w=「是三個」;
(11)查詞表,w不在詞表中,將w最右邊乙個字去掉,得到w=「是三」
(12)查詞表,w不在詞表中,將w最右邊乙個字去掉,得到w=「是」,這時 w是單字,將w加入到s2中,s2=「計算語言學/ 課程/ 是/ 」,並將 w從s1中去掉,此時s1=「三個課時」;
(13)s1不為空,從s1左邊取出候選子串w=「三個課時」;
(14)查詞表,w不在詞表中,將w最右邊乙個字去掉,得到w=「三個課」;
(15)查詞表,w不在詞表中,將w最右邊乙個字去掉,得到w=「三個」;
(16)查詞表,w不在詞表中,將w最右邊乙個字去掉,得到w=「三」,這時 w是單字,將w加入到s2中,s2=「計算語言學/ 課程/ 是/ 三/ 」,並 將w從s1中去掉,此時s1=「個課時」;
(17)s1不為空,從s1左邊取出候選子串w=「個課時」;
(18)查詞表,w不在詞表中,將w最右邊乙個字去掉,得到w=「個課」;
(19)查詞表,w不在詞表中,將w最右邊乙個字去掉,得到w=「個」, 這時w是單字,將w加入到s2中,s2=「計算語言學/ 課程/ 是/ 三/ 個/ 「,並將w從s1中去掉,此時s1=「課時」;
(20)s1不為空,從s1左邊取出候選子串w=「課時」;
(21)查詞表,w在詞表中,將w加入到s2中,s2=「計算語言學/ 課程/ 是/ 三/ 個/ 課時/ 「,並將w從s1中去掉,此時s1=」」。
(22)s1為空,輸出s2作為分詞結果,分詞過程結束。
中文分詞技術
中文分詞又叫中文切詞,中文劃詞等,是seo必須掌握的乙個基礎知識。現有的中文分詞演算法可分為三大類 基於字串匹配的分詞方法 基於理解的分詞方法和基於統計的分詞方法。1 基於字串匹配的分詞方法 這種方法又叫做機械分詞方法,它是按照一定的策略將待分析的漢字串與乙個充分大的機器詞典中的詞條進行配,若在詞典...
中文分詞技術
中文分詞技術屬於自然語言處理技術範疇,對於一句話,人可以通過自己的知識來明白哪些是詞,哪些不是詞,但如何讓計算機也能理解?其處理過程就是分詞演算法。現有的分詞演算法可分為三大類 基於字串匹配的分詞方法 基於理解的分詞方法和基於統計的分詞方法。1 基於字串匹配的分詞方法 這種方法又叫做機械分詞方法,它...
中文分詞技術
中文分詞技術 chinese word segmentation 指將乙個漢字序列切分成乙個個單獨的詞。分詞就是將連續的字序列按照一定的規則重新組合成詞序列的過程 目前中文分詞演算法有以下5類 在業務中,可以使用多種演算法進行比較選擇,其中比較選擇的原則有以下幾點 其基本原理是按照一定的步長對文件取...