hanlp 如果自己加了词典 语义就出不来,他直接拿下标的,但是要是语义拿不到能不能也不要报错,大不了给个null
public static void addDic(){
boolean add = CustomDictionary.add("后天", time);
}
// 分词
List<Term> termList = StandardTokenizer.segment(sentence);
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at com.hankcs.hanlp.seg.common.Vertex.guessNature(Vertex.java:313)
at com.hankcs.hanlp.recognition.nr.PersonRecognition.roleObserve(PersonRecognition.java:88)
at com.hankcs.hanlp.recognition.nr.PersonRecognition.Recognition(PersonRecognition.java:34)
at com.hankcs.hanlp.seg.Viterbi.ViterbiSegment.segSentence(ViterbiSegment.java:78)
at com.hankcs.hanlp.seg.Segment.seg(Segment.java:523)
at com.hankcs.hanlp.tokenizer.StandardTokenizer.segment(StandardTokenizer.java:40)
at top.starp.util.HanLPUtil.extractTimeRange(HanLPUtil.java:26)
at top.starp.util.HanLPUtil.main(HanLPUtil.java:78)
/**
* 猜测最可能的词性,也就是这个节点的词性中出现频率最大的那一个词性
*
* @return
*/
public Nature guessNature()
{
return attribute.nature[0];
}
文档:hanlp 如果自己加了词典 语义就出不来
链接:http://note.youdao.com/noteshare?id=ff1069d01481b9d5d06a098c33f88270&sub=C22E4E568BB946FC8221928B04CD82BF
return attribute.nature.length>0?attribute.nature[0]:null;
Linux
Linux系统下安装需要注意使用管理员权限,同时要安装java:
$ sudo apt install openjdk-11-jdk
$ sudo pip3 install -U pyhanlp
安装完成在初次导入模块时候会下载jar包和词典文件,由于词典文件比较大通常需要手动下载好再放进对应的文件夹:/usr/local/lib/python3.6/dist-packages/pyhanlp/static
,经过测试发现使用axel多线程下载的方法最快:
$ axel -n 200 http://114.115.185.60/file/data-for-1.7.5.zip
windows
Windows下面同样需要java环境和手动下载好数据文件,放置到路径C:\Applications\WPy64-3720\python-3.7.2.amd64\Lib\site-packages\pyhanlp\static
下,同时还需要解压出来,最后目录结构如下: