《Python數據挖掘》筆記(六) 文本中的命名實體識別

Python數據挖掘:概念、方法與實踐。Megan Squire著,姚軍譯,機械工業出版社,2017年。

筆記中有些內容直接引用原書。

=======================================================

本章將學習:

a. 命名實體的定義,以及搜索它們的原因。

b. 尋找命名實體的不同技術及各自的優點。

c. 如何找出文本中的命名實體,包括如何將它們與其他標記的詞性區分開來。

d. 如何在真實數據上應用這些命名實體識別技術。

e. 如何確定命名實體識別是否成功。

6.1 為什麼尋找命名實體?

命名實體識別(NER)是找出較大文本體中的某些人、地點和事物的行為。命名實體識別絕對是由應用目的驅動的。如果要顯示的實體數量和類型很少,可以使用簡單的模式匹配,和辭彙表進行比較。另一方面,具有更高目標的NER應用將試圖在不依靠預設已知實體列表的情況下提取命名實體。

面臨的難題包括:電影名稱、科技縮略語、公司縮略語等。

6.2 命名實體識別技術

大小寫狀態和詞性雖然不完美,但是可以很好地指示文本中哪些詞語或者短語可能是命名實體。下一個關鍵步驟是找出名詞和名詞短語,這是命名實體的極佳標誌。

詞性標記。要找出句子中每個單詞的詞性(POS),可以用稱為詞性標記器的軟體。

語料庫是一個文本集合,帶註解的語料庫是已經標記的語料庫,例如標記了每個單詞的正確詞性。

著名的如布朗語料庫,1961年創建,包含500個文檔,每個文檔約2000個詞,總共標記了大約100萬個詞。

NTLK默認使用的語料庫稱為賓州樹圖(Penn Treebank)標記器。

命名實體分類:常用類型包括個人、組織、GPE(地理學或者地點實體)等。

6.3 NER系統的構建和評估

NER系統的構建從以下步驟開始:

a. 將文檔分割為句子;

b. 將句子分割為單詞;

c. 標記每個單詞的詞性;

d. 從標記單詞集中識別命名實體;

e. 識別每個命名實體的分類。

第5步確定實體正確分類,往往要用到機器學習演算法。

NER和部分匹配

嚴格評分、寬鬆評分(將部分匹配當成真陽性)、部分評分(為部分匹配建立規則而進行打分)。

CORRET = 猜對邊界和分類之和

GUESSED = 猜測的邊界和分類之和

POSSIBLE = 邊界的可能猜測數和分類的可能猜測數之和

精度 = CORRECT / GUESSED

召回率 = CORRECT / POSSIBLE

6.4 命名實體識別項目

簡單的NER工具,Github代碼

6.5 總結

BrianZhang:《Python數據挖掘》筆記(一)擴展你的數據挖掘工具箱zhuanlan.zhihu.com圖標BrianZhang:《Python數據挖掘》筆記(二)關聯規則挖掘zhuanlan.zhihu.com圖標BrianZhang:《Python數據挖掘》筆記(三)實體匹配zhuanlan.zhihu.com圖標BrianZhang:《Python數據挖掘》筆記(四) 網路分析zhuanlan.zhihu.com圖標BrianZhang:《Python數據挖掘》筆記(五) 文本情緒分析zhuanlan.zhihu.com圖標BrianZhang:《Python數據挖掘》筆記(七) 自動化文本摘要zhuanlan.zhihu.com圖標BrianZhang:《Python數據挖掘》筆記(八)文本中的主題建模zhuanlan.zhihu.com圖標BrianZhang:《Python數據挖掘》筆記(九)挖掘數據異常zhuanlan.zhihu.com圖標軟體開發之路zhuanlan.zhihu.com圖標
推薦閱讀:

我用flask-sqlalchemy為什麼無法更新我的sqlite文件?
Python混合類型計算中的一點疑惑?
Python-numpy包中多維數組轉置,transpose.swapaxes的軸編號(axis)如何理解?
怎樣才能寫出pythonic的代碼?
Python實踐2-Paramiko實現互信主機間文件傳輸

TAG:數據挖掘 | Python |