当前位置: 新豪天地登录网址 > www.3559.com > 正文

自然语言处理之分词3,分词工具Hanlp基于感知机

时间:2019-11-29 01:49来源:www.3559.com
那是另意气风发套基于CTiggoF的词法剖判系统,相像感知机词法分析器,提供了康健的操练与分析接口。 构造化感知机评释框架是一套期图利用感知机做连串标明任务,而且接收到中文

那是另意气风发套基于CTiggoF的词法剖判系统,相像感知机词法分析器,提供了康健的操练与分析接口。

构造化感知机评释框架是一套期图利用感知机做连串标明任务,而且接收到中文分词、词性标记与命名实体识别那多个难题的总体在线学习框架,该框架利用1个算法消除3个难题,时自治同意的体系,同期多个职责顺序渐进,构成流水生产线式的类别。本文先介绍中文分词框架部分剧情。

匡助普通话分词(N-最短路分词、COdysseyF分词、索引分词、客商自定义词典、词性标明),命名实体识别(中夏族民共和国人名、音译人名、菲律宾人名、地名、实体部门名识别),关键词提取,自动摘要,短语提取,拼音调换,简繁转变,文本推荐,依存句法深入分析(MaxEnt依存句法解析、CHighlanderF依存句法分析)。提供Lucene插件,包容Lucene4.x。

本节将介绍在自然语言处理分词或系列标明进程中运用较分布的C昂CoraF条件随飞机场模型。

www.3559.com 1

www.3559.com 2

 

CCRUISERF算法是2000年提议,结合了最大熵模型和隐Marco夫模型,是二个天下无敌的剖断式模型。近来在分词、词性标明和命名实体识别等行列标记任务中赢得了很好的成效。其基本思路是把分词调换为分类难点,通过给汉字打标签完结分词,不仅仅思虑文字词语现身的频率,同时思索上下文语境,对歧异词和未登陆词的鉴定分别成效较好,别的,对持有特征进行全局归意气风发化,进而求得全局最优值。然而操练周期较长,总计量大,品质不及词典计算分词。本文使用开源的尺度随飞机场工具包“CPRADOF :Yet Another C奥德赛F toolkit”达成汉语分词,选拔的教练语言材质是微软南美洲钻探院提供的汉语分词语言材质(如下图所示卡塔尔国,测量检验语言材质来源于backoff二零零七测量检验脚本。

CTiggoF的意义比感知机稍好一些,但是锻炼进程相当慢,也不接济在线学习。

普通话分词

HanLP: Han Language Processing

华语处理包


HanLP是由生机勃勃多元模型与算法组成的Java工具包,指标是拉动自然语言管理在生育意况中的应用。HanLP具有成效完备、品质高效、布局清晰、语言材料时新、可自定义的个性。

HanLP提供下列作用:

中文分词

  • 最短路分词

  • N-最短路分词

  • CRF分词

  • 目录分词

  • 极速词典分词

  • 客商自定义词典

词性标明

取名实体识别

  • 神州人名识别

  • 音译人名识别

  • 菲律宾人名识别

  • 地名识别

  • 实业部门名识别

一言九鼎词提取

  • TextRank关键词提取

自行摘要

  • TextRank自动摘要

短语提取

  • 依据互消息和左右音信熵的短语提取

拼音转变

  • 多音字

  • 声母

  • 韵母

  • 声调

简繁转换

  • 繁体汉语分词

  • 简繁不一样词

文本推荐

  • 语义推荐

  • 拼音推荐

  • 字词推荐

现成句法分析

  • MaxEnt依存句法剖析

  • CTucsonF依存句法剖析

语言材料库工具

  • 分词语言材质预管理

  • 词频词性词典制作

  • BiGram统计

  • 词共现总计

  • CoNLL语料预管理

  • CoNLL UA/LA/DA评测工具

在提供丰硕效能的同有的时候候,HanLP内部模块持行百里者半九十低耦合、模型坚定不移惰性加载、服务坚持静态提供、词典坚威武不能屈公开垦布,使用拾分有助于,同一时间自带一些语言材质管理工科具,扶助客商锻炼本人的语言材质。


www.3559.com 3

暗中同意模型演习自OpenCorpus/pku98/199701.txt,随hanlp 1.6.2上述版本发表。

训练

品类地址

HanLP项目主页: 

HanLP下载地址: 

上图语料来源于微软南美洲商量院提供的中文分词语言材质

语言材质格式等与感知机词法深入分析器相仿,请先阅读《感知机词法深入分析器》。

只需点名输入语言材质的门路(单文档时为文件路线,多文书档案时为文件夹路线,灵活管理),以致模型保存地方就可以:

内部存款和储蓄器须求

内部存储器120MB以上(-Xms120m -Xmx120m -Xmn64m),标准数据包(35万基本词库 私下认可客户词典),分词测量检验符合规律。

全副词典和模型都以惰性加载的,借令你只用拼音转变的话,则只加载拼音词典,未加载的词典相当于一纸空文,不占内存。同理,模型也是这么。


C雷克萨斯RCF分词原理:
1、操练语言材料预管理。原始锻炼语料是已经分好词的料想,词与词之间通过空格隔开分离。遵照如下定义字对数码实行格式化:①词首——用B代表 ②词中——用M代表 ③词尾——用E表示 ④单子词——用S表示。数据格式化脚本如下:

粤语分词

命令行

下载与布置

import codecs
import sys
def character_tagging(input_file, output_file): 
    #这里的codecs库保证了输入文件为utf-8格式,输出也为utf-8格式
    input_data = codecs.open(input_file, 'r', 'utf-8')
    output_data = codecs.open(output_file, 'w', 'utf-8') 
    for line in input_data.readlines():  
        word_list = line.strip().split()  
        for word in word_list: 
            #注意这里的“tSn”一定不能漏写,这是设置处理之后的数据的格式的重要部分  
            if len(word) == 1:    
                output_data.write(word   "tSn")   
            else:    
                output_data.write(word[0]   "tBn")    
                for w in word[1:len(word)-1]:     
                     output_data.write(w   "tMn")
                     output_data.write(word[len(word)-1]   "tEn")
        output_data.write("n") 
        input_data.close() 
        output_data.close()

if __name__ == '__main__': 
    if len(sys.argv) != 3:  
        print "pls use: python ####.py input output" 
        sys.exit(-1) 
    #这里的sys.argv[]是参数,需要在liunx环境下运行Python脚本时,输入的两个参数:输入文件位置,输出文件位置
    input_file = sys.argv[1] 
    output_file = sys.argv[2] 
    character_tagging(input_file, output_file)

训练

java -cp hanlp.jar com.hankcs.hanlp.model.perceptron.Main -task CWS -train -reference data/test/pku98/199801.txt -model data/test/perceptron/cws.bin

方式一、通过Maven的pom.xml

为了便于客商,特提供放置了数据包的Portable版,只需在pom.xml参与:

  1. <dependency>
  2.     <groupId>com.hankcs</groupId>
  3.     <artifactId>hanlp</artifactId>
  4.     <version>portable-1.2.4</version>
  5. </dependency>

零配置,就能够使用基本成效(除CHavalF分词、依存句法分析外的全数效果)。连Maven都无心用的话,能够一向下载portable版的jar。

借使顾客有自定义的须求,能够参谋形式二,使用hanlp.properties实行计划。

时下Portable体量仅仅5.7MB,作为代价,使用的是1999年的小词典,对现代中文的支撑少数;所以依旧建议外挂上边包车型大巴数码包相比好。

格式化之后的数据如图所示:假诺格式化后的文书为training_tag.utf8

CRFSegmenter segmenter = new CRFSegmenter;

API

方式二、下载jar、data、hanlp.properties

HanLP将数据与程序分别,给与顾客自定义的轻便。

www.3559.com 4

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

public void testTrain() throws Exception

1、下载jar

hanlp.jar

格式化管理后training_tag.utf8文件格式

输出为HanLP私有的二进制模型,有意思味的话还足以经过命令导出为协作C昂科威F 的纯文本格式。

{

2、下载data

数据包 功能 体积(MB)
data.zip 全部词典,全部模型 280(注:分词词典大约40MB,主要是句法分析模型占体积,可以自行删除。)

在GitHub的release页面Ctrl+F找寻data就可以,下载后解压到大肆目录,接下去通过配备文件报告HanLP数据包的任务。

HanLP中的数据分为词典模型,其中词典是词法解析必须的,模型是句法剖析必需的。

  1. data
  2. │  
  3. ├─dictionary
  4. └─model

客商可以自动增加和删除替换,假使没有必要句法深入分析效率的话,任何时候可以去除model文件夹。

2、训练模型。用格式化后的练习语料training_tag.utf8教练C奥迪Q7F模型。首要接受C君越F工具中的crf_learn练习模型,实践如下命令:crf_learn -f 3 -c 4.0 template training_tag.utf8 crf_model。其中,crf_model即为训练之后的模子。
3、测量试验语言材质格式化。原始的测量试验语言材料是四个纯文本文件,未有别的管理,如图a所示。须求将其管理成CWranglerF供给的输入格式,管理脚本如下所示。

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

PerceptronTrainer trainer = new CWSTrainer();

3、配置文件

演示配置文件:hanlp.properties

结构文件的功用是告诉HanLP数据包的岗位,只需改善第大器晚成行

  1. root=usr/home/HanLP/

为data的父目录就可以,比方data目录是/Users/hankcs/Documents/data,那么root=/Users/hankcs/Documents/

  • 假使采用mini词典的话,则需求改过配置文件: 
    CoreDictionaryPath=data/dictionary/CoreNatureDictionary.mini.txt 
    BiGramDictionaryPath=data/dictionary/CoreNatureDictionary.ngram.mini.txt

最后将HanLP.properties放入classpath即可,对于Eclipse,一般是:

  1. $Project/bin

Web项目标话能够献身如下地点:

  1. $Project/WEB-INF/classes

对此此外项目,都得以停放src目录下,编写翻译时IDE会自动将其复制到classpath中。

大器晚成旦放置不当,HanLP会智能提示当前条件下的合适路线,並且尝试从项目根目录读取数据集。

www.3559.com 5

与CRF 兼容

PerceptronTrainer.Result result = trainer.train(

调用方法

HanLP大致全体的效应都得以通过工具类HanLP快快调用,当您想不起来调用方法时,只需键入HanLP.,IDE应当会交到提醒,并浮现HanLP康健的文书档案。

引入客户一贯通过工具类HanLP调用,这么做的裨益是,以后HanLP进级后,客户无需改革调用代码。

所有Demo都位于com.hankcs.demo下。

图a 原始测量试验语言材质

是因为C 的周转效用和内部存款和储蓄器成效优于Java,所以推举间接使用CEnclaveF 试行大范围演习。

"data/test/pku98/199801.txt",

1. 第一个Demo

  1. System.out.println(HanLP.segment("你好,招待使用HanLP普通话管理包!"卡塔尔(英语:State of Qatar)卡塔尔国;
import codecs
import sys

def character_split(input_file, output_file):    
    input_data = codecs.open(input_file, 'r', 'utf-8')    
    output_data = codecs.open(output_file, 'w', 'utf-8')    
    for line in input_data.readlines():        
        for word in line.strip():            
            word = word.strip()            
            if word:                
                output_data.write(word   "tBn")
        output_data.write("n")    
    input_data.close()    
    output_data.close()

if __name__ == '__main__':    
    if len(sys.argv) != 3:        
        print "pls use: python ####.py input output" 
        sys.exit()    
    input_file = sys.argv[1]    
    output_file = sys.argv[2]    
    character_split(input_file, output_file)    

先是将人民晚报语言材料调换为C瑞鹰F 格式:

Config.CWS_MODEL_FILE

2. 正规分词

  1. List<Term> termList = StandardTokenizer.segment("商品和服务"卡塔尔(英语:State of Qatar);
  2. System.out.println(termList);

说明

  • HanLP中有后生可畏雨后春笋“开箱即用”的静态分词器,以Tokenizer最后,在接下去的事例中会继续介绍。

  • HanLP.segment其实是对StandardTokenizer.segment的包装。

  • 分词结果富含词性,每种词性的意趣请查阅《HanLP词性标记集》。

算法精解

  • 《词图的变迁》

格式化之后的多少如图所示:借使格式化后的文件为test_format.utf8

CRFSegmenter segmenter = new CRFSegmenter;

);

3. NLP分词

  1. List<Term> termList = NLPTokenizer.segment("中科院计算本事切磋所的宗成庆教授正在授课自然语言管理课程"卡塔尔(英语:State of Qatar);
  2. System.out.println(termList);

说明

  • NLP分词NLPTokenizer会奉行总体命名实体识别和词性标记。

www.3559.com 6

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

//System.out.printf("准确率F1:%.2fn", result.prf[2]);

4. 索引分词

  1. List<Term> termList = IndexTokenizer.segment("主副食物"卡塔尔国;
  2. for (Term term : termList)
  3. {
  4.     System.out.println(term   " ["   term.offset   ":"   (term.offset   term.word.length())   "]");
  5. }

说明

  • 目录分词IndexTokenizer是面向搜索引擎的分词器,能够对长词全切分,别的通过term.offset能够拿到单词在文书中的偏移量。

test_format.utf8文件格式

接下来计划生龙活虎份特征模板,或许直接用HanLP默许的:

}

5. N-最短路线分词

  1. Segment nShortSegment = new NShortSegment().enableCustomDictionary(false).enablePlaceRecognize(true).enableOrganizationRecognize(true);
  2. Segment shortestSegment = new DijkstraSegment().enableCustomDictionary(false).enablePlaceRecognize(true).enableOrganizationRecognize(true);
  3. String[] testCase = new String[]{
  4.         "前不久,刘宏军案的关键人物,江西女商人丁书苗在市二中级人民法院出庭受审。",
  5.         "刘喜杰石国祥拜候吴亚琴先进事迹报告团成员",
  6.         };
  7. for (String sentence : testCase)
  8. {
  9.     System.out.println("N-最短分词:"   nShortSegment.seg(sentence卡塔尔(قطر‎   "n最短路分词:"   shortestSegment.seg(sentence卡塔尔卡塔尔;
  10. }

说明

  • N最短路分词器NShortSegment比最短路分词器慢,不过意义微微好有的,对命名实体识别技术越来越强。

  • 貌似景观下最短路分词的精度已经够用,何况速度比N最短路分词器快几倍,请酌定接纳。

算法安详严整

  • 《N最短路线的Java达成与分词应用》

4、测量检验模型。用格式化后的测量检验语言质地test_format.utf8测量检验CRAV4F模型。主要利用C哈弗F工具中的crf_test测试模型,推行如下命令:crf_test -m crf_model test_format.utf8>test_tag.utf8 。其中,crf_model即为演练未来的模子,test_format.utf8即为格式化后的测验文件,test_tag.utf8即为模型的标记结果。
5、分词结果展现。按照定义的分词格式,将符号结果转换为分词结果,将要B和E之间的字,以致S单字构成分词。脚本如下:

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

实际,视语言质感与任务的不等,迭代数、压缩比和线程数都足以无节制调解,以承保最好结果:

6. CRF分词

  1. /**
  2.  * CEscortF分词(在风靡锻练的未压缩100MB模型下,能够获得较好的成效,能够投入坐蓐条件卡塔尔
  3.  *
  4.  * @author hankcs
  5.  */
  6. public class DemoCRFSegment
  7. {
  8.     public static void main(String[] args)
  9.     {
  10.         HanLP.Config.ShowTermNature = false;    // 关闭词性呈现
  11.         Segment segment = new CRFSegment();
  12.         String[] sentenceArray = new String[]
  13.                 {
  14.                         "HanLP是由一花样比超级多模型与算法组成的Java工具包,指标是普遍自然语言管理在生养情状中的应用。",
  15.                         "鐵桿部隊憤怒情緒集結 馬英九腹背受敵",           // 繁体无压力
  16.                         "馬英八回應連勝文“丐幫說”:稱黨內同志談話應謹慎",
  17.                         "高锰酸钾,强氧化剂,紫深湖蓝晶体,可溶于水,遇乙酸乙酯即被还原。常用作消毒剂、水净化剂、酸化剤、漂白剂、毒气吸取剂、二氧化碳精制剂等。", // 专门的学问名词有早晚辨识本领
  18.                         "《晚间的骰子》通过汇报浅草的舞女在暗夜中扔骰子的光景,寄托了我对平惠农活区的情绪",    // 非消息语言材质
  19.                         "那个疑似真的[委屈]日前这一个打扮太江户了,一点不上品...@hankcs",                       // 天涯论坛
  20.                         "鼎泰丰的小笼一点深意也远非...每样都淡淡的...淡淡的,哪有酒楼2A的好次",
  21.                         "Christina·克罗尔说:不,我不是虎妈。作者全家都爱怜音乐,小编也勉力他们这么做。",
  22.                         "明天应用程式S:Sago Mini Toolbox培养孩子下手技能",
  23.                         "财政分公司副县长王保卫安全调任国家总括局常务委员会委员书记",
  24.                         "2.34米男生娶1.53米女观众 称夫妻生活没难点",
  25.                         "你看过穆赫兰道吗",
  26.                         "乐视一流手提式有线电话机是还是不是承载贾布斯的生态梦"
  27.                 };
  28.         for (String sentence : sentenceArray)
  29.         {
  30.             List<Term> termList = segment.seg(sentence);
  31.             System.out.println(termList);
  32.         }
  33.     }
  34. }

说明

  • C翼虎F对新词有很好的分辨技术,可是力不能及选择自定义词典。

算法详整

  • 《C昂科雷F分词的纯Java落成》

  • 《C中华VF 模型格式表达》

import codecs
import sys

def character_2_word(input_file, output_file): 
    input_data = codecs.open(input_file, 'r', 'utf-8')
    output_data = codecs.open(output_file, 'w', 'utf-8')
    for line in input_data.readlines():
        if line == "n": 
            output_data.write("n")
        else:
            char_tag_pair = line.strip().split('t')
            char = char_tag_pair[0]
            tag = char_tag_pair[2]
            if tag == 'B': 
                output_data.write(' '   char)
                elif tag == 'M': 
                    output_data.write(char)
                elif tag == 'E':
                    output_data.write(char   ' ')
                else: # tag == 'S'
                    output_data.write(' '   char   ' ')
    input_data.close()
    output_data.close()
if __name__ == '__main__':
    if len(sys.argv) != 3: 
        print "pls use: python ####.py input output" 
        sys.exit()
    input_file = sys.argv[1]
    output_file = sys.argv[2]
    character_2_word(input_file, output_file)

接着用CRF 的crf_learn实施练习:

/**

7. 极速词典分词

  1. /**
  2.  * 演示极速分词,基于AhoCorasickDoubleArrayTrie实现的词典分词,适用于“高吞吐量”“精度日常”的场子
  3.  * @author hankcs
  4.  */
  5. public class DemoHighSpeedSegment
  6. {
  7.     public static void main(String[] args)
  8.     {
  9.         String text = "吉林千岛湖短缺,中中原人民共和国最大淡水湖产生大草原";
  10.         System.out.println(SpeedTokenizer.segment(text));
  11.         long start = System.currentTimeMillis();
  12.         int pressure = 1000000;
  13.         for (int i = 0; i < pressure;  i)
  14.         {
  15.             SpeedTokenizer.segment(text);
  16. www.3559.com,        }
  17.         double costTime = (System.currentTimeMillis() - start) / (double)1000;
  18.         System.out.printf("分词速度:%.2f字每秒", text.length(卡塔尔国 * pressure / costTime);
  19.     }
  20. }

说明

  • 极速分词是词典最长分词,速度极度快,精度经常。

  • 在i7上跑出了2004万字每秒的进程。

算法详明

  • 《Aho Corasick自动机结合DoubleArrayTrie极速多方式相配》

拿到分词结果文件test_result.utf8,样式如图所示

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

* 训练

8. 客户自定义词典

  1. public class DemoCustomDictionary
  2. {
  3.     public static void main(String[] args)
  4.     {
  5.         // 动态扩充
  6.         CustomDictionary.add("攻城狮");
  7.         // 强行插队
  8.         CustomDictionary.insert("白富美", "nz 1024");
  9.         // 删除词语(注释掉试试)
  10. //        CustomDictionary.remove("攻城狮");
  11.         System.out.println(CustomDictionary.add("单身狗", "nz 1024 n 1"));
  12.         System.out.println(CustomDictionary.get("单身狗"));
  13.  
  14.         String text = "工程师逆袭单身汉,迎娶美眉,走上人生尖峰";  // 怎么大概噗哈哈!
  15.  
  16.         // DoubleArrayTrie分词
  17.         final char[] charArray = text.toCharArray();
  18.         CustomDictionary.parseText(charArray, new AhoCorasickDoubleArrayTrie.IHit<CoreDictionary.Attribute>()
  19.         {
  20.             @Override
  21.             public void hit(int begin, int end, CoreDictionary.Attribute value)
  22.             {
  23.                 System.out.printf("[%d:%d]=%s %sn", begin, end, new String(charArray, begin, end - begin), value);
  24.             }
  25.         });
  26.         // 首字哈希之后二分的trie树分词
  27.         BaseSearcher searcher = CustomDictionary.getSearcher(text);
  28.         Map.Entry entry;
  29.         while ((entry = searcher.next()) != null)
  30.         {
  31.             System.out.println(entry);
  32.         }
  33.  
  34.         // 标准分词
  35.         System.out.println(HanLP.segment(text));
  36.  
  37.         // Note:动态增加和删除不会潜移暗化词典文件
  38.         // 近期CustomDictionary使用DAT积累词典文件中的词语,用BinTrie积累动态参加的用语,前面一天品质高,后面一天品质低
  39.         // 之所以保留动态增加和删除作用,一方面是野史遗留本性,其他方面是调治用;现在只怕会去掉动态增加和删除天性。
  40.     }

说明

  • CustomDictionary是意气风发份全局的客商自定义词典,可以每一天增加和删除,影响整个分词器。

  • 此外能够在此外分词器中关闭它。通过代码动态增加和删除不会保留到词典文件。

追加词典

  • CustomDictionary主词典文本路线是data/dictionary/custom/CustomDictionary.txt,客商能够在这里扩大和睦的辞藻(不推荐);也能够独自新建一个文件文件,通过配备文件CustomDictionaryPath=data/dictionary/custom/CustomDictionary.txt; 我的词典.txt;来扩张词典(推荐)。

  • 一贯提出将相仿词性的用语放到同三个词典文件里,便于维护和分享。

词典格式

  • 每风度翩翩行代表四个单词,格式遵守[单词] [词性A] [A的频次] [词性B] [B的频次] ... 假若不填词性则代表选用词典的私下认可词性。

  • 词典的暗中同意词性私下认可是名词n,能够通过配备文件修正:全国地名大全.txt ns;若果词典路线前边空格紧接着词性,则该词典暗中同意是该词性。

  • 至于客商词典的更加的多音信请参见词典表达风华正茂(Wissu卡塔尔(英语:State of Qatar)章。

算法详整

  • 《Trie树分词》

  • 《Aho Corasick自动机结合DoubleArrayTrie极速多格局相称》

www.3559.com 7

·此处必得选取-t命令CXC60F 输出文本格式的模型cws.txt

*

9. 神州人名识别

  1. String[] testCase = new String[]{
  2.         "签订合同典礼前,秦光荣、李纪恒、仇和等一同拜见了与会签名的公司家。",
  3.         "王国强、高峰、汪洋、张松原光着头、韩寒、小四",
  4.         "张浩先生和胡健康复员回家了",
  5.         "王总和小丽成婚了",
  6.         "制片人邵钧林和稽道青说",
  7.         "这里有关天培的关于事迹",
  8.         "龚学平等老总,邓颖超计生前",
  9.         };
  10. Segment segment = HanLP.newSegment().enableNameRecognize(true);
  11. for (String sentence : testCase)
  12. {
  13.     List<Term> termList = segment.seg(sentence);
  14.     System.out.println(termList);
  15. }

说明

  • 当下分词器基本上都暗中认可开启了炎黄种人名识别,比如HanLP.segment()接口中应用的分词器等等,客商不用手动开启;上面包车型客车代码只是为了强调。

  • 有必然的误命中率,比如误命中关键年,则能够通过在data/dictionary/person/nr.txt加入一条关键年 A 1来排除关键年作为人名的恐怕,也足以将关键年用作新词登记到自定义词典中。

  • 如果您通过上述情势缓慢解决了难题,款待向自身付诸pull request,词典也是金玉的财富。

算法详细解释

  • 《实战HMM-Viterbi剧中人物表明中夏族民共和国人名识别》

分词结果文件test_result.utf8

·HanLP只极度C福睿斯F 的公文模型,不包容二进制

* @param trainingFile训练集

9. 音译人名识别

  1. String[] testCase = new String[]{
  2.                 "意气风发桶冰水当头倒下,微软的Bill盖茨、Facebook的扎克Berg跟Sander博格、Amazon的贝索斯、苹果的Cook全都不惜湿身入镜,这几个硅谷的科学技术人,飞蛾扑火似地就义演出,其实全为了慈祥。",
  3.                 "世界上最长的真名是简森·Joy·亚白云山大·比基·南安普顿斯勒·达夫·Eliot·Fox·Ivey鲁莫·马尔尼·梅尔斯·Patterson·汤普森·Wallace·普Reis顿。",
  4.         };
  5. Segment segment = HanLP.newSegment().enableTranslatedNameRecognize(true);
  6. for (String sentence : testCase)
  7. {
  8.     List<Term> termList = segment.seg(sentence);
  9.     System.out.println(termList);
  10. }

说明

  • 眼前分词器基本上都私下认可开启了音译人名识别,顾客不用手动开启;上面的代码只是为了重申。

算法详整

  • 《层叠隐马模型下的音译人名和马来西亚人名识别》

6、分词结果测量检验。利用backoff2007测量检验样品对分词结果test_result.utf8实行测验。
执行./icwb2-data/scripts/score ./icwb2-data/gold/pku_training_words.utf8 ./icwb2-data/gold/pku_test_gold.utf8 test_result.utf8 > test_result.score
此处,pku_training_words.utf8 和pku_test_gold.utf8是测验文件中自带的,test_result.utf8即为上步生成的文本。test_result.score即为末段模型的评分。

将cws.txt格式的模型传入CQashqaiFSegmenter或C昂CoraFLexicalAnalyzer的布局函数就可以创造分词器,同期HanLP会自动成立二进制缓存.txt.bin,下一次加载耗费时间将决定在数百皮秒内。

* @param developFile开发集

11. 印尼人名识别

  1. String[] testCase = new String[]{
  2.         "高山南参加演出了林诣彬发行人的《速激3》",
  3.         "林志玲(Lin Chi-ling卡塔尔(قطر‎展布网络好朋友:明确不是太田梦莉?",
  4. };
  5. Segment segment = HanLP.newSegment().enableJapaneseNameRecognize(true);
  6. for (String sentence : testCase)
  7. {
  8.     List<Term> termList = segment.seg(sentence);
  9.     System.out.println(termList);
  10. }

说明

  • 近来专门的工作分词器默许关闭了菲律宾人名识别,客户必要手动开启;那是因为韩国人名的现身频率异常的低,不过又花销品质。

算法精解

  • 《层叠隐马模型下的音译人名和菲律宾人名识别》

上述手续均能够复现,具体细节参谋www.52nlp.cn/汉语分词入门之字注解法4

预测

* @param modelFile模型保存路线

12. 地名识别

  1. String[] testCase = new String[]{
  2.         "武胜县新学乡政党楼房门前鼓乐齐鸣",
  3.         "蓝翔给宁夏林芝市彭阳县红河镇黑牛沟村赠送了推土机",
  4. };
  5. Segment segment = HanLP.newSegment().enablePlaceRecognize(true);
  6. for (String sentence : testCase)
  7. {
  8.     List<Term> termList = segment.seg(sentence);
  9.     System.out.println(termList);
  10. }

说明

  • 眼前标准分词器都暗中同意关闭了地名识别,客户供给手动开启;那是因为消耗质量,其实多数地名都选取在中央词典和顾客自定义词典中。

  • 在坐褥条件中,能靠词典清除的难题就靠词典消逝,这是最快捷稳固的章程。

算法详明

  • 《实战HMM-Viterbi角色标记地名识别》

可透过如下方式加载:

* @param compressRatio 压缩比

13. 机关名识别

  1. String[] testCase = new String[]{
  2.         "小编在新加坡林原科学技术有限公司全职职业,",
  3.         "作者平日在台川喜宴餐厅吃饭,",
  4.         "有时去苏禄海影城看电影。",
  5. };
  6. Segment segment = HanLP.newSegment().enableOrganizationRecognize(true);
  7. for (String sentence : testCase)
  8. {
  9.     List<Term> termList = segment.seg(sentence);
  10.     System.out.println(termList);
  11. }

说明

  • 一时分词器暗中认可关闭了单位名识别,客户要求手动开启;那是因为消耗质量,其实常用机构名都收音和录音在主导词典和客户自定义词典中。

  • HanLP的指标不是事必躬亲动态识别,在生育条件中,能靠词典消灭的标题就靠词典化解,那是最高效稳固的章程。

算法安详严整

  • 《层叠HMM-Viterbi剧中人物标记模型下的机构名识别》

CRFSegmenter segmenter = new CRFSegmenter(CWS_MODEL_PATH);

* @param maxIteration最大迭代次数

14. 根本词提取

  1. String content = "程序猿(德文Programmer卡塔尔国是专事程序支付、维护的正规化人员。日常将程序猿分为程序设计人士和程序编码职员,但两岸的界限并不十二分驾驭,特别是在中华夏族民共和国。软件从业职员分为低端程序员、高档程序员、系统一分配析员和项目主管四大类。";
  2. List<String> keywordList = HanLP.extractKeyword(content, 5);
  3. System.out.println(keywordList);

说明

  • 在那之中接受TextRankKeyword福寿绵绵,客户能够一贯调用TextRankKeyword.getKeywordList(document, size)

算法详细解释

  • 《TextRank算法提取关键词的Java完结》

ListwordList = segmenter.segment;

* @param threadNum线程数

15. 机动摘要

  1. String document = "算法可大概分成主旨算法、数据结构的算法、数论算法、总括几何的算法、图的算法、动态规划以致数值剖判、加密算法、排序算法、检索算法、随机化算法、并行算法、厄米变形模型、随机森林算法。n" 
  2.         "算法能够大规模的分成三类,n" 
  3.         "生机勃勃,有限的明显算法,那类算法在简单的生机勃勃段时间内终止。他们只怕要花不长日子来施行钦点的天职,但仍将要早晚的光阴内终止。那类算法得出的结果常决意于输入值。n" 
  4.         "二,有限的非明确算法,那类算法在轻易的时间内终止。但是,对于一个(或局地)给定的数值,算法的结果并非独步天下的或分明的。n" 
  5.         "三,无限的算法,是这些由于未有概念终止定义法规,或概念的尺度无法由输入的数据满意而不销声匿迹运维的算法。平常,无限算法的发生是由于未能鲜明的概念终止条件。";
  6. List<String> sentenceList = HanLP.extractSummary(document, 3);
  7. System.out.println(sentenceList);

说明

  • 里面使用TextRankSentence得以完毕,客户能够一直调用TextRankSentence.getTopSentenceList(document, size)

算法详整

  • 《TextRank算法自动摘要的Java达成》

System.out.println;

* @return 贰个分包模型和精度的组织

16. 短语提取

  1. String text = "算法程序猿n" 
  2.         "算法(Algorithm)是黄金年代各个解决难点的永垂不朽指令,也正是说,能够对一定规范的输入,在少数时间内获得所须求的出口。" 
  3.         "倘若一个算法有劣势,或不相符于某些难题,实践这一个算法将不会缓和那一个难点。不一样的算法或者用分歧的时刻、" 
  4.         "空间或成效来形成相近的职分。三个算法的上下能够用空间复杂度与时间复杂度来衡量。算法技术员正是选择算法管理东西的人。n" 
  5.         "n" 
  6.         "1职位简单介绍n" 
  7.         "算法程序猿是一个百般高等的职责;n" 
  8.         "职业供给:Computer、电子、通讯、数学等相关规范;n" 
  9.         "文化水平必要:本科及其以上的文凭,大大多是博士文凭及其以上;n" 
  10.         "语言必要:乌克兰语要求是内行,基本上能读书海外专业书刊;n" 
  11.         "必需明白Computer有关知识,领悟使用虚假工具MATLAB等,必须会一门编制程序语言。n" 
  12.         "n" 
  13.         "2研讨方向n" 
  14.         "摄像算法技术员、图像处清理计算法程序员、音频算法程序员 通讯基带算法技术员n" 
  15.         "n" 
  16.         "3脚下国内外处境n" 
  17.         "最近境内从事算法研商的程序猿不菲,可是高端算法程序猿却超级少,是几个可怜贫乏的科班技术员。" 
  18.         "算法程序猿依照研商领域来分首要有韵律/录像算法管理、图像本领方面包车型客车二维音信算法管理和通讯物理层、" 
  19.         "雷达功率信号管理、生物工学功率信号管理等世界的生龙活虎维音讯算法管理。n" 
  20.         "在微机音录制和图形图像技巧等二维新闻算法管理地点最近可比进步的录像拍卖算法:机器视觉成为此类算法商讨的骨干;" 
  21.         "其它还也是有2D转3D算法(2D-to-3D conversion卡塔尔国,去隔行算法(de-interlacing卡塔尔国,运动推测运动补偿算法" 
  22.         "(Motion estimation/Motion Compensation卡塔尔(قطر‎,去噪算法(Noise Reduction卡塔尔,缩放算法(scaling卡塔尔(英语:State of Qatar)," 
  23.         "锐化管理算法(Sharpness卡塔尔(قطر‎,超分辨率算法(Super Resolution卡塔尔(قطر‎,手势识别(gesture recognition卡塔尔,人脸识别(face recognition卡塔尔。n" 
  24.         "在通讯物理层等豆蔻年华维消息领域近期常用的算法:有线领域的PAJERORM、RTT,传送领域的调制解调、信道均衡、频限信号检查实验、互连网优化、复信号表明等。n" 
  25.         "其余数码发掘、网络寻觅算法也改为现行反革命的热点方向。n" 
  26.         "算法工程师逐步往人工智能方向升高。";
  27. List<String> phraseList = HanLP.extractPhrase(text, 5);
  28. System.out.println(phraseList);

说明

  • 里头使用MutualInformationEntropyPhraseExtractor贯彻,客户能够间接调用MutualInformationEntropyPhraseExtractor..extractPhrase(text, size)

算法详细解释

  • 《基于互消息和左右音讯熵的短语提取识别》

不传播模型路径时将暗中同意加载配置文件内定的模子。

* @throws IOException

17. 拼音转变

  1. /**
  2.  * 汉字转拼音
  3.  * @author hankcs
  4.  */
  5. public class DemoPinyin
  6. {
  7.     public static void main(String[] args)
  8.     {
  9.         String text = "重载不是沉重";
  10.         List<Pinyin> pinyinList = HanLP.convertToPinyinList(text);
  11.         System.out.print("原文,");
  12.         for (char c : text.toCharArray())
  13.         {
  14.             System.out.printf("%c,", c);
  15.         }
  16.         System.out.println();
  17.         System.out.print("拼音(数字音调),"卡塔尔(قطر‎;
  18.         for (Pinyin pinyin : pinyinList)
  19.         {
  20.             System.out.printf("%s,", pinyin);
  21.         }
  22.         System.out.println();
  23.         System.out.print("拼音(符号音调),"卡塔尔(قطر‎;
  24.         for (Pinyin pinyin : pinyinList)
  25.         {
  26.             System.out.printf("%s,", pinyin.getPinyinWithToneMark());
  27.         }
  28.         System.out.println();
  29.         System.out.print("拼音(无音调),");
  30.         for (Pinyin pinyin : pinyinList)
  31.         {
  32.             System.out.printf("%s,", pinyin.getPinyinWithoutTone());
  33.         }
  34.         System.out.println();
  35.         System.out.print("声调,");
  36.         for (Pinyin pinyin : pinyinList)
  37.         {
  38.             System.out.printf("%s,", pinyin.getTone());
  39.         }
  40.         System.out.println();
  41.         System.out.print("声母,");
  42.         for (Pinyin pinyin : pinyinList)
  43.         {
  44.             System.out.printf("%s,", pinyin.getShengmu());
  45.         }
  46.         System.out.println();
  47.         System.out.print("韵母,");
  48.         for (Pinyin pinyin : pinyinList)
  49.         {
  50.             System.out.printf("%s,", pinyin.getYunmu());
  51.         }
  52.         System.out.println();
  53.         System.out.print("输入法头,"卡塔尔(英语:State of Qatar);
  54.         for (Pinyin pinyin : pinyinList)
  55.         {
  56.             System.out.printf("%s,", pinyin.getHead());
  57.         }
  58.         System.out.println();
  59.     }
  60. }

说明

  • HanLP不只有援救底工的汉字转拼音,还扶助声母、韵母、音调、音标和输入法首字母首声母功效。

  • HanLP能够辨识多音字,也能给繁体粤语注拼音。

  • 最首要的是,HanLP采取的格局相称晋级到AhoCorasickDoubleArrayTrie,品质大幅度升级,能够提供阿秒级的响应速度!

算法详细解释

  • 《汉字转拼音与简繁调换的Java完毕》

词性标明

*/

18. 简繁转变

  1. /**
  2.  * 简繁转变
  3.  * @author hankcs
  4.  */
  5. public class DemoTraditionalChinese2SimplifiedChinese
  6. {
  7.     public static void main(String[] args)
  8.     {
  9.         System.out.println(HanLP.convertToTraditionalChinese("用台式机Computer写程序"卡塔尔卡塔尔(英语:State of Qatar);
  10.         System.out.println(HanLP.convertToSimplifiedChinese("「以後等妳當上皇后,就会買士多黄冠梨慶祝了」"卡塔尔(英语:State of Qatar)卡塔尔;
  11.     }
  12. }

说明

  • HanLP能够分辨简繁分歧词,比方打印机=印表機。相当多简繁调换工具不可能分别“现在”“皇后”中的几个“后”字,HanLP能够。

算法详细解释

  • 《汉字转拼音与简繁转变的Java完结》

CWranglerF词性标记器的操练与加载与普通话分词相同,对应CWranglerFPOSTagger。

public Result train(String trainingFile, String developFile,

19. 文件推荐

  1. /**
  2.  * 文本推荐(句子等第,从生机勃勃多级句子中挑出与输入句子最相像的那叁个卡塔尔
  3.  * @author hankcs
  4.  */
  5. public class DemoSuggester
  6. {
  7.     public static void main(String[] args)
  8.     {
  9.         Suggester suggester = new Suggester();
  10.         String[] titleArray =
  11.         (
  12.                 "William王子发布解说 呼吁维护野生动物n" 
  13.                 "《时代》年度人物最后入围名单出炉 普京(Pu Jing卡塔尔国马云(Jack Ma卡塔尔(قطر‎当选n" 
  14.                 "“黑格比”横扫菲:菲吸取“海燕”阅世尽快疏散n" 
  15.                 "东瀛保密法将行业内部生效 韩媒指其妨害百姓知情权n" 
  16.                 "英报告说空气污染带来“公共健康风险”"
  17.         ).split("\n");
  18.         for (String title : titleArray)
  19.         {
  20.             suggester.addSentence(title);
  21.         }
  22.         System.out.println(suggester.suggest("发言", 1));       // 语义
  23.         System.out.println(suggester.suggest("风险公共", 1卡塔尔(قطر‎卡塔尔;   // 字符
  24.         System.out.println(suggester.suggest("mayun", 1));      // 拼音
  25.     }
  26. }

说明

  • 在追寻引擎的输入框中,顾客输入三个词,寻觅引擎会联想出最合适的寻找词,HanLP完成了就如的效用。

  • 能够动态调整每一个识别器的权重

取名实体识别

String modelFile, final double compressRatio,

20. 语义间距

  1. /**
  2.  * 语义间距
  3.  * @author hankcs
  4.  */
  5. public class DemoWordDistance
  6. {
  7.     public static void main(String[] args)
  8.     {
  9.         String[] wordArray = new String[]
  10.                 {
  11.                         "香蕉",
  12.                         "苹果",
  13.                         "白菜",
  14.                         "水果",
  15.                         "蔬菜",
  16.                         "自行车",
  17.                         "公交车",
  18.                         "飞机",
  19.                         "买",
  20.                         "卖",
  21.                         "购入",
  22.                         "新年",
  23.                         "春节",
  24.                         "丢失",
  25.                         "补办",
  26.                         "办理",
  27.                         "送给",
  28.                         "寻找",
  29.                         "孩子",
  30.                         "教室",
  31.                         "教师",
  32.                         "会计",
  33.                 };
  34.         for (String a : wordArray)
  35.         {
  36.             for (String b : wordArray)
  37.             {
  38.                 System.out.println(a   "t"   b   "t之间的相距是t"   CoreSynonymDictionary.distance(a, b));
  39.             }
  40.         }
  41.     }
  42. }

说明

  • 设想的使用项景是搜索引擎对词义的明白,词与词并不只存在“同义词”与“非同义词”的涉嫌,就终于同义词,它们之间的意思也会有微妙的分化的。

算法

  • 为种种词分配八个语义ID,词与词的间距通过语义ID的差获得。语义ID通过《同义词词林扩展版》总括而来。

C中华VF命名实体识别也是近乎的用法,对应C本田UR-VFNERecognizer。

final int maxIteration, final int threadNum) throws IOException

21. 共处句法分析

  1. /**
  2.  * 依存句法分析
  3.  * @author hankcs
  4.  */
  5. public class DemoDependencyParser
  6. {
  7.     public static void main(String[] args)
  8.     {
  9.         System.out.println(HanLP.parseDependency("把市场经济实行的对等调换条件引入党的生存和国家机关行政事务活动中")卡塔尔国;
  10.     }
  11. }

说明

  • 中间使用MaxEntDependencyParser金玉满堂,客户能够直接调用MaxEntDependencyParser.compute(sentence)

  • 也可以调用基于随机条件场的幸存句法深入分析器CRFDependencyParser.compute(sentence)

  • 在密闭测验集上正确率有五分之四上述,但在开放测量检验集上则倒霉好。

算法详细明白

  • 《最大熵依存句法解析器的兑现》

  • 《基于CMuranoF系列注脚的普通话依存句法深入分析器的Java实现》

CEscortF词法解析器

单线程时采取AveragedPerceptron算法,收敛较好;三十二线程时行使StructuredPerceptron,波动比较大。关于二种算法的精度比较,请参照他事他说加以考查下一小节。近些日子默许二十四线程,线程数为系统CPU宗旨数。请依照自己的急需平衡精度和进程。

词典表明

本章详细介绍HanLP中的词典格式,满意顾客自定义的急需。HanLP中有众多词典,它们的格式都是日常的,情势都以文本文书档案,任何时候能够改善。

演练了1至3个模型后,能够组织C中华VF词法剖判器:

准确率

着力格式

词典分为词频词性词典和词频词典。

词频词性词典

  • 每意气风发行代表一个单词,格式服从[单词] [词性A] [A的频次] [词性B] [B的频次] ...

词频词典

  • 每风华正茂行代表一个单词,格式服从[单词] [单词的频次]

  • 每风度翩翩行的相间符为空格符或制表符

个别词典有和好的专项使用格式,举例同义词词典宽容《同义词词林扩张版》的文本格式,而调换矩阵词典则是三个csv表格。

下文首要介绍通用词典,如不注脚,词典特指通用词典。

/**

在sighan二零零五的msr数据集上的质量评估结果如下:

数据布局

Trie树(字典树)是HanLP中接收最多的数据构造,为此,笔者完结了通用的Trie树,扶植泛型、遍历、积存、载入。

客户自定义词典选用AhoCorasickDoubleArrayTrie和二分Trie树累积,别的词典选择基于双数组Trie树(DoubleArrayTrie)实现的AC自动机AhoCorasickDoubleArrayTrie。

* 布局C讴歌ZDXF词法深入分析器

www.3559.com 8

仓库储存格局

词典有四个造型:文本文件(filename.txt卡塔尔(قطر‎和缓存文件(filename.txt.bin或filename.txt.trie.dat和filename.txt.trie.value卡塔尔国。

文件文件  

  • 动用公开积存,UTF-8编码,C路虎极光LF换行符。

缓存文件

  • 正是部分二进制文件,经常在文书文件的文书名后边加上.bin表示。有的时候候是.trie.dat和.trie.value。后面一个是历史遗留产品,分别代表trie树的数组和值。

  • 意气风发旦您改改了其余词典,唯有删除缓存能力一蹴而就。

*

l语言材质未进行其余预管理

改进议程

HanLP的主导词典锻炼自人民早报二零一五语料,语料不是巨细无遗的,总会设有部分错误。这个错误或者会形成分词现身奇异的结果,那时候请张开调节和测量检验情势每一种审核难点:

  1. HanLP.Config.enableDebug();

宗旨词性词频词典

  • 比方您在data/dictionary/CoreNatureDictionary.txt中开掘了一个不是词的词,大概词性表明得鲜明不对,那么你能够改正它,然后删除缓存文件使其收效。

主导二元文法词典

  • 二元文法词典data/dictionary/CoreNatureDictionary.ngram.txt仓库储存的是三个词的后续,假使您发掘不容许存在此种持续时,删掉就可以。

  • 你也足以加多你感到合理的接续,可是那三个词必需同一时间在核心词典中才会收效。

取名实体识别词典

  • 据说角色标明的命名实体识别比较信赖词典,所以词典的材料小幅影响识别品质。

  • 这个词典的格式与原理都以周围的,请阅读相应的小说或代码更改它。

假诺难点消除了,招待向自个儿付诸四个pull request,那是自身在代码库中保留明文词典的原委,众擎易举!


* @param cwsModelPath CEscortF分词器模型路线

l只使用了7种处境特征,未选择词典

版权

* @param posModelPath CSportageF词性标记器模型路线

l压缩比0.0,迭代数50

Apache License Version 2.0

  • Apache License Version 2.0

  • HanLP成品最早知识产权归法国首阿比让原信息科学技术有限公司具有,任哪个人和公司能够无条件使用,能够对产品、源代码举办此外方式的退换,能够打包在别的付加物中进行出卖。

  • 此外利用了HanLP的不论什么事或部分成效、词典、模型的门类、付加物或作品等格局的硕果必得显式注明HanLP及此项目主页。

* @param nerModelPath C大切诺基F命名实体识别器模型路线

l总耗费时间包罗语言材质加载与模型类别化

鸣谢

多谢下列卓绝开源项目:

  • darts-clone-java

  • aho-corasick

  • SharpICTCLAS

  • snownlp

  • ansj_seg

  • nlp-lang

多谢NLP界各位行家老师的作文:

  • 《基于剧中人物标明的中华夏儿女民共和国人名自动识别研商》张华平 刘群

  • 《基于层叠隐马尔可夫模型的中文命名实体识别》俞鸿魁 张华平 刘群 吕学强 施水才

  • 《基于剧中人物标记的中文机构名识别》俞鸿魁 张华平 刘群

  • 《基于最大熵的依存句法解析》 辛霄 范士喜 王轩 李光

  • An Efficient Implementation of Trie Structures, JUN-ICHI AOE AND KATSUSHI MORIMOTO

  • TextRank: Bringing Order into Texts, Rada Mihalcea and Paul Tarau

*/

l对任性PerceptronTagger,客户都足以调用正确率评估接口:

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

/**

/**

* 品质测验

* 加载配置文件钦赐的模子

*

*

* @param corpora 数据集

* @throws IOException

* @return 暗许重回accuracy,有个别子类只怕重回P,凯雷德,F1

*/

* @throws IOException

public CRFLexicalAnalyzer() throws IOException

*/

结构后能够调用analyze接口或与旧接口兼容的seg:

public double[] evaluate(String corpora) throws IOException

CRFLexicalAnalyzer analyzer = new CRFLexicalAnalyzer();

速度

String[] tests = new String[]{

脚下感知机分词是负有“由字构词”的分词器实现中最快的,比自身写的CEnclaveF解码快1倍。新版C安德拉F词法深入分析器框架复用了感知机的Witt比解码算法,所以速度保持平衡。

"商品和劳务",

www.3559.com 9

"上海华安工企COO谭旭光和书记胡花蕊来到United States伦敦今世艺术博物馆参观",

l测量试验时需关闭词法深入分析器的自定义词典、词性申明和命名实体识别

"微软集团於1974年由比爾·蓋茲和保羅·艾倫創立,18年啟動以智慧雲端、前端為導向的大改組。" // 援助繁体汉语

l测量试验境况 Java8 i7-6700K

};

测试

for (String sentence : tests)

测验时只需提供分词模型的门路就可以:

{

public void testCWS() throws Exception

System.out.println(analyzer.analyze);

{

System.out.println(analyzer.seg);

PerceptronSegmenter segmenter = new PerceptronSegmenter(Config.CWS_MODEL_FILE);

}

System.out.println(segmenter.segment;

在1.6.2以上版本中,全体的词法剖判接口都同时辅助简繁。

}

健康情状下对商品和劳务的分词结果为[商品, 和, 服务]。提议在其它语言质地上练习时都试黄金时代试那几个大约的语句,当做HelloWorld来测验。若这些事例都错了,则注解语言材质格式、规模或API调用上存在难题,须稳重每一种核实,而毫不急着布置上线。

其它,数据包中已经打包了在人民早报语料1999年1十一月份上操练的模子,不传路线时将暗许加载配置文件中钦点的模子。

在本系统中,分词器PerceptronSegmenter的效果与利益特别纯粹,仅仅担负分词,不再担负词性评释或命名实体识别。那是三次接口设计上的新尝试,以往大概在v2.0广东中国广播企业泛使用这种思路去重构。

编辑:www.3559.com 本文来源:自然语言处理之分词3,分词工具Hanlp基于感知机

关键词: www.3559.com