一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

命名實(shí)體識(shí)別實(shí)踐 - CRF

深度學(xué)習(xí)自然語(yǔ)言處理 ? 來(lái)源:ChallengeHub ? 作者:致Great ? 2022-03-24 13:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1

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

CRF,英文全稱為Conditional Random Field, 中文名為條件隨機(jī)場(chǎng),是給定一組輸入隨機(jī)變量條件下另一組輸出隨機(jī)變量的條件概率分布模型,其特點(diǎn)是假設(shè)輸出隨機(jī)變量構(gòu)成馬爾可夫(Markov)隨機(jī)場(chǎng)。

較為簡(jiǎn)單的條件隨機(jī)場(chǎng)是定義在線性鏈上的條件隨機(jī)場(chǎng),稱為線性鏈條件隨機(jī)場(chǎng)(linear chain conditional random field)。

線性鏈條件隨機(jī)場(chǎng)可以用于序列標(biāo)注等問(wèn)題,需要解決的命名實(shí)體識(shí)別(NER)任務(wù)正好可通過(guò)序列標(biāo)注方法解決。

a98099ce-a359-11ec-952b-dac502259ad0.png

在條件概率模型P(Y|X)中,Y是輸出變量,表示標(biāo)記序列(或狀態(tài)序列),X是輸入變量,表示需要標(biāo)注的觀測(cè)序列。

訓(xùn)練時(shí),利用訓(xùn)練數(shù)據(jù)集通過(guò)極大似然估計(jì)或正則化的極大似然估計(jì)得到條件概率模型p(Y|X);
預(yù)測(cè)時(shí),對(duì)于給定的輸入序列x,求出條件概率p(y|x)最大的輸出序列y

利用線性鏈CRF來(lái)做實(shí)體識(shí)別的時(shí)候,需要假設(shè)每個(gè)標(biāo)簽 的預(yù)測(cè)同時(shí)依賴于先前預(yù)測(cè)的標(biāo)簽 和 的詞語(yǔ)輸入序列,如下圖所示a999a4dc-a359-11ec-952b-dac502259ad0.png每個(gè) NER標(biāo)簽僅依賴于其直接前前繼和后繼標(biāo)簽以及 x

CRF是一種選擇因子的特定方式,換句話說(shuō),就是特征函數(shù)。定義因子的 CRF 方法是采用實(shí)值特征函數(shù) 與參數(shù) 和 的線性組合的指數(shù),下面是特征函數(shù)與權(quán)重參數(shù)在時(shí)間步上是對(duì)應(yīng)的:

關(guān)于Linear-chain CRF的訓(xùn)練推導(dǎo),可以查看文章:條件隨機(jī)場(chǎng)CRF(一)從隨機(jī)場(chǎng)到線性鏈條件隨機(jī)場(chǎng)

2

實(shí)踐1:基于CRF++實(shí)現(xiàn)NER

CRF++簡(jiǎn)介

CRF++是著名的條件隨機(jī)場(chǎng)的開源工具,也是目前綜合性能最佳的CRF工具,采用C++語(yǔ)言編寫而成。其最重要的功能我認(rèn)為是采用了特征模板。這樣就可以自動(dòng)生成一系列的特征函數(shù),而不用我們自己生成特征函數(shù),我們要做的就是尋找特征,比如詞性等。a9b5538a-a359-11ec-952b-dac502259ad0.png官網(wǎng)地址:http://taku910.github.io/crfpp/

安裝

CRF++的安裝可分為Windows環(huán)境和Linux環(huán)境下的安裝。關(guān)于Linux環(huán)境下的安裝,可以參考文章:CRFPP/CRF++編譯安裝與部署 。在Windows中CRF++不需要安裝,下載解壓CRF++0.58文件即可以使用

a9d1495a-a359-11ec-952b-dac502259ad0.png

訓(xùn)練語(yǔ)料創(chuàng)建

在訓(xùn)練之前需要將標(biāo)注數(shù)據(jù)轉(zhuǎn)化為CRF++訓(xùn)練格式文件:

分兩列,第一列是字符,第二例是對(duì)應(yīng)的標(biāo)簽,中間用 分割。

比如標(biāo)注方案采用BISO,效果如下:

a9efe72a-a359-11ec-952b-dac502259ad0.png

模板

模板是使用CRF++的關(guān)鍵,它能幫助我們自動(dòng)生成一系列的特征函數(shù),而不用我們自己生成特征函數(shù),而特征函數(shù)正是CRF算法的核心概念之一。一個(gè)簡(jiǎn)單的模板文件如下:aa0ca608-a359-11ec-952b-dac502259ad0.png在這里,我們需要好好理解下模板文件的規(guī)則。T**:%x[#,#]中的T表示模板類型,兩個(gè)"#"分別表示相對(duì)的行偏移與列偏移。一共有兩種模板:aa273c0c-a359-11ec-952b-dac502259ad0.png

訓(xùn)練

crf_learn-f3-c4.0-m100templatetrain.datacrf_model>train.rst

其中,template為模板文件,train.data為訓(xùn)練語(yǔ)料,-t表示可以得到一個(gè)model文件和一個(gè)model.txt文件,其他可選參數(shù)說(shuō)明如下:

-f,–freq=INT使用屬性的出現(xiàn)次數(shù)不少于INT(默認(rèn)為1)

-m,–maxiter=INT設(shè)置INT為L(zhǎng)BFGS的最大迭代次數(shù)(默認(rèn)10k)

-c,–cost=FLOAT設(shè)置FLOAT為代價(jià)參數(shù),過(guò)大會(huì)過(guò)度擬合(默認(rèn)1.0)

-e,–eta=FLOAT設(shè)置終止標(biāo)準(zhǔn)FLOAT(默認(rèn)0.0001)

-C,–convert將文本模式轉(zhuǎn)為二進(jìn)制模式

-t,–textmodel為調(diào)試建立文本模型文件

-a,–algorithm=(CRF|MIRA)選擇訓(xùn)練算法,默認(rèn)為CRF-L2

-p,–thread=INT線程數(shù)(默認(rèn)1),利用多個(gè)CPU減少訓(xùn)練時(shí)間

-H,–shrinking-size=INT設(shè)置INT為最適宜的跌代變量次數(shù)(默認(rèn)20)

-v,–version顯示版本號(hào)并退出

-h,–help顯示幫助并退出

輸出信息

iter:迭代次數(shù)。當(dāng)?shù)螖?shù)達(dá)到maxiter時(shí),迭代終止

terr:標(biāo)記錯(cuò)誤率

serr:句子錯(cuò)誤率

obj:當(dāng)前對(duì)象的值。當(dāng)這個(gè)值收斂到一個(gè)確定值的時(shí)候,訓(xùn)練完成

diff:與上一個(gè)對(duì)象值之間的相對(duì)差。當(dāng)此值低于eta時(shí),訓(xùn)練完成

預(yù)測(cè)

在訓(xùn)練完模型后,我們可以使用訓(xùn)練好的模型對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè),預(yù)測(cè)命令格式如下:

crf_test-mcrf_modeltest.data>test.rstt

-m model表示使用我們剛剛訓(xùn)練好的model模型,預(yù)測(cè)的數(shù)據(jù)文件為test.data> test.rstt 表示將預(yù)測(cè)后的數(shù)據(jù)寫入到test.rstt 中。aa465aa6-a359-11ec-952b-dac502259ad0.png

3

實(shí)踐2:基于sklearn_crfsuite實(shí)現(xiàn)NER

sklearn_crfsuite簡(jiǎn)介

sklearn-crfsuite是基于CRFsuite庫(kù)的一款輕量級(jí)的CRF庫(kù)。該庫(kù)兼容sklearn的算法,因此可以結(jié)合sklearn庫(kù)的算法設(shè)計(jì)實(shí)體識(shí)別系統(tǒng)。sklearn-crfsuite不僅提供了條件隨機(jī)場(chǎng)的訓(xùn)練和預(yù)測(cè)方法還提供了評(píng)測(cè)方法。

https://sklearn-crfsuite.readthedocs.io/en/latest/#

aa5dd37a-a359-11ec-952b-dac502259ad0.png

安裝:pip install sklearn-crfsuite

特征與模型創(chuàng)建

特征構(gòu)造:aa777b72-a359-11ec-952b-dac502259ad0.png模型初始化

crf_model=sklearn_crfsuite.CRF(algorithm='lbfgs',c1=0.25,c2=0.018,max_iterations=100,
all_possible_transitions=True,verbose=True)
crf_model.fit(X_train,y_train)

完整代碼如下:

importre
importsklearn_crfsuite
fromsklearn_crfsuiteimportmetrics
importjoblib
importyaml
importwarnings

warnings.filterwarnings('ignore')



defload_data(data_path):
data=list()
data_sent_with_label=list()
withopen(data_path,mode='r',encoding="utf-8")asf:
forlineinf:
ifline.strip()=="":
data.append(data_sent_with_label.copy())
data_sent_with_label.clear()
else:
data_sent_with_label.append(tuple(line.strip().split("")))
returndata

defword2features(sent,i):
word=sent[i][0]

features={
'bias':1.0,
'word':word,
'word.isdigit()':word.isdigit(),
}
ifi>0:
word1=sent[i-1][0]
words=word1+word
features.update({
'-1:word':word1,
'-1:words':words,
'-1:word.isdigit()':word1.isdigit(),
})
else:
features['BOS']=True

ifi>1:
word2=sent[i-2][0]
word1=sent[i-1][0]
words=word1+word2+word
features.update({
'-2:word':word2,
'-2:words':words,
'-3:word.isdigit()':word1.isdigit(),
})

ifi>2:
word3=sent[i-3][0]
word2=sent[i-2][0]
word1=sent[i-1][0]
words=word1+word2+word3+word
features.update({
'-3:word':word3,
'-3:words':words,
'-3:word.isdigit()':word1.isdigit(),
})

ifi

訓(xùn)練效果如下:

labels=list(crf_model.classes_)
labels.remove("O")
y_pred=crf_model.predict(X_dev)
metrics.flat_f1_score(y_dev,y_pred,
average='weighted',labels=labels)
sorted_labels=sorted(labels,key=lambdaname:(name[1:],name[0]))
print(metrics.flat_classification_report(
y_dev,y_pred,labels=sorted_labels,digits=3
))
aa8c45de-a359-11ec-952b-dac502259ad0.png

完整代碼 https://www.heywhale.com/home/competition/6216f74572960d0017d5e691/content/

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Arm產(chǎn)品命名體系的演變

    繼 Arm 首席執(zhí)行官 Rene Haas 宣布 Arm 推出新的產(chǎn)品命名體系后,本文將為你詳解新的計(jì)算平臺(tái)名稱,以及新命名體系內(nèi)的新 IP 名稱標(biāo)識(shí)。
    的頭像 發(fā)表于 06-19 10:38 ?402次閱讀
    Arm產(chǎn)品<b class='flag-5'>命名</b>體系的演變

    旺詮合金電阻的命名規(guī)則

    旺詮合金電阻的命名規(guī)則相對(duì)嚴(yán)謹(jǐn)且包含豐富的信息,通常包括電阻值、精度、溫度系數(shù)和功率等級(jí)等關(guān)鍵參數(shù)。以下是對(duì)旺詮合金電阻命名規(guī)則的詳細(xì)解讀: 一、電阻值 電阻值是電阻本身的物理特性,通常以歐姆
    的頭像 發(fā)表于 05-20 11:22 ?223次閱讀
    旺詮合金電阻的<b class='flag-5'>命名</b>規(guī)則

    順絡(luò)貼片電容規(guī)格都是怎么命名

    順絡(luò)貼片電容的規(guī)格命名通常包含一系列字符,這些字符用于標(biāo)識(shí)電容的關(guān)鍵規(guī)格和屬性。雖然不同制造商的命名規(guī)則可能有所不同,但一般來(lái)說(shuō),順絡(luò)貼片電容的命名規(guī)則可能包含以下參數(shù): 1、尺寸:這部分通常
    的頭像 發(fā)表于 04-29 15:31 ?288次閱讀
    順絡(luò)貼片電容規(guī)格都是怎么<b class='flag-5'>命名</b>的

    風(fēng)華電容命名方法深度解析

    在電子元器件領(lǐng)域,風(fēng)華電容憑借其清晰的命名體系、全面的技術(shù)參數(shù)和廣泛的應(yīng)用場(chǎng)景,成為國(guó)內(nèi)外市場(chǎng)的標(biāo)志性品牌。本文將從命名規(guī)則、技術(shù)參數(shù)、行業(yè)應(yīng)用及市場(chǎng)優(yōu)勢(shì)四個(gè)維度,深度解析風(fēng)華電容的技術(shù)特性
    的頭像 發(fā)表于 04-11 11:58 ?377次閱讀

    EMC電機(jī)控制器測(cè)試整改:從問(wèn)題識(shí)別到優(yōu)化實(shí)踐

    深圳南柯電子|EMC電機(jī)控制器測(cè)試整改:從問(wèn)題識(shí)別到優(yōu)化實(shí)踐
    的頭像 發(fā)表于 03-20 09:34 ?425次閱讀
    EMC電機(jī)控制器測(cè)試整改:從問(wèn)題<b class='flag-5'>識(shí)別</b>到優(yōu)化<b class='flag-5'>實(shí)踐</b>

    PCB最全封裝命名規(guī)范

    范圍本規(guī)范適用于主流EDA軟件在PCB設(shè)計(jì)前的封裝建庫(kù)命名。 獲取完整文檔資料可下載附件哦!!??!
    發(fā)表于 03-12 13:26

    BEM+Sass結(jié)合使用的最佳實(shí)踐

    和開發(fā)效率。 一、BEM命名規(guī)范 塊(Block) :代表頁(yè)面中的獨(dú)立組件或模塊,具有獨(dú)立的樣式和功能。塊名應(yīng)簡(jiǎn)潔明了,易于識(shí)別。 元素(Element) :塊內(nèi)部的組成部分,與塊有直接的從屬關(guān)系。元素名應(yīng)使用雙下劃線(__)與塊名連接。 修飾符(Modifier) :用
    的頭像 發(fā)表于 02-12 16:50 ?593次閱讀

    做ADS解碼專用 實(shí)踐ADS1605

    實(shí)踐ADS1605 因?yàn)樵O(shè)計(jì)要做ADS解碼專用,所以找來(lái)找去用到了ADS1605這個(gè)芯片,并口設(shè)計(jì),信號(hào)可以識(shí)別小信號(hào)的。 因?yàn)橘I的是專業(yè)板子,所以上面都集成好了。 板子流程圖。 用到解碼流程圖 效果還不錯(cuò),就是數(shù)據(jù)容易受到干擾的。
    發(fā)表于 01-21 07:58

    貼片共模電感的命名規(guī)格、特征及應(yīng)用

    命名規(guī)格、主要特征及其應(yīng)用領(lǐng)域。 一、命名規(guī)格 貼片共模電感的命名規(guī)格通常遵循一定的行業(yè)規(guī)范,以便工程師能夠快速識(shí)別并理解產(chǎn)品的基本參數(shù)。以TDK品牌的某型號(hào)共模電感為例,其
    的頭像 發(fā)表于 11-27 15:31 ?1232次閱讀

    臺(tái)灣華科貼片電容的命名及封裝

    臺(tái)灣華科(YAGEO)貼片電容的命名規(guī)則及封裝方式相對(duì)復(fù)雜但富有邏輯性,以下是對(duì)其命名規(guī)則及封裝方式的詳細(xì)歸納: 命名規(guī)則 臺(tái)灣華科貼片電容的命名通常包含多個(gè)部分,每個(gè)部分代表不同的信
    的頭像 發(fā)表于 11-13 14:59 ?885次閱讀
    臺(tái)灣華科貼片電容的<b class='flag-5'>命名</b>及封裝

    風(fēng)華貼片瓷介電容型號(hào)識(shí)別命名方法

    風(fēng)華貼片瓷介電容的型號(hào)識(shí)別命名方法主要包括以下幾個(gè)關(guān)鍵部分,以下將按照清晰的結(jié)構(gòu)進(jìn)行分點(diǎn)表示和歸納: 1、封裝尺寸 : 常見的封裝尺寸包括0201、0402、0603、0805、1206等,這些
    的頭像 發(fā)表于 11-05 16:16 ?1141次閱讀
    風(fēng)華貼片瓷介電容型號(hào)<b class='flag-5'>識(shí)別</b>及<b class='flag-5'>命名</b>方法

    云計(jì)算平臺(tái)的最佳實(shí)踐

    云計(jì)算平臺(tái)的最佳實(shí)踐涉及多個(gè)方面,以確保高效、安全、可擴(kuò)展和成本優(yōu)化的云環(huán)境。以下是一些關(guān)鍵的最佳實(shí)踐: 一、云成本優(yōu)化 詳細(xì)分析云使用情況 :通過(guò)細(xì)致的監(jiān)控和分析,識(shí)別低ROI(投資回報(bào)率)的環(huán)節(jié)
    的頭像 發(fā)表于 10-24 09:17 ?709次閱讀

    GaN晶體管的命名、類型和結(jié)構(gòu)

    電子發(fā)燒友網(wǎng)站提供《GaN晶體管的命名、類型和結(jié)構(gòu).pdf》資料免費(fèi)下載
    發(fā)表于 09-12 10:01 ?0次下載
    GaN晶體管的<b class='flag-5'>命名</b>、類型和結(jié)構(gòu)

    大揭秘!電源模塊命名有這么多講究?

    電源模塊命名方式
    的頭像 發(fā)表于 08-28 09:35 ?1065次閱讀
    大揭秘!電源模塊<b class='flag-5'>命名</b>有這么多講究?

    三星電容命名規(guī)則,了解三星電容參數(shù) 知識(shí)篇

    三星電容的命名規(guī)則是什么?每個(gè)不同品牌的電容都有自己的命名規(guī)則。當(dāng)然,在市場(chǎng)上的電容命名規(guī)則都是大同小異的。近年來(lái),三星電容在市場(chǎng)上的銷售量可謂是與日俱增。今天就帶大家一起來(lái)了解一下三星電容
    的頭像 發(fā)表于 07-24 15:00 ?1394次閱讀