文档章节

开源的自然语言处理工具

javaex999
 javaex999
发布于 2014/05/05 02:09
字数 643
阅读 363
收藏 9

学习自然语言这一段时间以来接触和听说了好多开源的自然语言处理工具,在这里做一下汇总方便自己以后学习,其中有自己使用过的也有了解不是很多的,对于不甚了解的工具以后学习熟悉了会做更新的。

1.IKAnalyzer

IK Analyzer是一个开源的,基于Java语言开发的轻量级的中文分词工具包。从2006.12推出1.0版本开始,IK Analyzer已经推出了多个版本,当前最新版本为2012 u6,最初基于Luence,从3.0开始成为面向Java的公用分词组件,独立于Luence,下载地址为:http://code.google.com/p/ik-analyzer/。IK支持细粒度和智能分词两种切分模式,支持英文字母、数字、中文词汇等分词处理,兼容韩文、日文字符。可以支持用户自定义的词典,通过配置IKAnalyzer.cfg.xml文件来实现,可以配置自定义的扩展词典和停用词典。词典需要采用UTF-8无BOM格式编码,并且每个词语占一行。配置文件如下所示:

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. <properties>    

  2.     <comment>IK Analyzer 扩展配置</comment>  

  3.     <!--用户可以在这里配置自己的扩展字典-->   

  4.     <entry key="ext_dict">ext.dic;</entry>   

  5.       

  6.     <!--用户可以在这里配置自己的扩展停止词字典-->  

  7.     <entry key="ext_stopwords">stopword.dic;chinese_stopword.dic</entry>   

  8.       

  9. </properties>  


IK部署很简单,只需要把IKAnalyzer2012_u6.jar部署于项目的lib中,同时将IKAnalyzer.cfg.xml文件以及词典文件置于src中,即可通过API的方式开发调用。

示例代码:

[java] view plaincopy在CODE上查看代码片派生到我的代码片

  1. /** 

  2.      * IK分词功能实现 

  3.      * @return  

  4.      */  

  5.     public String spiltWords(String srcString){  

  6.         StringBuffer wordsBuffer = new StringBuffer("");  

  7.         try{  

  8.             IKSegmenter ik=new IKSegmenter(new StringReader(srcString), true);    

  9.             Lexeme lex=null;    

  10.             while((lex=ik.next())!=null){    

  11. //              System.out.print(lex.getLexemeText()+" ");  

  12.                 wordsBuffer.append(lex.getLexemeText()).append(" ");  

  13.             }  

  14.         }catch(Exception e){  

  15.             logger.error(e.getMessage());  

  16.         }  

  17.         return wordsBuffer.toString();  

  18.     }  

 

IK简单、易于扩展,分词结果较好并且采用Java编写,因为我平时的项目以Java居多,所以是我平时处理分词的首选工具。

2.中科院ICTCLAS

ICTCLAS是由中科院计算所历经数年开发的分词工具,采用C++编写。最新版本命名为ICTCLAS2013,又名为NLPIR汉语分词系统,官网为:http://ictclas.nlpir.org/。主要功能包括中文分词、词性标注、命名实体识别、用户词典功能,同时支持GBK编码、UTF8编码、BIG5编码,新增微博分词、新词发现与关键词提取。可以可视化界面操作和API方式调用。


本文转载自:http://blog.csdn.net/cuixianpeng/article/details/16288307

javaex999
粉丝 10
博文 18
码字总数 21262
作品 0
西城
程序员
私信 提问
NLP自然语言处理基础之hanlp入门

自然语言处理定义: 自然语言处理是一门计算机科学、人工智能以及语言学的交叉学科。虽然语言只是人工智能的一部分(人工智能还包括计算机视觉等),但它是非常独特的一部分。这个星球上有许...

左手的倒影
2018/07/24
142
0
Hanlp中文自然语言处理入门基础知识

自然语言处理定义: 自然语言处理是一门计算机科学、人工智能以及语言学的交叉学科。虽然语言只是人工智能的一部分(人工智能还包括计算机视觉等),但它是非常独特的一部分。这个星球上有许...

adnb34g
2018/07/24
0
0
热点 | 六月Github热点项目库总结

【磐创AI导读】:Github是全球最大的开源代码社区。接下来磐创AI将为大家介绍几个六月Github热点项目库。 目录 介绍 Github热点项目库 Facebook's DensePose NLP Progress MLflow Salesforc...

技术小能手
2018/07/12
0
0
自然语言处理NLP开发有哪些值得关注的开源工具?

智能语音助理、聊天机器人是时下人工智能的热点和突破口,但是并非每家公司都具备谷歌、Facebook、亚马逊、苹果等公司的经济和技术实力来开发NLP应用,尤其是难度最大的会话型NLP应用。 所幸...

CashCat
2018/10/19
0
0
JAVA自然语言处理NLP工具包

Java自然语言处理 LingPipe LingPipe 是一个自然语言处理的Java开源工具包。LingPipe目前已有很丰富的功能,包括主题分类(Top Classification)、命名实体识别(Named Entity Recognition)...

javaex999
2014/05/05
18.3K
0

没有更多内容

加载失败,请刷新页面

加载更多

只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
59
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
28
0
全世界到底有多少软件开发人员?

埃文斯数据公司(Evans Data Corporation) 2019 最新的统计数据(原文)显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640万,到 2023 年达到 2770万。 而来自...

红薯
昨天
65
0
Go 语言基础—— 通道(channel)

通过通信来共享内存(Java是通过共享内存来通信的) 定义 func service() string {time.Sleep(time.Millisecond * 50)return "Done"}func AsyncService() chan string {retCh := mak......

刘一草
昨天
58
0
Apache Flink 零基础入门(一):基础概念解析

Apache Flink 的定义、架构及原理 Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态或无状态的计算,能够部署在各种集群环境,对各种规模大小的数据进行快速...

Vincent-Duan
昨天
60
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部