結(jié)束了中文分詞工具的安裝、使用及在線(xiàn)測(cè)試,開(kāi)啟中文詞性標(biāo)注在線(xiàn)測(cè)試之旅,一般來(lái)說(shuō),中文分詞工具大多數(shù)都附帶詞性標(biāo)注功能的,這里測(cè)試了之前在A(yíng)INLP公眾號(hào)上線(xiàn)的8款中文分詞模塊或者工具,發(fā)現(xiàn)它們都是支持中文詞性標(biāo)注的,這里面唯一的區(qū)別,就是各自用的詞性標(biāo)注集可能有不同: 以下逐一介紹這八個(gè)工具的中文詞性標(biāo)注功能的使用方法,至于安裝,這里簡(jiǎn)要介紹,或者可以參考之前這篇文章:Python中文分詞工具大合集:安裝、使用和測(cè)試,以下是在Ubuntu16.04 & Python3.x的環(huán)境下安裝及測(cè)試。
1) Jieba: https://github.com/fxsjy/jieba 安裝: 代碼對(duì) Python 2/3 均兼容 全自動(dòng)安裝:easy_install jieba 或者 pip install jieba / pip3 install jieba 半自動(dòng)安裝:先下載 http://pypi./pypi/jieba/ ,解壓后運(yùn)行 python setup.py install 手動(dòng)安裝:將 jieba 目錄放置于當(dāng)前目錄或者 site-packages 目錄 中文詞性標(biāo)注示例: In [1]: import jieba.posseg
In [2]: posseg_list = jieba.posseg.cut('我愛(ài)自然語(yǔ)言處理')
In [3]: print(' '.join('%s/%s' % (word, tag) for (word, tag) in posseg_list))
我/r 愛(ài)/v 自然語(yǔ)言/l 處理/v |
2) SnowNLP: https://github.com/isnowfy/snownlp 特點(diǎn): 中文分詞(Character-Based Generative Model) 詞性標(biāo)注(TnT 3-gram 隱馬) 情感分析(現(xiàn)在訓(xùn)練數(shù)據(jù)主要是買(mǎi)賣(mài)東西時(shí)的評(píng)價(jià),所以對(duì)其他的一些可能效果不是很好,待解決) 文本分類(lèi)(Naive Bayes) 轉(zhuǎn)換成拼音(Trie樹(shù)實(shí)現(xiàn)的最大匹配) 繁體轉(zhuǎn)簡(jiǎn)體(Trie樹(shù)實(shí)現(xiàn)的最大匹配) 提取文本關(guān)鍵詞(TextRank算法) 提取文本摘要(TextRank算法) tf,idf Tokenization(分割成句子) 文本相似(BM25) 支持python3(感謝erning) 安裝: $ pip install snownlp 中文詞性標(biāo)注示例: In [11]: from snownlp import SnowNLP
In [12]: snow_result = SnowNLP('我愛(ài)自然語(yǔ)言處理')
In [13]: print(' '.join('%s/%s' % (word, tag) for (word, tag) in snow_result.tags))
我/r 愛(ài)/v 自然/n 語(yǔ)言/n 處理/vn |
3) PkuSeg: https://github.com/lancopku/pkuseg-python pkuseg具有如下幾個(gè)特點(diǎn): 多領(lǐng)域分詞。不同于以往的通用中文分詞工具,此工具包同時(shí)致力于為不同領(lǐng)域的數(shù)據(jù)提供個(gè)性化的預(yù)訓(xùn)練模型。根據(jù)待分詞文本的領(lǐng)域特點(diǎn),用戶(hù)可以自由地選擇不同的模型。 我們目前支持了新聞?lì)I(lǐng)域,網(wǎng)絡(luò)領(lǐng)域,醫(yī)藥領(lǐng)域,旅游領(lǐng)域,以及混合領(lǐng)域的分詞預(yù)訓(xùn)練模型。在使用中,如果用戶(hù)明確待分詞的領(lǐng)域,可加載對(duì)應(yīng)的模型進(jìn)行分詞。如果用戶(hù)無(wú)法確定具體領(lǐng)域,推薦使用在混合領(lǐng)域上訓(xùn)練的通用模型。各領(lǐng)域分詞樣例可參考 example.txt。 更高的分詞準(zhǔn)確率。相比于其他的分詞工具包,當(dāng)使用相同的訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù),pkuseg可以取得更高的分詞準(zhǔn)確率。 支持用戶(hù)自訓(xùn)練模型。支持用戶(hù)使用全新的標(biāo)注數(shù)據(jù)進(jìn)行訓(xùn)練。 支持詞性標(biāo)注。 僅支持Python3, 測(cè)試詞性標(biāo)注的時(shí)候會(huì)自動(dòng)額外下載一個(gè)包: 中文詞性標(biāo)注示例: In [18]: import pkuseg
In [19]: pku_seg = pkuseg.pkuseg(postag=True)
In [20]: pku_results = pku_seg.cut('我愛(ài)自然語(yǔ)言處理')
In [21]: print(' '.join('%s/%s' % (word, tag) for (word, tag) in pku_results))
我/r 愛(ài)/v 自然/n 語(yǔ)言/n 處理/v |
4) THULAC: https://github.com/thunlp/THULAC-Python THULAC(THU Lexical Analyzer for Chinese)由清華大學(xué)自然語(yǔ)言處理與社會(huì)人文計(jì)算實(shí)驗(yàn)室研制推出的一套中文詞法分析工具包,具有中文分詞和詞性標(biāo)注功能。THULAC具有如下幾個(gè)特點(diǎn): 能力強(qiáng)。利用我們集成的目前世界上規(guī)模最大的人工分詞和詞性標(biāo)注中文語(yǔ)料庫(kù)(約含5800萬(wàn)字)訓(xùn)練而成,模型標(biāo)注能力強(qiáng)大。 準(zhǔn)確率高。該工具包在標(biāo)準(zhǔn)數(shù)據(jù)集Chinese Treebank(CTB5)上分詞的F1值可達(dá)97.3%,詞性標(biāo)注的F1值可達(dá)到92.9%,與該數(shù)據(jù)集上最好方法效果相當(dāng)。 速度較快。同時(shí)進(jìn)行分詞和詞性標(biāo)注速度為300KB/s,每秒可處理約15萬(wàn)字。只進(jìn)行分詞速度可達(dá)到1.3MB/s。 中文詞性標(biāo)注示例: In [23]: import thulac
In [24]: thup = thulac.thulac()
Model loaded succeed
In [25]: thulac_result = thup.cut('我愛(ài)自然語(yǔ)言處理')
In [26]: print(' '.join('%s/%s' % (word, tag) for (word, tag) in thulac_result))
我/r 愛(ài)/v 自然/n 語(yǔ)言/n 處理/v |
5) pyhanlp: https://github.com/hankcs/pyhanlp pyhanlp: Python interfaces for HanLP 自然語(yǔ)言處理工具包HanLP的Python接口, 支持自動(dòng)下載與升級(jí)HanLP,兼容py2、py3。 安裝 pip install pyhanlp 注意pyhanlp安裝之后使用的時(shí)候還會(huì)自動(dòng)下載相關(guān)的數(shù)據(jù)文件,zip壓縮文件600多M,速度有點(diǎn)慢,時(shí)間有點(diǎn)長(zhǎng) 中文詞性標(biāo)注示例: In [27]: from pyhanlp import HanLP
In [28]: hanlp_result = HanLP.segment('我愛(ài)自然語(yǔ)言處理')
In [29]: print(' '.join('%s/%s' % (term.word, term.nature) for term in hanlp_result))
我/rr 愛(ài)/v 自然語(yǔ)言處理/nz |
6)FoolNLTK:https://github.com/rockyzhengwu/FoolNLTK 特點(diǎn) 可能不是最快的開(kāi)源中文分詞,但很可能是最準(zhǔn)的開(kāi)源中文分詞 基于BiLSTM模型訓(xùn)練而成 包含分詞,詞性標(biāo)注,實(shí)體識(shí)別, 都有比較高的準(zhǔn)確率 用戶(hù)自定義詞典 可訓(xùn)練自己的模型 批量處理 僅在linux Python3 環(huán)境測(cè)試通過(guò) 安裝,依賴(lài)TensorFlow, 會(huì)自動(dòng)安裝: pip install foolnltk 中文詞性標(biāo)注示例: In [34]: import fool
In [35]: fool_result = fool.pos_cut('我愛(ài)自然語(yǔ)言處理')
In [36]: print(' '.join('%s/%s' % (word, tag) for (word, tag) in fool_result[0]))
我/r 愛(ài)/v 自然/n 語(yǔ)言/n 處理/n |
7) LTP: https://github.com/HIT-SCIR/ltp pyltp: https://github.com/HIT-SCIR/pyltp pyltp 是 語(yǔ)言技術(shù)平臺(tái)(Language Technology Platform, LTP) 的 Python 封裝。 安裝 pyltp 注:由于新版本增加了新的第三方依賴(lài)如dynet等,不再支持 windows 下 python2 環(huán)境。 使用 pip 安裝 使用 pip 安裝前,請(qǐng)確保您已安裝了 pip $ pip install pyltp 接下來(lái),需要下載 LTP 模型文件。 下載地址 - `模型下載 http:///download.html`_ 當(dāng)前模型版本 - 3.4.0 注意在windows下 3.4.0 版本的 語(yǔ)義角色標(biāo)注模塊 模型需要單獨(dú)下載,具體查看下載地址鏈接中的說(shuō)明。 請(qǐng)確保下載的模型版本與當(dāng)前版本的 pyltp 對(duì)應(yīng),否則會(huì)導(dǎo)致程序無(wú)法正確加載模型。 從源碼安裝 您也可以選擇從源代碼編譯安裝 $ git clone https://github.com/HIT-SCIR/pyltp $ git submodule init $ git submodule update $ python setup.py install 安裝完畢后,也需要下載相應(yīng)版本的 LTP 模型文件。 這里使用"pip install pyltp"安裝,安裝完畢后在LTP模型頁(yè)面下載模型數(shù)據(jù):http:///download.html ,我下載的是 ltp_data_v3.4.0.zip ,壓縮文件有600多M,解壓后1.2G,里面有不同NLP任務(wù)的模型。 中文詞性標(biāo)注示例: In [38]: from pyltp import Segmentor
In [39]: from pyltp import Postagger
In [40]: ltp_seg = Segmentor()
In [41]: ltp_seg.load('./data/ltp/ltp_data_v3.4.0/cws.model')
In [42]: ltp_pos = Postagger()
In [43]: ltp_pos.load('./data/ltp/ltp_data_v3.4.0/pos.model')
In [44]: ltp_words = ltp_seg.segment('我愛(ài)自然語(yǔ)言處理')
In [45]: ltp_tags = ltp_pos.postag(ltp_words)
In [46]: print(' '.join('%s/%s' % (word, tag) for (word, tag) in zip(ltp_words, ltp_tags)))
我/r 愛(ài)/v 自然/n 語(yǔ)言/n 處理/v |
8) Stanford CoreNLP: https://stanfordnlp./CoreNLP/ stanfordcorenlp: https://github.com/Lynten/stanford-corenlp 這里用的是斯坦福大學(xué)CoreNLP的python封裝:stanfordcorenlp stanfordcorenlp is a Python wrapper for Stanford CoreNLP. It provides a simple API for text processing tasks such as Tokenization, Part of Speech Tagging, Named Entity Reconigtion, Constituency Parsing, Dependency Parsing, and more.
安裝很簡(jiǎn)單,pip即可: pip install stanfordcorenlp 但是要使用中文NLP模塊需要下載兩個(gè)包,在CoreNLP的下載頁(yè)面下載模型數(shù)據(jù)及jar文件,目前官方是3.9.1版本: https://nlp./software/corenlp-backup-download.html 第一個(gè)是:stanford-corenlp-full-2018-02-27.zip 第二個(gè)是:stanford-chinese-corenlp-2018-02-27-models.jar 前者解壓后把后者也要放進(jìn)去,否則指定中文的時(shí)候會(huì)報(bào)錯(cuò)。 中文詞性標(biāo)注使用示例: In [47]: from stanfordcorenlp import StanfordCoreNLP
In [48]: stanford_nlp = StanfordCoreNLP('./data/corenlp/stanford-corenlp-full-2018-02-27', lan
...: g='zh')
In [49]: postag_result = stanford_nlp.pos_tag('我愛(ài)自然語(yǔ)言處理')
In [50]: print(' '.join('%s/%s' % (word, tag) for (word, tag) in postag_result))
我愛(ài)/NN 自然/AD 語(yǔ)言/NN 處理/VV |
最后,感興趣的同學(xué)可以關(guān)注我們的公眾號(hào) AINLP,輸入"中文詞性標(biāo)注 測(cè)試內(nèi)容"進(jìn)行詞性標(biāo)注測(cè)試:
|