0
本文作者: 汪思穎 | 2019-01-10 16:21 |
雷鋒網(wǎng) AI 科技評(píng)論消息,日前,北京大學(xué)語(yǔ)言計(jì)算與機(jī)器學(xué)習(xí)研究組研制推出一套全新中文分詞工具包 pkuseg,這一工具包有如下三個(gè)特點(diǎn):
高分詞準(zhǔn)確率。相比于其他的分詞工具包,當(dāng)使用相同的訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù),pkuseg 可以取得更高的分詞準(zhǔn)確率。
多領(lǐng)域分詞。不同于以往的通用中文分詞工具,此工具包同時(shí)致力于為不同領(lǐng)域的數(shù)據(jù)提供個(gè)性化的預(yù)訓(xùn)練模型。根據(jù)待分詞文本的領(lǐng)域特點(diǎn),用戶(hù)可以自由地選擇不同的模型。而其他現(xiàn)有分詞工具包,一般僅提供通用領(lǐng)域模型。
支持用戶(hù)自訓(xùn)練模型。支持用戶(hù)使用全新的標(biāo)注數(shù)據(jù)進(jìn)行訓(xùn)練。
各項(xiàng)性能對(duì)比如下:
與 jieba、THULAC 等國(guó)內(nèi)代表分詞工具包進(jìn)行性能比較:
考慮到 jieba 分詞和 THULAC 工具包等并沒(méi)有提供細(xì)領(lǐng)域的預(yù)訓(xùn)練模型,為了便于比較,開(kāi)發(fā)團(tuán)隊(duì)重新使用它們提供的訓(xùn)練接口在細(xì)領(lǐng)域的數(shù)據(jù)集上進(jìn)行訓(xùn)練,用訓(xùn)練得到的模型進(jìn)行中文分詞。他們選擇 Linux 作為測(cè)試環(huán)境,在新聞數(shù)據(jù)(MSRA)、混合型文本(CTB8)、網(wǎng)絡(luò)文本(WEIBO)數(shù)據(jù)上對(duì)不同工具包進(jìn)行了準(zhǔn)確率測(cè)試。在此過(guò)程中,他們使用第二屆國(guó)際漢語(yǔ)分詞評(píng)測(cè)比賽提供的分詞評(píng)價(jià)腳本,其中 MSRA 與 WEIBO 使用標(biāo)準(zhǔn)訓(xùn)練集測(cè)試集劃分,CTB8 采用隨機(jī)劃分。對(duì)于不同的分詞工具包,訓(xùn)練測(cè)試數(shù)據(jù)的劃分都是一致的;即所有的分詞工具包都在相同的訓(xùn)練集上訓(xùn)練,在相同的測(cè)試集上測(cè)試。
以下是在不同數(shù)據(jù)集上的對(duì)比結(jié)果:
同時(shí),為了比較細(xì)領(lǐng)域分詞的優(yōu)勢(shì),開(kāi)發(fā)團(tuán)隊(duì)比較了他們的方法和通用分詞模型的效果對(duì)比。其中 jieba 和 THULAC 均使用了軟件包提供的、默認(rèn)的分詞模型:
從結(jié)果上來(lái)看,當(dāng)用戶(hù)了解待分詞文本的領(lǐng)域時(shí),細(xì)領(lǐng)域分詞可以取得更好的效果。然而 jieba 和 THULAC 等分詞工具包僅提供了通用領(lǐng)域模型。
目前,該工具包已經(jīng)在 GitHub 開(kāi)源,編譯、安裝和使用說(shuō)明如下。
編譯和安裝
1. 通過(guò) pip 下載(自帶模型文件)
pip install pkuseg
之后通過(guò) import pkuseg 來(lái)引用
2. 從 github 下載(需要下載模型文件,見(jiàn)預(yù)訓(xùn)練模型)
將 pkuseg 文件放到目錄下,通過(guò) import pkuseg 使用
模型需要下載或自己訓(xùn)練。
使用方式
1. 代碼示例
代碼示例1 使用默認(rèn)模型及默認(rèn)詞典分詞
import pkuseg
seg = pkuseg.pkuseg() #以默認(rèn)配置加載模型
text = seg.cut('我愛(ài)北京天安門(mén)') #進(jìn)行分詞
print(text)
代碼示例2 設(shè)置用戶(hù)自定義詞典
import pkuseg
lexicon = ['北京大學(xué)', '北京天安門(mén)'] #希望分詞時(shí)用戶(hù)詞典中的詞固定不分開(kāi)
seg = pkuseg.pkuseg(user_dict=lexicon) #加載模型,給定用戶(hù)詞典
text = seg.cut('我愛(ài)北京天安門(mén)') #進(jìn)行分詞
print(text)
代碼示例3
import pkuseg
seg = pkuseg.pkuseg(model_name='./ctb8') #假設(shè)用戶(hù)已經(jīng)下載好了ctb8的模型并放在了'./ctb8'目錄下,通過(guò)設(shè)置model_name加載該模型
text = seg.cut('我愛(ài)北京天安門(mén)') #進(jìn)行分詞
print(text)
代碼示例4
import pkuseg
pkuseg.test('input.txt', 'output.txt', nthread=20) #對(duì)input.txt的文件分詞輸出到output.txt中,使用默認(rèn)模型和詞典,開(kāi)20個(gè)進(jìn)程
代碼示例5
import pkuseg
pkuseg.train('msr_training.utf8', 'msr_test_gold.utf8', './models', nthread=20) #訓(xùn)練文件為'msr_training.utf8',測(cè)試文件為'msr_test_gold.utf8',模型存到'./models'目錄下,開(kāi)20個(gè)進(jìn)程訓(xùn)練模型
2. 參數(shù)說(shuō)明
pkuseg.pkuseg(model_name='ctb8', user_dict=[])
model_name 模型路徑。默認(rèn)是'ctb8'表示我們預(yù)訓(xùn)練好的模型(僅對(duì)pip下載的用戶(hù))。用戶(hù)可以填自己下載或訓(xùn)練的模型所在的路徑如model_name='./models'。
user_dict 設(shè)置用戶(hù)詞典。默認(rèn)不使用詞典。填'safe_lexicon'表示我們提供的一個(gè)中文詞典(僅pip)。用戶(hù)可以傳入一個(gè)包含若干自定義單詞的迭代器。
pkuseg.test(readFile, outputFile, model_name='ctb8', user_dict=[], nthread=10)
readFile 輸入文件路徑
outputFile 輸出文件路徑
model_name 同pkuseg.pkuseg
user_dict 同pkuseg.pkuseg
nthread 測(cè)試時(shí)開(kāi)的進(jìn)程數(shù)
pkuseg.train(trainFile, testFile, savedir, nthread=10)
trainFile 訓(xùn)練文件路徑
testFile 測(cè)試文件路徑
savedir 訓(xùn)練模型的保存路徑
nthread 訓(xùn)練時(shí)開(kāi)的進(jìn)程數(shù)
預(yù)訓(xùn)練模型
分詞模式下,用戶(hù)需要加載預(yù)訓(xùn)練好的模型。開(kāi)發(fā)團(tuán)隊(duì)提供了三種在不同類(lèi)型數(shù)據(jù)上訓(xùn)練得到的模型,根據(jù)具體需要,用戶(hù)可以選擇不同的預(yù)訓(xùn)練模型。以下是對(duì)預(yù)訓(xùn)練模型的說(shuō)明:
MSRA: 在MSRA(新聞?wù)Z料)上訓(xùn)練的模型。新版本代碼采用的是此模型。
下載地址:https://pan.baidu.com/s/1twci0QVBeWXUg06dK47tiA
CTB8: 在CTB8(新聞文本及網(wǎng)絡(luò)文本的混合型語(yǔ)料)上訓(xùn)練的模型。
下載地址:https://pan.baidu.com/s/1DCjDOxB0HD2NmP9w1jm8MA
WEIBO: 在微博(網(wǎng)絡(luò)文本語(yǔ)料)上訓(xùn)練的模型。
下載地址:https://pan.baidu.com/s/1QHoK2ahpZnNmX6X7Y9iCgQ
開(kāi)發(fā)團(tuán)隊(duì)預(yù)訓(xùn)練好其它分詞軟件的模型可以在如下地址下載:
jieba: 待更新
THULAC: 在 MSRA、CTB8、WEIBO、PKU 語(yǔ)料上的預(yù)訓(xùn)練模型,下載地址:https://pan.baidu.com/s/11L95ZZtRJdpMYEHNUtPWXA,提取碼:iv82
其中 jieba 的默認(rèn)模型為統(tǒng)計(jì)模型,主要基于訓(xùn)練數(shù)據(jù)上的詞頻信息,開(kāi)發(fā)團(tuán)隊(duì)在不同訓(xùn)練集上重新統(tǒng)計(jì)了詞頻信息。對(duì)于 THULAC,他們使用其提供的接口進(jìn)行訓(xùn)練(C++版本),得到了在不同領(lǐng)域的預(yù)訓(xùn)練模型。
來(lái)源:GitHub
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。