Download - Chinese Words Segmentation Tutorial
什麼是中文斷詞?
● 英文的單字有空格區分開來,個別的單字即可表達語意。– Ma says economic policies brought recovery.
● 中文的字未必能表達語意,由字所組成的詞才能表達語意。但詞和詞中間沒有空格區分開。– 馬英九說經濟政策造成景氣回升。
● 經這個字即可表達其語意,但經、濟這兩個字無法各別表達其語意,必須合再一起組合成「經濟」才能表達其語意。
● 經和濟這兩個詞中間沒有空格區分開來。
中文斷詞演算法
● 監督式學習法:
B:開頭M:中間E:結尾S:單詞
馬英九說經濟政策造成景氣回升 ...
馬 B 英M
九E
說S 經
B 濟
E
政B 策
E 造
B
…..
語言模型
手動標記
訓練
語言模型
馬英九總統距離卸任剩下不到一年 ...
馬B英
M九
E總
B
統E距
B離
E卸
B
任E 剩
B下
E...
中文斷詞演算法
● 非監督式學習法:
馬英九說經濟政策造成景氣回升 ...
語言模型訓練
語言模型
馬英九總統距離卸任剩下不到一年 ...
馬英九 /總統 /距離 /卸任 /
剩下 /
不到 /一年 /...
中文斷詞的困難● 斷詞歧義性:相同字串可以有不同的斷詞結果。
台/大便/餐車、台大/便餐/車、台大/便/餐車
http://3rd.mafengwo.cn/travels/info_weibo.php?id=2861280
中文斷詞的困難● 未知詞:詞典中或訓練資料中沒有出現過的詞。
石內卜、祭止兀
https://www.facebook.com/435562233245989/photos/a.435562556579290.1073741825.435562233245989/538635189605359/?type=1&theater
jieba斷詞
● 斷詞原理:– 列出一個句子中所有可能的斷詞組合,形成一個
DAG,並用Dynamic Programming的方式,根據詞典中的詞頻,計算出機率最大的路徑。Ex: 台大便餐車→ 台大/便餐/車、台/大便/餐車、台大/便/餐車
0 1 2 3 4 5台 大 便 餐 車
台大
大便 便餐
餐車
jieba斷詞
0 1 2 3 4 5P( 餐 )
P( 餐車 )
P( 餐車 ) > P( 餐 ) *P( 車 )
P( 便 )
P( 便餐 )
P( 台 )
P( 台大 )
P( 大 )
P( 大便 )
P( 車 )
jieba斷詞
0 1 2 3 4 5P( 便 ) P( 餐 )
P( 便餐 )
P( 餐車 )
P( 車 )
P( 便 ) * P( 餐車 ) > P( 便餐 ) *P( 車 )
P( 台 )
P( 台大 )
P( 大 )
P( 大便 )
jieba斷詞
0 1 2 3 4 5P( 台 ) P( 大 ) P( 便 ) P( 餐 )
P( 台大 )
P( 大便 ) P( 便餐 )
P( 餐車 )
P( 車 )
P( 大便 ) * P( 餐車 ) > P( 大 ) * P( 便 ) *P( 餐車 )
jieba斷詞
0 1 2 3 4 5P( 台 ) P( 大 ) P( 便 ) P( 餐 )
P( 台大 )
P( 大便 ) P( 便餐 )
P( 餐車 )
P( 車 )
P( 台大 ) * P( 便 ) *P( 餐車 ) > P( 台 ) * P( 大便 ) * P( 餐車 )
jieba斷詞
0 1 2 3 4 5P( 台 ) P( 大 ) P( 便 ) P( 餐 )
P( 台大 )
P( 大便 ) P( 便餐 )
P( 餐車 )
P( 車 )
斷詞結果:台大 / 便 / 餐車
jieba斷詞● 斷詞原理:
– 辭典內沒有的詞,用監督式學習法來斷詞– Ex: → 內湖石內卜 內湖 / 石內卜
P(B|<s>) * P(內 |B) * P(E| B) * P(湖 |E) * P(B|E) *
P(石 |B) *P(M|B)* P(內 |M)* P(E|M)*P(卜 |E) * P(<e>|E)
B E B M E
內 湖 石 內 卜
Start <s> End <e>
內 湖 石 內 卜
S
B
M
E
Q1(S) = P( 內 |S) * P(S|<s>)
Q1(B) = P( 內 |B) * P(B|<s>)
Q1(M) =P( 內 |M) * P(M|<s>)
Q1(E) = P( 內 |E) * P(E|<s>)
<s>
內 湖 石 內 卜
S
B
M
E
S
B
M
E
Q2(S) = P( 湖 |S) * P(S|B) * Q
1(B)
Q2(B) = P( 湖 |B) * P(B|S) * Q
1(S)
Q2(M) = P( 湖 |M) * P(M|B) * Q
1(B)
Q2(E) = P( 湖 |E) * P(E|B) * Q
1(B)
<s>
內 湖 石 內 卜
S
B
M
E
S
B
M
E
S
Q3(S) = P( 石 |S)* MAX( )
P(S|S) Q2(S)
P(S|B) Q2(B)
P(S|M) Q2(M)
P(S|E) Q2(E)
<s>
內 湖 石 內 卜
S
B
M
E
S
B
M
E
Q3(S) = P( 石 |S) * P(S|S) * Q
2(S)
Q3(B) = P( 石 |B) * P(B|E) * Q
2(E)
Q3(M) = P( 石 |M) * P(M|B) * Q
2(B)
Q3(E) = P( 石 |E) * P(E|M) * Q
2(M)
S
B
M
E
<s>
內 湖 石 內 卜
S
B
M
E
S
B
M
E
S
B
M
E
S
B
M
E
S
B
M
E
<s> <s>
MAX( )
P(<e>|S) Q5(S)
P(<e>|B) Q5(B)
P(<e>|M) Q5(M)
P(<e>|E) Q5(E)
斷詞結果:內湖 / 石內卜
實作 2-1: jieba斷詞
● 載入 jieba斷詞套件● 將「台大便餐車」和「內湖石內卜祭止兀是自己人」作斷詞
● 載入繁體字詞典● 再將「台大便餐車」和「內湖石內卜祭止兀是自己人」作斷詞
● 加入新詞「便餐車」、「石內卜」、「祭止兀」● 再將「台大便餐車」和「內湖石內卜祭止兀是自己人」作斷詞
斷詞後再作 N-gram
內湖石內卜祭止兀是自己人
內湖 / 石內卜 / 祭止兀 / 是 / 自己人
內湖 , 石內卜 , 祭止兀石內卜 , 祭止兀 , 是
祭止兀 , 是 , 自己人
斷詞
3-gram
斷詞後再作 N-gram
● 優點:– 可以分析詞和詞之間的前後關係
● 缺點:– 斷詞可能會出錯
內湖 , 石內卜 , 祭止兀
v.s
內湖 , 石 , 內卜
內湖 , 石內卜 , 祭止兀
內 , 湖 , 石
v.s
講者聯絡方式:
Mark Chang
Github : http://github.com/ckmarkoh
Blog : http://cpmarkchang.logdown.com
email : ckmarkoh at gmail.com