《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數據挖掘》筆記(一)擴展你的數據挖掘工具箱BrianZhang:《Python數據挖掘》筆記(二)關聯規則挖掘BrianZhang:《Python數據挖掘》筆記(三)實體匹配BrianZhang:《Python數據挖掘》筆記(四) 網路分析BrianZhang:《Python數據挖掘》筆記(五) 文本情緒分析BrianZhang:《Python數據挖掘》筆記(七) 自動化文本摘要BrianZhang:《Python數據挖掘》筆記(八)文本中的主題建模BrianZhang:《Python數據挖掘》筆記(九)挖掘數據異常軟體開發之路推薦閱讀:
※我用flask-sqlalchemy為什麼無法更新我的sqlite文件?
※Python混合類型計算中的一點疑惑?
※Python-numpy包中多維數組轉置,transpose.swapaxes的軸編號(axis)如何理解?
※怎樣才能寫出pythonic的代碼?
※Python實踐2-Paramiko實現互信主機間文件傳輸