小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Hanlp分詞之CRF中文詞法分析詳解

 左手中的倒影 2019-02-18

這是另一套基于CRF的詞法分析系統(tǒng),類似感知機(jī)詞法分析器,提供了完善的訓(xùn)練與分析接口。

 

  

CRF的效果比感知機(jī)稍好一些,然而訓(xùn)練速度較慢,也不支持在線學(xué)習(xí)。

默認(rèn)模型訓(xùn)練自OpenCorpus/pku98/199801.txt,hanlp 1.6.2以上版本發(fā)布。

語料格式等與感知機(jī)詞法分析器相同,請(qǐng)先閱讀《感知機(jī)詞法分析器》。

中文分詞

訓(xùn)練

        CRFSegmenter segmenter = new CRFSegmenter(null);

        segmenter.train("data/test/pku98/199801.txt", CWS_MODEL_PATH);

輸出為HanLP私有的二進(jìn)制模型,有興趣的話還可以通過命令導(dǎo)出為兼容CRF++的純文本格式。

java -cp hanlp.jar com.hankcs.hanlp.model.crf.crfpp.crf_learn -T cws.bin cws.txt

CRF++兼容

由于C++的運(yùn)行效率和內(nèi)存效率優(yōu)于Java,所以推薦直接利用CRF++執(zhí)行大規(guī)模訓(xùn)練。

首先將人民日?qǐng)?bào)語料轉(zhuǎn)換為CRF++格式:

 

        CRFSegmenter segmenter = new CRFSegmenter(null);

        segmenter.convertCorpus("data/test/pku98/199801.txt", "data/test/crf/cws-corpus.tsv");

然后準(zhǔn)備一份特征模板,或者直接用HanLP默認(rèn)的:

        segmenter.dumpTemplate("data/test/crf/cws-template.txt");

接著用CRF++的crf_learn執(zhí)行訓(xùn)練:

crf_learn cws-template.txt cws-corpus.tsv cws -t

·此處必須使用-t命令CRF++輸出文本格式的模型cws.txt

·HanLP只兼容CRF++的文本模型,不兼容二進(jìn)制

 

cws.txt格式的模型傳入CRFSegmenter或CRFLexicalAnalyzer的構(gòu)造函數(shù)即可創(chuàng)建分詞器,同時(shí)HanLP會(huì)自動(dòng)創(chuàng)建二進(jìn)制緩存.txt.bin,下次加載耗時(shí)將控制在數(shù)百毫秒內(nèi)。

預(yù)測(cè)

可通過如下方式加載:

        CRFSegmenter segmenter = new CRFSegmenter(CWS_MODEL_PATH);

        List<String> wordList = segmenter.segment("商品和服務(wù)");

        System.out.println(wordList);

不傳入模型路徑時(shí)將默認(rèn)加載配置文件指定的模型。

詞性標(biāo)注

CRF詞性標(biāo)注器的訓(xùn)練與加載與中文分詞類似,對(duì)應(yīng)CRFPOSTagger。

命名實(shí)體識(shí)別

CRF命名實(shí)體識(shí)別也是類似的用法,對(duì)應(yīng)CRFNERecognizer。

CRF詞法分析器

訓(xùn)練了1至3個(gè)模型后,可以構(gòu)造CRF詞法分析器:

    /**

     * 構(gòu)造CRF詞法分析器

     *

     * @param cwsModelPath CRF分詞器模型路徑

     * @param posModelPath CRF詞性標(biāo)注器模型路徑

     * @param nerModelPath CRF命名實(shí)體識(shí)別器模型路徑

     */

    public CRFLexicalAnalyzer(String cwsModelPath, String posModelPath, String nerModelPath) throws IOException

    

    /**

     * 加載配置文件指定的模型

     *

     * @throws IOException

     */

    public CRFLexicalAnalyzer() throws IOException

構(gòu)造后可以調(diào)用analyze接口或與舊接口兼容的seg:

 

        CRFLexicalAnalyzer analyzer = new CRFLexicalAnalyzer();

        String[] tests = new String[]{

            "商品和服務(wù)",

            "上海華安工業(yè)(集團(tuán))公司董事長譚旭光和秘書胡花蕊來到美國紐約現(xiàn)代藝術(shù)博物館參觀",

            "微軟公司於1975年由比爾·蓋茲和保羅·艾倫創(chuàng)立,18年啟動(dòng)以智慧雲(yún)端、前端為導(dǎo)向的大改組。" // 支持繁體中文

        };

        for (String sentence : tests)

        {

            System.out.println(analyzer.analyze(sentence));

            System.out.println(analyzer.seg(sentence));

        }

1.6.2以上版本中,所有的詞法分析接口都同時(shí)支持簡繁。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(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)論公約

    類似文章 更多