第三章 自動新詞擷取方法
本文提出的新詞自動擷取方法總共包含三個部份,分別為一.新詞自動擷取方 法,二.舊有詞庫的應用與三.淘汰錯誤且過時的字詞。透過第一和第二部份並搭 配 Google 新聞資料,將能有效建立ㄧ新聞類專業詞庫,不需依靠人工即能達到 一定的正確率。由於隨著時間的變化,新聞資料將不停的累積,有些新聞用詞也 會過時而不再被使用,且所建立的新聞類專業詞庫也會隨著時間而膨脹,進而影 響中文斷詞系統的效率。因此經由第三部份來淘汰不適當的字詞,有效避免詞庫 過大的問題。
3.1 新詞自動擷取演算法
Different titles originated from a
piece of news
Find the of occurrence of Wni
Step.1
Step.2
Step.3
Step.4
Obtain the entry words
Check the accuracy of the words
The words which are correct and reasonable
( )
k n
W W D C F D D C F
W W D CF sum D C F D D C F
j n ni nj ni
j n ni j n ni ni
,..., 4 , 3 , 2
) 1 (
) 1 ( ) 1 (
=
⎩⎨
⎧
⊄
=
⊂
−
=
+ + +
D C Fni
圖3-1 新詞自動擷取架構圖
圖 3-1 為本文的新詞自動擷取架構圖,新詞自動擷取總共有四個步驟,將新 聞資料套入本文提出的方法,經過四個步驟後將自動擷取出新詞。
Step.1
先從 Google 提供的新聞服務中自動提取多則經由 Google 分類好之同一新聞 事件的標題,統計出每一字詞的詞頻,並把原本的詞頻轉換成新的詞頻 , 轉換方式如下。
DCFni
)!
2 (
! 2
!
= − m
DCFni m (3-1)
其中 代表第第 i 個 n 字詞 的重複組合頻率(duplicate combination frequency), 代表W 原先的詞頻。
DCFni Wni
m ni
如 圖 3-2 當 台 灣 出 現 兩 次 時 其 1
! 0
! 2
! 2
) (
2 =
= ×
DCF 台灣 , 假 如 出 現 三 次 則
! 3 1
! 2
! 3
) (
2 =
= ×
DCF 台灣 , 對於原先的詞頻有放大的效果,相對於其他詞頻的計 算方式,本文提出的 可以透過訂定門檻值來降低錯誤的多字詞。
DCFni
DCFni
圖3-2 DCFni計算方式
實際範例如表 3-1 所示,系統將自動擷取被 Google 分類好之單一新聞事件的 所有標題,由於某些新聞媒體會定出完全相同的標題,所以系統會先濾除完全相 同的標題。如表 3-2 至表 3-5 所示,接下來系統會將所有標題切成二、三、四、
五字詞並統計其詞頻,詞頻將會被轉換成DCFni。
表3-1 同ㄧ新聞事件之不同新聞標題與來源
新聞標題 新聞來源
雲南兩飛機相撞墜毀一飛行員跳傘具體傷亡不詳 東方網 中共兩架軍機在雲南相撞墜毀 蕃薯藤新聞 中共空軍驚發惡性事故兩戰機空中相撞一副團長死亡 新浪網 新手追撞前機兩殲七墜毀 臺灣蘋果日 雲南相撞的戰機證實為兩架殲七副團長已犧牲 澳洲日報
雲南兩軍機相撞墜毀 中國報
兩機雲南撞毀 1 名飛行員跳傘傷亡不詳 香港商報 中共軍機操練傳出墬毀失事飛機疑為殲七-II 戰機 東森新聞報 中國‧雲南軍機相撞一人死一飛行員跳傘受傷 星洲日報 傳殲 10 試飛雲南撞機 成報 雲南兩飛機空中相撞墜燬山頂傷亡情況正在調查 深圳僑報 滇兩殲七機相撞副團長犧牲 香港文匯報 多維簡訊:雲南兩飛機相撞墜毀 1 飛行員跳傘逃生 多維新聞網 彝族聖藥稱能治艾滋雲南秘方開價 50 億美元 多維新聞網
表3-2 二字詞詞頻與DCFni 二字詞 詞頻 DCFni
雲南 10 45
南兩 4 6
兩飛 3 3
飛機 4 6
機相 5 10
相撞 9 36
撞墜 5 10
墜毀 5 10
一飛 2 1
飛行 4 6
行員 4 6
員跳 4 6
跳傘 4 6
傷亡 3 3
亡不 2 1
不詳 2 1
中共 3 3
兩架 2 1
軍機 4 6
南相 2 1
戰機 3 3
機空 2 1
空中 2 1
中相 2 1
撞一 2 1
副團 3 3
團長 3 3
兩殲 2 1
殲七 4 6
犧牲 2 1
南撞 2 1
表3-3 三字詞詞頻與DCFni 三字詞 詞頻 DCFni
雲南兩 4 6
南兩飛 3 3
兩飛機 3 3
飛機相 2 1
機相撞 5 10
相撞墜 5 10
撞墜毀 4 6
一飛行 2 1
飛行員 4 6
行員跳 4 6
員跳傘 4 6
傷亡不 2 1
亡不詳 2 1
雲南相 2 1
南相撞 2 1
機空中 2 1
空中相 2 1
中相撞 2 1
相撞一 2 1
副團長 3 3
兩殲七 2 1
軍機相 2 1
雲南撞 2 1
表3-4 四字詞詞頻與DCFni 四字詞 詞頻 DCFni
雲南兩飛 3 3
南兩飛機 3 3
兩飛機相 2 1
飛機相撞 2 1
機相撞墜 3 3
相撞墜毀 4 6
一飛行員 2 1
飛行員跳 4 6
行員跳傘 4 6
傷亡不詳 2 1
雲南相撞 2 1
機空中相 2 1
空中相撞 2 1
軍機相撞 2 1
表3-5 五字詞詞頻與DCFni 五字詞 詞頻 DCFni
雲南兩飛機 3 3
南兩飛機相 2 1 兩飛機相撞 2 1 飛機相撞墜 2 1 機相撞墜毀 3 3 一飛行員跳 2 1 飛行員跳傘 4 6 機空中相撞 2 1
Step.2
如表 3-6 當二字詞裡有被包含在三字詞時,則把二字詞的詞頻減去三字詞的詞 頻並以此數目當成新的詞頻的差異重複組合頻率(difference duplicate combination frequency) ,如果二字詞並沒有被包含在任何三字詞時,則此二字詞的詞頻 將不會被更改,同樣的三字詞新的詞頻則是利用四字詞的詞頻來重新計算,以此 類推。運算規則如下
DDCFni
( )
k n
W W DCF
DDCF
W W DCF
sum DCF
DDCF
j n ni nj
ni
j n ni j n ni
ni
,..., 4 , 3 , 2
) 1 (
) 1 ( )
1 (
=
⎩⎨
⎧
⊄
=
⊂
−
=
+ + +
(3-2)
如式 3-2 為第 i 個 n 字詞、而 代表第 j 個(n+1)字詞,當 被包含在 時,其 將會不同於原本的 ,假設 沒有被任何 所包含到,
則其 將會等於原本的 。如式(3-3)二字詞“雲南”被包含在三字詞“雲 南兩”、 “雲南相”與“雲南撞”則其 將會是 37。表 3-6 至表 3-8 所示為所有
Wni W(n+1)j Wni
j
W(n+1) DDCFni DCFni Wni W(n+1)j
DDCFni DCFni
DDCFni
字詞的DDCFni與DCFni。
( )
37 ) 2 2 4 ( 45
) ( 3 )
( 3 )
( 3 )
( 2
) ( 2
= + +
−
=
+ +
−
= 雲南 雲南兩 雲南相 雲南撞
雲南
DCF DCF
DCF DCF
DDCF
(3-3)
表3-6 二字詞DDCFni與DCFni 二字詞 DDCFni DCFni
雲南 37 45
南兩 -3 6
兩飛 -3 3
飛機 2 6
機相 -2 10
相撞 13 36
撞墜 -6 10
墜毀 4 10
一飛 0 1
飛行 -1 6
行員 -6 6
員跳 -6 6
跳傘 0 6
傷亡 2 3
亡不 -1 1
不詳 0 1
中共 3 3
兩架 1 1
軍機 5 6
南相 -1 1
戰機 3 3
機空 0 1
空中 -1 1
中相 -1 1
撞一 0 1
副團 0 3
團長 0 3
兩殲 0 1
殲七 5 6
犧牲 1 1
南撞 0 1
表3-7 三字詞DDCFni與DCFni 三字詞 DDCFni DCFni
雲南兩 3 6
南兩飛 -3 3
兩飛機 -1 3
飛機相 -1 1
機相撞 5 10
相撞墜 1 10
撞墜毀 0 6
一飛行 0 1
飛行員 -1 6
行員跳 -6 6
員跳傘 0 6
傷亡不 0 1
亡不詳 0 1
雲南相 0 1
南相撞 0 1
機空中 0 1
空中相 -1 1
中相撞 0 1
相撞一 1 1
副團長 3 3
兩殲七 1 1
軍機相 0 1
雲南撞 1 1
表3-8 四字詞DDCFni與DCFni 四字詞 DDCFni DCFni
雲南兩飛 0 3
南兩飛機 -1 3
兩飛機相 -1 1
飛機相撞 -1 1
機相撞墜 -1 3
相撞墜毀 3 6
一飛行員 0 1
飛行員跳 -1 6
行員跳傘 0 6
傷亡不詳 1 1
雲南相撞 1 1
機空中相 0 1
空中相撞 0 1
軍機相撞 1 1
Step.3
經過第二步驟處理後的字詞,假如新的詞頻 大於門檻值 時,則將被 當成是正確並合理的字詞。規則如下
ni
ni
DDCF Rn
k n
wrong IS
W ELSE
correct IS
W THEN R
DDCF IF
ni
ni n
ni
,..., 4 , 3 ,
=2
≥
(3-4)
如表 3-9 假如Rn設定為 1 時將保留DDCF ≥1的字詞
表3-9 DDCFni ≥Rn之字詞 雲南 37 飛機 2 相撞 13 墜毀 4 傷亡 2 中共 3 兩架 1 軍機 5 戰機 3 殲七 5 犧牲 1 雲南兩 3 機相撞 5 相撞墜 1 相撞一 1 副團長 3 兩殲七 1 雲南撞 1 相撞墜毀 3 傷亡不詳 1 雲南相撞 1 軍機相撞 1
如表 3-9 經過第三步驟所產生出來的二字詞經過觀察通常正確率是相當高 的,但產生出來的三字詞與四字詞就不一定完全是正確的,很容易出現由一個正 確的二字詞配上一個一字詞所組成的三字詞例如“雲南兩”、 “兩殲七”等,或者是 由兩個正確的二字詞例如“軍機相撞”或一個正確的三字詞配上一個一字詞所組成 的四字詞。為了解決此一問題,必須要再經過步驟四來消去這些可能不合理的三 字詞與四字詞。
Step.4
把所有第三步驟所產生出來的字詞再做一次比對,由於第三步驟所產生的二 字詞正確率相當高,所以將使用這群二字詞來過濾掉不正確的三字與四字詞。當 二字詞被包含在三字詞或四字詞時且此二字詞的重複次數大於三字詞或四字詞 一定倍數 M 時,則將這三字詞或四字詞判斷成是不正確的並消去此三字詞或四 字詞。規則如下
constant a
is M and a
n where
wrong IS
W ELSE correct
IS W
THEN
DDCF M
DDCF AND
W W IF
a n j
a n
j a n ni
j a n ni
, 2 , 1 , 2
) ( )
(
) ( )
(
=
=
×
≤
⊂
+ +
+ +
(3-5)
如表 3-10 雲南兩與相撞墜毀的 皆為 3,而雲南的 為 37,則將可 藉由此規則來判定雲南兩與相撞墜毀是否為正確的字詞。
DDCFni DDCFni
表3-10 少字詞取代多字詞
j a
W(n+ ) DDCF(n+a)i Wni DDCFni
雲南兩 3 雲南 37
機相撞 5 相撞 13
相撞墜 1 相撞 13
相撞一 1 相撞 13
兩殲七 1 殲七 5
雲南撞 1 雲南 37
相撞墜毀 3 (相撞,墜毀) (13,4)
傷亡不詳 1 傷亡 2
雲南相撞 1 (雲南,相撞) (37,13) 軍機相撞 1 (軍機,相撞) (5,13)
表3-11 系統輸出之正確字詞 正確字詞 DDCFni
雲南 37 飛機 2 相撞 13 墜毀 4 傷亡 2 中共 3 兩架 1 軍機 5 戰機 3 殲七 5 犧牲 1 副團長 3
重複同樣的方法,再利用剩下的三字詞去過濾四字詞,把錯誤的四字詞降至最 低。規則如下
constant a
is M and a
n where
wrong IS
W ELSE correct
IS W
THEN
DDCF M
DDCF AND
W W IF
a n j
a n
j a n ni
j a n ni
, 1 , 3
) ( )
(
) ( )
(
=
=
×
≤
⊂
+ +
+ +
(3-6)
如表 3-11,假如 M=0.1,最後則輸出所有正確並合理的字詞。
3.2 舊有詞庫的應用
對於某些字詞其在單一新聞事件中的詞頻很低。例如字詞W在每一新聞事件 中的詞頻都很低,但卻經常出現在不同的新聞事件,這類字詞無法經由本文提出 的新詞自動擷取方法所提取出來。為解決此一問題本文將利用舊有詞庫來擷取這 些新聞領域相關但詞頻較低的字詞。Shan He和Jie Zhu [13]提出使用Etropy的方 法,來擷取中文新詞。而本文將Entropy的方法用於擷取舊有詞庫中曾出現,但是 在新聞中詞頻出現較低的字詞。並加入所要建立的新聞類專業詞庫。
和 分別代表一字詞 出現在多字詞W 左邊和右邊的機率。
和V 則是所有出現在W 左邊和右邊之 的數目。 和 分別是其 Entropy值。
) ( Ww
P i P(Wwi) wi VL
R wi HL(W) HR(W)
∑
∑
∑
∑
=
=
=
=
=
×
−
=
=
×
−
=
R R
L L
V
i
i V
i
i i
R
V
i
i V
i
i i
L
Ww P Ww
P Ww
P W
H
W w P W
w P W
w P W
H
1 1
1 1
1 ) ( , ) ( log ) ( )
(
1 ) ( , ) ( log ) ( )
(
(3-7)
當 和 兩個值都很高時,代表連接W 的字詞 種類很多,W 將被 視為一單獨出現的正確字詞,反之當 或 其中一個數值很低時,代表
被包含在其他字詞裡面,不是一個完整且正確的字詞。
) (W
HL HR(W) wi
) (W
HL HR(W)
W
如表 3-12 假設“雲南”為舊有詞庫裡的字詞,經由比對新聞資料後就能計算出 其HL(W)=0.7782(表 3-13)和HR(W)=0.6388(表 3-14),並可依據 和
值來判斷其是否為一完整且正確的字詞。
) (W
HL HR(W)
表3-12 範例:wiW與Wwi
新聞標題 wiW Wwi
雲南兩飛機相撞墜毀一飛行員跳傘具體傷亡不詳 雲南兩 中共兩架軍機在雲南相撞墜毀 在雲南 雲南相 雲南相撞的戰機證實為兩架殲七副團長已犧牲 雲南相
雲南兩軍機相撞墜毀 雲南兩
兩機雲南撞毀 1 名飛行員跳傘傷亡不詳 機雲南 雲南撞 中國‧雲南軍機相撞一人死一飛行員跳傘受傷 ‧雲南 雲南軍 傳殲 10 試飛雲南撞機 飛雲南 雲南撞 雲南兩飛機空中相撞墜燬山頂傷亡情況正在調查 雲南兩 多維簡訊:雲南兩飛機相撞墜毀 1 飛行員跳傘逃生 :雲南 雲南兩 彝族聖藥稱能治艾滋雲南秘方開價 50 億美元 滋雲南 雲南秘
表3-13 wiW 之P( Wwi )與HL(W) W
wi 次數 P( Wwi ) −P(wiW)×logP(wiW) 在雲南 1 1/6 0.1297 機雲南 1 1/6 0.1297
‧雲南 1 1/6 0.1297 飛雲南 1 1/6 0.1297
:雲南 1 1/6 0.1297 滋雲南 1 1/6 0.1297
Total 6 1 0.7782
表3-14 Wwi之P(Wwi)與HR(W)
Wwi 次數 P(Wwi) −P(Wwi)×logP(Wwi) 雲南兩 4 4/10 0.1592 雲南相 2 2/10 0.1398 雲南撞 2 2/10 0.1398 雲南軍 1 1/10 0.1 雲南秘 1 1/10 0.1
Total 10 1 0.6388
本文將利用舊有詞庫裡的字詞去比對所有已收藏之新聞資料,將 和 皆很高的字詞擷取出來並加入所要建立的新聞類專業詞庫。
) (W HL )
(W HR
3.3 淘汰過時與錯誤的字詞
由於新聞資料龐大,藉由本文提出的方法將能擷取出大量的新詞,但當詞庫 擴大到一定的程度時,對於中文斷詞系統將會嚴重影響其執行效率。由於新詞的 擷取是透過統計的方法去計算詞頻並擷取詞頻較高的字詞,無法達到百分之百的 正確率。所建立的詞庫龐大如果依賴人工去過濾錯誤的字詞,將耗費大量資源。
而某些正確的字詞因為時代的變遷也許在未來將不在出現,這些錯誤或不合時宜 的字詞將佔據詞庫很大的空間,因此必須制定一有效的方法來解決這個問題。
Google news 提供的新聞服務,除了把同一新聞事件的不同新聞標題集合在一起,
也提供了新聞標題出現的時間,而考慮時間這個因素將能有效的過濾那些錯誤或 不合時宜的字詞,避免詞庫的無限膨脹。
本文所要建立的新聞類專業詞庫,除了字詞以外也記錄了每一字詞出現的時 間點,因此將能藉由考慮每一字詞出現的時間點來淘汰不適合的字詞。如圖 3-3,
假設現在時間為t,字詞 第一次出現的時間為 ,第二次出現的時間為 ,以 此類推, 為字詞 第
Wni t1 t2
tj Wni j次出現的時間點
t4
t3
t2
t 1 t5 LL tj t
圖3-3 字詞出現時間點
制訂一規則如下
j t T t
t t T
j j
1 2
1
= −
−
=
(3-8)
其中 代表字詞 已經多久沒出現過,而 代表字詞 出現的平均間隔時間。
考慮 與 值並結合模糊規則推論,用來判斷詞庫裡的字詞是否應當被淘汰掉,
將是一個合理的方法。如表 3-15 使用模糊規則將 與 模糊化並分為短、中、長,
而輸出分為五個等級。表 3-16 代表字詞的可靠度,可以用來決定哪些字詞是必須 保留下來而哪些字詞則必須淘汰掉。表 3-17 由於 與 分別被模糊化為三個等 級,總共有九種組合會出現。如表 3-16 這九種情況的字詞會被分為五個等級。
T1 Wni T2 Wni
T1 T2
T1 T2
T1 T2
表3-15 輸入之模糊推論
Linguistic variable Representation
Short S
Moderate M
Long L
表3-16 字詞可信度等級
Linguistic variable Representation Very Lowly Confidence Degree VLCD
Lowly Confidence Degree LCD Moderately Confidence Degree MCD Highly Confidence Degree HCD Very Highly Confidence Degree VHCD
表3-17 字詞可信度之分類方式 T1
字詞之可信度
S M L S VHCD HCD MCD M HCD MCD LCD T2
L MCD LCD VLCD