一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Editor: 中文文本處理簡(jiǎn)要介紹 | 統(tǒng)計(jì)之都 (中國(guó)統(tǒng)計(jì)學(xué)門戶網(wǎng)站,免費(fèi)統(tǒng)計(jì)學(xué)服務(wù)平臺(tái))

 openlog 2016-01-09

本文作者李繩,博客地址 http://acepor./。作者自述:

一位文科生曾勵(lì)志成為語(yǔ)言學(xué)家
出國(guó)后陰差陽(yáng)錯(cuò)成了博士候選人
三年后交完論文對(duì)學(xué)術(shù)徹底失望
回國(guó)后誤打誤撞成了數(shù)據(jù)科學(xué)家

作為一個(gè)處理自然語(yǔ)言數(shù)據(jù)的團(tuán)隊(duì),我們?cè)谌粘9ぷ髦幸玫讲煌墓ぞ邅?lái)預(yù)處理中文文本,比如 Jieba Stanford NLP software。出于準(zhǔn)確性和效率的考慮,我們選擇了Stanford NLP software, 所以本文將介紹基于 Stanford NLP software 的中文文本預(yù)處理流程。

中文文本處理簡(jiǎn)要介紹

與拉丁語(yǔ)系的文本不同,中文并不使用空格作為詞語(yǔ)間的分隔符。比如當(dāng)我們說(shuō)“We love coding.”,這句英文使用了兩個(gè)空格來(lái)分割三個(gè)英文詞匯;如果用中文做同樣的表述, 就是“我們愛寫代碼。”,其中不包含任何空格。因而,處理中文數(shù)據(jù)時(shí),我們需要進(jìn)行分詞,而這恰恰時(shí)中文自然語(yǔ)言處理的一大難點(diǎn)。

下文將介紹中文文本預(yù)處理的幾個(gè)主要步驟:

  1. 中文分詞
  2. 標(biāo)注詞性
  3. 生成詞向量
  4. 生成中文依存語(yǔ)法樹

Stanford NLP software 簡(jiǎn)要介紹

Stanford NLP software 是一個(gè)較大的工具合集:包括 Stanford POS tagger 等組件,也有一個(gè)包含所有組件的合集 Stanford CoreNLP。各個(gè)組件是由不同的開發(fā)者開發(fā)的,所以每一個(gè)工具都有自己的語(yǔ)法。當(dāng)我們研究這些組件的文檔時(shí),遇到了不少問(wèn)題。下文記錄這些問(wèn)題和相對(duì)應(yīng)的對(duì)策,以免重蹈覆轍。

Stanford NLP 小組提供了一個(gè)簡(jiǎn)明的FAQ——Stanford Parser FAQ 和一份詳細(xì)的Java文檔 ——Stanford JavaNLP API Documentation。在這兩份文檔中,有幾點(diǎn)格外重要:

盡管PSFG分詞器小且快,F(xiàn)actored分詞器更適用于中文,所以我們推薦使用后者。

中文分詞器默認(rèn)使用GB18030編碼(Penn Chinese Treebank的默認(rèn)編碼)。

使用 -encoding 選項(xiàng)可以指定編碼,比如 UTF-8,Big-5 或者 GB18030。

中文預(yù)處理的主要步驟

1. 中文分詞

誠(chéng)如上面所言,分詞是中文自然語(yǔ)言處理的一大難題。Stanford Word Segmenter 是專門用來(lái)處理這一問(wèn)題的工具。FAQ請(qǐng)參見 Stanford Segmenter FAQ。具體用法如下:

bash -x segment.sh ctb INPUT_FILE UTF-8 0

其中 ctb 是詞庫(kù)選項(xiàng),即 Chinese tree bank,也可選用 pku,即 Peking University。UTF-8是輸入文本的編碼,這個(gè)工具也支持 GB18030 編碼。最后的0指定 n-best list 的大小,0表示只要最優(yōu)結(jié)果。

2. 中文詞性標(biāo)注

詞性標(biāo)注是中文處理的另一大難題。我們?cè)?jīng)使用過(guò) Jieba 來(lái)解決這個(gè)問(wèn)題,但效果不盡理想。Jieba 是基于詞典規(guī)則來(lái)標(biāo)注詞性的,所以任意一個(gè)詞在 Jieba 里有且只有一個(gè)詞性。如果一個(gè)詞有一個(gè)以上的詞性,那么它的標(biāo)簽就變成了一個(gè)集合。比如“閱讀”既可以表示動(dòng)詞,也可以理解為名詞,Jieba 就會(huì)把它標(biāo)注成 n(名詞),而不是根據(jù)具體語(yǔ)境來(lái)給出合適的 v(動(dòng)詞)或 n(名詞)的標(biāo)簽。這樣一來(lái),標(biāo)注的效果就大打折扣。幸好 Stanford POS Tagger 提供了一個(gè)根據(jù)語(yǔ)境標(biāo)注詞性的方法。具體用法如下:

java -mx3000m -cp "./*" edu.stanford.nlp.tagger.maxent.MaxentTagger -model models/chinese-distsim.tagger -textFile INPUT_FILE

-mx3000m 指定內(nèi)存大小,可以根據(jù)自己的機(jī)器配置選擇。edu.stanford.nlp.tagger.maxent.MaxentTagger 用于選擇標(biāo)注器,這里選用的是一個(gè)基于最大熵(Max Entropy)的標(biāo)注器。models/chinese-distsim.tagger 用于選擇分詞模型。

3. 生成詞向量

深度學(xué)習(xí)是目前機(jī)器學(xué)習(xí)領(lǐng)域中最熱門的一個(gè)分支。而生成一個(gè)優(yōu)質(zhì)的詞向量是利用深度學(xué)習(xí)處理 NLP 問(wèn)題的一個(gè)先決條件。除了 Google 的 Word2vec,Stanford NLP 小組提供了另外一個(gè)選項(xiàng)——GLOVE。

使用Glove也比較簡(jiǎn)單,下載并解壓之后,只要對(duì)里面的 demo.sh 腳本進(jìn)行相應(yīng)修改,然后執(zhí)行這個(gè)腳本即可。

CORPUS=text8                                    # 設(shè)置輸入文件路徑
VOCAB_FILE=vocab.txt                            # 設(shè)置輸入詞匯路徑
COOCCURRENCE_FILE=cooccurrence.bin              
COOCCURRENCE_SHUF_FILE=cooccurrence.shuf.bin
BUILDDIR=build
SAVE_FILE=vectors                               # 設(shè)置輸入文件路徑
VERBOSE=2           
MEMORY=4.0                                      # 設(shè)置內(nèi)存大小
VOCAB_MIN_COUNT=5                               # 設(shè)置詞匯的最小頻率
VECTOR_SIZE=50                                  # 設(shè)置矩陣維度
MAX_ITER=15                                     # 設(shè)置迭代次數(shù)
WINDOW_SIZE=15                                  # 設(shè)置詞向量的窗口大小
BINARY=2
NUM_THREADS=8
X_MAX=10

4. 生成中文依存語(yǔ)法樹

文本處理有時(shí)需要比詞性更豐富的信息,比如句法信息,Stanford NLP 小組提供了兩篇論文: The Stanford Parser: A statistical parserNeural Network Dependency Parser,并在這兩篇論文的基礎(chǔ)上開發(fā)了兩個(gè)工具,可惜效果都不太理想。前者的處理格式是正確的中文依存語(yǔ)法格式,但是速度極慢(差不多一秒一句);而后者雖然處理速度較快,但生成的格式和論文 Discriminative reordering with Chinese grammatical relations features – acepor中的完全不一樣。我們嘗試了郵件聯(lián)系論文作者和工具作者,并且在 Stackoverflow 上提問(wèn),但這個(gè)問(wèn)題似乎無(wú)解。

盡管如此,我們還是把兩個(gè)方案都記錄在此:

java -cp "*:." -Xmx4g edu.stanford.nlp.pipeline.StanfordCoreNLP -file INPUT_FILE -props StanfordCoreNLP-chinese.properties -outputFormat text -parse.originalDependencies
java -cp "./*" edu.stanford.nlp.parser.nndep.DependencyParser -props nndep.props -textFile INPUT_FILE -outFile OUTPUT_FILE

結(jié)論

預(yù)處理中文文本并非易事,Stanford NLP 小組對(duì)此作出了極大的貢獻(xiàn)。我們的工作因而受益良多,所以我們非常感謝他們的努力。當(dāng)然我們也期待 Stanford NLP software 能更上一層樓。

本文原載于 https://acepor./2015/12/17/General-Pipelines/

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    视频在线播放你懂的一区| 丰满人妻熟妇乱又伦精另类视频 | 亚洲欧洲在线一区二区三区| 色偷偷偷拍视频在线观看| 99久免费精品视频在线观| 国产又粗又硬又长又爽的剧情 | 久久热中文字幕在线视频| 国产精品午夜一区二区三区| 99久久国产精品成人观看| 日本少妇中文字幕不卡视频| 国产日韩精品激情在线观看| 99久久精品免费精品国产| 91麻豆视频国产一区二区| 91偷拍与自偷拍精品| 这里只有九九热精品视频| 日本少妇aa特黄大片| 国产精品尹人香蕉综合网| 亚洲国产婷婷六月丁香| 成人国产激情福利久久| 精品亚洲一区二区三区w竹菊| 国产精品视频久久一区| 国产精品制服丝袜美腿丝袜| 欧美日韩少妇精品专区性色| 亚洲国产性感美女视频| 亚洲av熟女一区二区三区蜜桃| 久久本道综合色狠狠五月| 好吊日在线视频免费观看| 欧美有码黄片免费在线视频| 日韩女优精品一区二区三区| 久久99这里只精品热在线| 欧美国产日本免费不卡| 99国产高清不卡视频| 91精品视频全国免费| 日韩精品一区二区三区含羞含羞草 | 久久99一本色道亚洲精品| 欧美日韩免费观看视频| av国产熟妇露脸在线观看| 久久天堂夜夜一本婷婷| 国产成人亚洲欧美二区综| 亚洲中文字幕高清乱码毛片| 欧美极品欧美精品欧美|