bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

如何分析基于結(jié)構(gòu)化平均感知機(jī)的分詞器Java實(shí)現(xiàn)

本篇文章給大家分享的是有關(guān)如何分析基于結(jié)構(gòu)化平均感知機(jī)的分詞器Java實(shí)現(xiàn),小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

創(chuàng)新互聯(lián)是一家專業(yè)提供涿鹿企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為涿鹿眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。

基于結(jié)構(gòu)化平均感知機(jī)的分詞器Java實(shí)現(xiàn)

最近高產(chǎn)似母豬,寫了個(gè)基于AP的中文分詞器,在Bakeoff-05的MSR語(yǔ)料上F值有96.11%。最重要的是,只訓(xùn)練了5個(gè)迭代;包含語(yǔ)料加載等IO操作在內(nèi),整個(gè)訓(xùn)練一共才花費(fèi)23秒。應(yīng)用裁剪算法去掉模型中80%的特征后,F(xiàn)值才下降不到0.1個(gè)百分點(diǎn),體積控制在11兆。如果訓(xùn)練一百個(gè)迭代,F(xiàn)值可達(dá)到96.31%,訓(xùn)練時(shí)間兩分多鐘。

數(shù)據(jù)在一臺(tái)普通的IBM兼容機(jī)上得到:

如何分析基于結(jié)構(gòu)化平均感知機(jī)的分詞器Java實(shí)現(xiàn)

本模塊已集成到HanLP 1.6以上版本開(kāi)源,文檔位于項(xiàng)目wiki中,歡迎使用!【hanlp1.7新版本已經(jīng)發(fā)布,可以去新版本查到看使用】

結(jié)構(gòu)化預(yù)測(cè)

關(guān)于結(jié)構(gòu)化預(yù)測(cè)和非結(jié)構(gòu)化預(yù)測(cè)的區(qū)別一張講義說(shuō)明如下:

如何分析基于結(jié)構(gòu)化平均感知機(jī)的分詞器Java實(shí)現(xiàn)

更多知識(shí)請(qǐng)參考Neubig的講義《The Structured Perceptron》。

本文實(shí)現(xiàn)的AP分詞器預(yù)測(cè)是整個(gè)句子的BMES標(biāo)注序列,當(dāng)然屬于結(jié)構(gòu)化預(yù)測(cè)問(wèn)題了。

感知機(jī)

二分類

感知機(jī)的基礎(chǔ)形式如《統(tǒng)計(jì)學(xué)習(xí)方法》所述,是定義在一個(gè)超平面上的線性二分類模型。作為原著第二章,實(shí)在是簡(jiǎn)單得不能再簡(jiǎn)單了。然而實(shí)際運(yùn)用中,越簡(jiǎn)單的模型往往生命力越頑強(qiáng)。

這里唯一需要補(bǔ)充的是,感知機(jī)是個(gè)在線學(xué)習(xí)模型,學(xué)習(xí)一個(gè)訓(xùn)練實(shí)例后,就可以更新整個(gè)模型。

多分類

怎么把二分類拓展到多分類呢?可以用多個(gè)分類器,對(duì)于BMES這4種分類,就是4個(gè)感知機(jī)了。每個(gè)感知機(jī)分別負(fù)責(zé)分辨“是不是B”“是不是M”“是不是E”“是不是S”這4個(gè)二分類問(wèn)題。在實(shí)現(xiàn)中,當(dāng)然不必傻乎乎地創(chuàng)建4個(gè)感知機(jī)啦。把它們的權(quán)值向量拼接在一起,就可以輸出“是B的分?jǐn)?shù)”“是M的分?jǐn)?shù)”“是E的分?jǐn)?shù)”“是S的分?jǐn)?shù)”了。取其最大者,就可以初步實(shí)現(xiàn)多分類。但在分詞中,還涉及到轉(zhuǎn)移特征和HMM-viterbi搜索算法等,留到下文再說(shuō)。

平均感知機(jī)

平均感知機(jī)指的是記錄每個(gè)特征權(quán)值的累計(jì)值,最后平均得出最終模型的感知機(jī)。為什么要大費(fèi)周章搞個(gè)平均算法出來(lái)呢?

前面提到過(guò),感知機(jī)是個(gè)在線學(xué)習(xí)模型,學(xué)習(xí)一個(gè)訓(xùn)練實(shí)例后,就可以更新整個(gè)模型。假設(shè)有10000個(gè)實(shí)例,模型在前9999個(gè)實(shí)例的學(xué)習(xí)中都完美地得到正確答案,說(shuō)明此時(shí)的模型接近完美了??墒亲詈笠粋€(gè)實(shí)例是個(gè)噪音點(diǎn),樸素感知機(jī)模型預(yù)測(cè)錯(cuò)誤后直接修改了模型,導(dǎo)致前面9999個(gè)實(shí)例預(yù)測(cè)錯(cuò)誤,模型訓(xùn)練前功盡棄。

有什么解決方案呢?一種方案是投票式的,即記錄每個(gè)模型分類正確的次數(shù),作為它的得票。訓(xùn)練結(jié)束時(shí)取得票最高的模型作為最終模型。但這種算法是不實(shí)際的,如果訓(xùn)練5個(gè)迭代,10000個(gè)實(shí)例,那么就需要儲(chǔ)存50000個(gè)模型及其票數(shù),太浪費(fèi)了。

最好用的方法是平均感知機(jī),將這50000個(gè)模型的權(quán)值向量累加起來(lái),最后除以50000就行了,這樣任何時(shí)候我們只額外記錄了一個(gè)累加值,非常高效了。關(guān)于平均感知機(jī)的詳情請(qǐng)參考《200行Python代碼實(shí)現(xiàn)感知機(jī)詞性標(biāo)注器》。雖然那篇文章是講解詞性標(biāo)注的,但相信作為萬(wàn)物靈長(zhǎng)的讀者一定擁有舉一反三的泛化能力。

語(yǔ)言模型

HMM

我們不是在講解感知機(jī)分詞嗎?怎么跟HMM扯上關(guān)系了?

其實(shí)任何基于序列標(biāo)注的分詞器都離不開(kāi)隱馬爾科夫鏈,即BMES這四個(gè)標(biāo)簽之間的Bigram(乃至更高階的n-gram)轉(zhuǎn)移概率。作為其中一員的AP分詞器,也不例外地將前一個(gè)字符的標(biāo)簽作為了一個(gè)特征。該特征對(duì)預(yù)測(cè)當(dāng)前的標(biāo)簽毫無(wú)疑問(wèn)是有用的,比如前一個(gè)標(biāo)簽是B,當(dāng)前標(biāo)簽就絕不可能是S。

這種類似于y[i-1]的特征在線性圖模型中一般稱為轉(zhuǎn)移特征,而那些不涉及y[i-1]的特征通常稱為狀態(tài)特征。

viterbi

由于AP分詞器用到了轉(zhuǎn)移特征,所以肯定少不了維特比搜索。從序列全體的準(zhǔn)確率考慮,搜索也是必不可少的。給定隱馬爾可夫模型的3要素,我用Java寫了一段“可運(yùn)行的偽碼”:

如何分析基于結(jié)構(gòu)化平均感知機(jī)的分詞器Java實(shí)現(xiàn)

如何分析基于結(jié)構(gòu)化平均感知機(jī)的分詞器Java實(shí)現(xiàn)

上述實(shí)現(xiàn)是個(gè)重視條理勝于效率的原型,古人云“過(guò)早優(yōu)化是魔鬼”。相信聰明的讀者一定能看懂這里面在干什么。

特征提取

定義字符序列為x,標(biāo)注序列為y。

轉(zhuǎn)移特征

轉(zhuǎn)移特征就是上面說(shuō)的y[i-1]。

狀態(tài)特征

我一共使用了7種狀態(tài)特征:

如何分析基于結(jié)構(gòu)化平均感知機(jī)的分詞器Java實(shí)現(xiàn)

在鄧知龍的《基于感知器算法的高效中文分詞與詞性標(biāo)注系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》中提到,要利用更復(fù)雜的字符n-gram、字符類別n-gram、疊字、詞典等特征。但在我的實(shí)踐中,除了上述7種特征外,我每減少一個(gè)特征,我的AP分詞器的準(zhǔn)確率就提高一點(diǎn),也許是語(yǔ)料不同吧,也許是特征提取的實(shí)現(xiàn)不同??傊?,主打精簡(jiǎn)、高效。

訓(xùn)練

迭代數(shù)目其實(shí)不需要太多,在3個(gè)迭代內(nèi)模型基本就收斂了:

如何分析基于結(jié)構(gòu)化平均感知機(jī)的分詞器Java實(shí)現(xiàn)

第4個(gè)迭代似乎幫了倒忙,但萬(wàn)幸的是,我們使用的是平均感知機(jī)。權(quán)值平均之后,模型的性能反而有所提升。

此時(shí)模型大?。?/p>

如何分析基于結(jié)構(gòu)化平均感知機(jī)的分詞器Java實(shí)現(xiàn)

模型裁剪

《基于感知器算法的高效中文分詞與詞性標(biāo)注系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》提到的模型裁剪策略是有效的,我將壓縮率設(shè)為0.2,即壓縮掉20%的特征,模型準(zhǔn)確率沒(méi)有變化:

 如何分析基于結(jié)構(gòu)化平均感知機(jī)的分詞器Java實(shí)現(xiàn)

由于我使用了隨機(jī)shuffle算法,所以每次訓(xùn)練準(zhǔn)確率都略有微小的上下波動(dòng)。此時(shí)可以看到模型裁剪過(guò)程花了額外的1分鐘,裁剪完畢后準(zhǔn)確率維持96.11不變。

此時(shí)模型大?。?/p>

如何分析基于結(jié)構(gòu)化平均感知機(jī)的分詞器Java實(shí)現(xiàn)

裁減掉50%如何呢?

如何分析基于結(jié)構(gòu)化平均感知機(jī)的分詞器Java實(shí)現(xiàn)

此時(shí)模型大小:

如何分析基于結(jié)構(gòu)化平均感知機(jī)的分詞器Java實(shí)現(xiàn)

可見(jiàn)裁剪了80%的特征,體積從54M下降到11M,模型的準(zhǔn)確率才跌了不到0.1個(gè)百分點(diǎn)!這說(shuō)明大部分特征都是沒(méi)用的,特征裁剪非常有用、非常好用!

以上就是如何分析基于結(jié)構(gòu)化平均感知機(jī)的分詞器Java實(shí)現(xiàn),小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)頁(yè)名稱:如何分析基于結(jié)構(gòu)化平均感知機(jī)的分詞器Java實(shí)現(xiàn)
網(wǎng)站網(wǎng)址:http://vcdvsql.cn/article2/peijic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷、企業(yè)網(wǎng)站制作動(dòng)態(tài)網(wǎng)站、網(wǎng)站建設(shè)外貿(mào)建站、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)