iT邦幫忙

0

NER[實體命名] 提取人名

  • 分享至 

  • xImage
  •  

CKIP 來自中研院的斷詞相較於jieba而言,具有較豐富的詞類標籤且在斷詞和詞性標註的表現大幅超越jieba

目前CkipTagger能辨識11 類一般領域專有名詞及 7 類數量詞,包含:
• 人名、團體、設施、組織、地理、地點、商品、事件、藝術品、法律、語言、日期、時間、比例、錢、數量、序數、數詞。
Caa 對 等 連 接 詞,如:和、跟 VA 動作不及物動詞 VH 狀態不及物動詞
Na 普通名詞 VAC 動作使動動詞 VHC 狀態使動動詞 /
Nb 專有名稱 VB 動作類及物動詞 VI 狀態類及物動詞
Nc 地方詞 VC 動作及物動詞 VJ 狀態及物動詞
Ncd 位置詞 VCL 動作接地方賓語
動詞 VK 狀態句賓動詞
Nd 時間詞 VD 雙賓動詞 VL 狀態謂賓動詞
Neu 數詞定詞 VE 動作句賓動詞 V_2 有
Nes 特指定詞 VF 動作謂賓動詞
Neqa 數量定詞 VG 分類動詞
在 NER 的研究中,除了時間、日期、比率、貨幣較具有規律性,因此容易識別外,人名、地名、組織名之組成,則常隨時間演化而難以指認,相關新生詞的產出速率,不僅無法透過詞庫斷詞擷取,也不易規則化。

我們可藉由ckip的詞性和語法規則來解決

1人名規則可歸納為三大組合 Na+Nb Nb+Nb Nb+V

(1)先透過ckip導入 斷詞 詞性 實體命名 功能
from ckiptagger import WS, POS, NER
ws = WS("./data")
pos = POS("./data")
ner = NER("./data")
tokenized_result = ws([text1 ])
pos_result = pos(tokenized_result)
entity_result = ner(tokenized_result, pos_result)
(2)取出為Nb的詞性並計算其長度
(3)語法規則
person_list=[]
for before,after in two_tuple_list:
if ('Nb' in before) and ('V' in after or 'Nb' in after):
person_list.append(before.split('N')[0])
if ('Na' in before) and 'Nb' in after:
person_list.append(before.split('N')[0])

2人名語彙鏈演算法

                詞性為 Nb 且為單一或二個字元,則進行與後續字元結合的頻率計算

3維基百科糾錯

參考資料 https://www.lac.org.tw/sites/default/files/field_files/publish/attach241_1.pdf


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言