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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

python

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

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

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

簡(jiǎn)介:

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

2.先決條件:

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

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

條件隨機(jī)場(chǎng)(CRF)

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

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

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

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

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

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

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

讓我們顯示第一個(gè)句子。

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

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

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

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

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

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

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

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

加入AI Time Journal計(jì)劃的機(jī)會(huì)

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

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

4.3評(píng)估模型性能:

我們將使用精度,召回率和f1得分指標(biāo)來(lái)評(píng)估模型的性能,因?yàn)閷?duì)于該數(shù)據(jù)集而言,精度不是一個(gè)好的指標(biāo),因?yàn)槊總€(gè)類中的數(shù)據(jù)點(diǎn)數(shù)量均不相等。

結(jié)果看起來(lái)不錯(cuò)。

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

在本節(jié)中,我們將雙向LSTM模型與CRF模型結(jié)合在一起。這種方法稱為Bi LSTM-CRF模型,這是命名實(shí)體識(shí)別的最新方法。LSTM(長(zhǎng)期短期記憶)是一種特殊類型的遞歸神經(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),并為L(zhǎng)STM網(wǎng)絡(luò)提供訓(xùn)練數(shù)據(jù)。

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

5.3可視化模型性能:

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

分類報(bào)告。

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

6.評(píng)估:

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

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

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

要點(diǎn):

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

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

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

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

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

對(duì)LSTM使用字符級(jí)嵌入。

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

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

總結(jié)

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

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