日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python 命名实体识别_使用Python和Keras的有关命名实体识别(NER)的完整教程

發(fā)布時間:2023/12/10 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 命名实体识别_使用Python和Keras的有关命名实体识别(NER)的完整教程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

假設(shè)您是報紙行業(yè)的編輯,每天都會收到數(shù)千個故事。您將如何找到與體育,政治等特定領(lǐng)域相關(guān)的故事?您會講完所有這些故事嗎?無權(quán)利?一個可以幫助您劃分為不同類別的系統(tǒng)怎么樣?該系統(tǒng)還可以執(zhí)行復(fù)雜的任務(wù),例如按城市劃分故事,識別故事中涉及的人員姓名,組織等。在這篇文章中,我將向您介紹一個名為命名實體識別(NER)的東西。NER的任務(wù)是在文本中查找單詞的類型。

簡介:

在自然語言處理(NLP)中,實體識別是常見問題之一。該實體稱為感興趣的文本部分。在NLP中,NER是一種從大型語料庫中提取相關(guān)信息并將這些實體分類為預(yù)定義類別(如位置,組織,名稱等)的方法。這是一個簡單的示例,可以解決與特定于領(lǐng)域的問題相關(guān)的復(fù)雜實體識別。

2.先決條件:

這篇文章假定您熟悉:機器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)的基本概念

在Python和Keras中運行的LSTM網(wǎng)絡(luò)

條件隨機場(CRF)

3.了解數(shù)據(jù):

我已經(jīng)使用了kaggle的數(shù)據(jù)集。該數(shù)據(jù)集是從GMB(格羅寧根意思銀行)語料庫中提取的,該語料庫經(jīng)過標(biāo)記,注釋和構(gòu)建,專門用于訓(xùn)練分類器以預(yù)測命名的實體(例如名稱,位置等)。

所有實體均使用BIO方案進(jìn)行標(biāo)記,其中每個實體標(biāo)簽以B或I字母開頭。B-表示實體的開始和I-內(nèi)部。不需要的單詞用0 –標(biāo)簽標(biāo)記。

下表顯示了有關(guān)單詞標(biāo)簽的詳細(xì)信息。

讀取CSV文件并顯示前10行。

如您所見,句子#表示句子編號,每個句子包含使用標(biāo)簽欄中的BIO方案標(biāo)記的單詞。

這個特定的數(shù)據(jù)集包含47959個句子和35178個唯一單詞。對于預(yù)處理步驟,您可以參考我的Github存儲庫。

讓我們顯示第一個句子。

4.使用條件隨機字段(CRF)的NER:

CRF用于預(yù)測使用上下文信息添加信息的序列,模型將使用這些信息進(jìn)行正確的預(yù)測。

以下是CRF的公式,其中y是輸出變量,X是輸入序列。

輸出序列被建模為特征函數(shù)的歸一化乘積。

4.1 CRF的功能準(zhǔn)備:

以下是NER在nltk中使用的默認(rèn)功能。還可以修改它以進(jìn)行自定義,并可以提高模型的準(zhǔn)確性。

加入我們的每周時事通訊以接收:最新文章和訪談

一個我事件:更新,免費通行證和優(yōu)惠碼

加入AI Time Journal計劃的機會

4.2用scikit-learn訓(xùn)練模型:

現(xiàn)在,我們可以使用sklearn-crfsuite提供的條件隨機字段實現(xiàn)來訓(xùn)練模型。初始化模型實例,并使用fit方法擬合訓(xùn)練數(shù)據(jù)。

4.3評估模型性能:

我們將使用精度,召回率和f1得分指標(biāo)來評估模型的性能,因為對于該數(shù)據(jù)集而言,精度不是一個好的指標(biāo),因為每個類中的數(shù)據(jù)點數(shù)量均不相等。

結(jié)果看起來不錯。

5.帶有雙向LSTM – CRF的NER:

在本節(jié)中,我們將雙向LSTM模型與CRF模型結(jié)合在一起。這種方法稱為Bi LSTM-CRF模型,這是命名實體識別的最新方法。LSTM(長期短期記憶)是一種特殊類型的遞歸神經(jīng)網(wǎng)絡(luò),用于處理數(shù)據(jù)序列。

5.1定義模型參數(shù):

如果您知道這些參數(shù)的含義,那么您可以進(jìn)行嘗試并獲得良好的結(jié)果。

5.2模型架構(gòu):

現(xiàn)在我們可以定義遞歸神經(jīng)網(wǎng)絡(luò)架構(gòu),并為LSTM網(wǎng)絡(luò)提供訓(xùn)練數(shù)據(jù)。

我已經(jīng)使用了keras callback()函數(shù)。

5.3可視化模型性能:

在這里,我們將繪制訓(xùn)練和驗證集的損失與歷時之間的圖。

分類報告。

您可以從上一節(jié)中看到該模型優(yōu)于性能。

6.評估:

讓我們嘗試從測試數(shù)據(jù)語句中識別出模型在訓(xùn)練過程中看不到的實體,以了解模型的性能如何。

每次執(zhí)行時,以下代碼都會從測試數(shù)據(jù)中隨機選擇句子,并為其預(yù)測標(biāo)簽。

現(xiàn)在,我們可以輕松地將模型的預(yù)測與實際預(yù)測進(jìn)行比較。

要點:

我們必須了解這里訓(xùn)練的模型只能識別位置,人等常見實體。可以建立一個復(fù)雜的模型來預(yù)測化學(xué)實體,藥物等,但是要完成這樣的任務(wù),制備和標(biāo)記該數(shù)據(jù)集將具有挑戰(zhàn)性。

7.結(jié)論和未來工作:

這是解決此問題的首選方法,可以通過以下方法進(jìn)行修改以改進(jìn)解決方案:更改模型超參數(shù),例如時期數(shù),嵌入尺寸,批處理大小,退出率,激活等。

使用更大的數(shù)據(jù)集。在這里,我們僅使用了47959個句子,這些句子很少為實體識別問題建立良好的模型。

使用預(yù)訓(xùn)練的詞嵌入。

對LSTM使用字符級嵌入。

BERT模型的微調(diào)。

通過添加在測試時出現(xiàn)的未知標(biāo)記來改進(jìn)詞匯表,方法是替換我們訓(xùn)練模型時使用的所有不常見詞。為簡便起見,我們還沒有這樣做。

總結(jié)

以上是生活随笔為你收集整理的python 命名实体识别_使用Python和Keras的有关命名实体识别(NER)的完整教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。