用python处理自然语言,精通python自然语言处理 pdf
自然语言处理
1.Java自然语言处理链接管道
用于自然语言处理的Java开源工具包。Pipe现在有了丰富的功能。顶级分类、命名实体识别、词性标注、句子检测和拼写检查)短语检测、聚类、字符语言建模、医学文献下载解析和索引、数据库文本挖掘、中文分词、情感分析、情感分析
2.中文自然语言处理工具包FudanNLP
FudanNLP是一个主要为中文自然语言处理开发的工具包,它还包括机器学习算法和这些任务的数据集。
dannlp的当前实现如下。
中文处理工具中文分词
词性标注
实体名称识别
语法分析
时间公式识别
红外的
机器学习平均感知器
被动-主动算法
k平均值
精确推理
3.Apache OpenNLP,一个自然语言处理工具
OpenNLP是一个用于处理自然语言文本的机器学习工具包。它支持许多常见的自然语言处理任务,包括识别、句子分割、词性标注、名称提取、分块和分析。
下载链接:http://opennlp.apache.org/
4.自然语言处理工具CRF
CRF是著名的条件随机场开源工具,也是目前综合性能最好的CRF工具。CRF本身是一个古老的工具,但由于其良好的性能,仍然是自然语言处理的重要工具。
NlpBamboo中文分词库用的就是这个工具。
有叉子的图书馆。
下载地址http://search.maven.org/#浏览 11864822
学习了自然语言,听说了很多开源的自然语言处理工具。下面总结一下,供大家自己学习。他们有的自己用过,有的没用过。对于不熟悉的工具,以后学习习惯后再更新。
分词组件
1.分词器
IK Analyzer是基于Java语言开发的开源、轻量级中文分词工具包。自2006年12月的1.0版本以来,IK Analyzer已经发布了多个版本。目前最新版本是2012 u6,最初基于Luence,从3.0开始成为Java通用的分词组件。独立于Luence,下载地址为http://git.Oschina.net/wltea,的IK支持两种分词模式:细粒度智能分词,英文、数字、中文单词的分词处理。兼容韩文和日文字符,可支持和实现用户自定义词典IKAnalyzer.cfg.xml文件配置自定义扩展词典或禁用词典。字典必须以UTF-8 BOM自由格式编码,每个单词占一行。配置文件如下。
IKAnalyzer扩展配置
ext.dic
stopword.dic中文_停用词. dic
部署IK非常简单。只需将IKAnalyzer2012_u6.jar部署到项目的lib中,将IKAnalyzer.cfg.xml和字典文件放在src中,就可以在API中进行开发调用了。
示例代码:
//*
*实现IK分词功能
* @返回
*/
publicstringspiltwords(string srcstring){
stringbufferwordsbuffer=新字符串缓冲区();
尝试{
iksegmenterik=newiksegmenter(新字符串读取器)srcstring),true);
Lexemelex=null
wile () ) lex=ik.next)!=null ) {
//system . out . print(lex . getlexemetext())、)、));
words buffer . append(lex . getlexemetext()))。append));
}
(}接住
(例外){
logger . error(e . getmessage());
}
returnwordsbuffer . tostring();
}
IK简单,易扩展,分词效果好,用Java写的。因为我平时的项目多是Java,所以它是我首选的分词工具。
2.中国科学院ICTCLAS
ICTCLAS是中科院计算所历时数年研发的分词工具。是用c写的,最新版本命名为ICTCLAS2013,也叫NLPIR中文分词系统,官网http://ictclas.nlpir.org/。功能主要包括中文分词、词性标注、命名实体识别、用户词典功能。同时支持GBK编码、UTF8编码、BIG5编码,并增加微博分词、新词发现、关键词提取等功能。可以通过可视化界面操作和API调用。
3.FudanNLP
FudanNLP主要是为中文自然语言处理开发的工具包,它还包含机器学习算法和数据集来实现这些任务。FudanNLP及其包含的数据集使用LGPL3.0许可。
主要功能包括:
信息检索:文本分类,新闻聚类。
中文处理:中文分词、词性标注、实体名称识别、关键词提取、依存句法分析、时间短语识别。
结构化学习:在线学习、层次分类、聚类和精确推理。
该工具是用Java编写的,提供了API访问和调用方法。最新版本是FudanNLP-1.6.1,下载地址是http://code.google.com/p/fudannlp/.
使用时,在项目中部署fudannlp.jar和lib中的jar。存储在models文件夹中的模型文件主要用于分词、词性标注、命名实体识别以及分词所需的词典;示例文件夹主要包含使用的示例代码,可以帮助你快速入门和使用;Java-docs是一个API帮助文档;源代码存储在src中;PDF里有自然语言处理基础知识的详细介绍和讲解。
初始程序运行的时候初始化时间有点长,模型加载的时候占用内存比较大。感觉分析的结果在语法分析中不是很准确。
4.斯坦福自然语言处理小组
斯坦福大学的自然语言处理团队——斯坦福自然语言处理小组开发了许多自然语言处理工具。官方网站的网址是:http://nlp.stanford.edu/software/index.shtml.开发的工具包括以下内容:
4.1斯坦福CoreNLP
一个用Java写的面向英语的处理工具,从http://nlp.stanford.edu/software/corenlp.shtml.下载的功能主要有分词、词性标注、命名实体识别、语法分析等。
我用它恢复过英语单词的词性。详情见文章《采用Stanford CoreNLP实现英文单词词形还原》。
4.2斯坦福分词器
分词采用CRF(条件随机场)算法,也是基于Java开发的,可以同时支持中文和阿拉伯文。官方要求是Java版本1.6以上,建议内存至少1G。下载地址是http://nlp.stanford.edu/software/segmenter.shtml.
简单的示例程序,用于:
//设置分词系统属性。
properties props=new properties();
//字典文件地址,可以用绝对路径,比如d:/data
props . set property( sighanCorporaDict , data );
//字典压缩包地址,可以用绝对路径。
Props.set属性( ser dictionary , data/dict-specular hat 6 . ser . gz );
//输入文本的代码;
props . set property( input encoding , UTF-8 );
props . set property( sighan后处理, true );
//初始化分词系统,
crfclassiferclassifier=newCRFClassifier(props);
//从持久性文件中加载分词系统设置;
classifier . loadclassifiernoexceptions( data/CTB . gz ,props);
//flagsmustbere-setafterdataisloaded
classifier . flags . set properties(props);
//分词
list words=classifier . segment string(语句内容);
4.3斯坦福POS标签
用Java编写的命名实体识别工具,支持英语、中文、法语、阿拉伯语和德语。下载地址:http://nlp.stanford.edu/software/tagger.shtml.我还没有接触过它,所以我需要以后研究它。
4.4斯坦福命名实体识别器
4.5斯坦福解析器
4.6斯坦福分类器
5.jcseg
Jcseg是一款基于mmseg算法的轻量级中文分词机器,集关键词抽取、关键短语抽取、关键句子抽取、文章自动摘要等功能于一体。还提供了基于Jetty的web服务器,方便各大语言直接http调用,提供了lucene,solr,elasticsearch最新的分词接口!Jcseg自带一个jcseg.properties文件,可以快速配置得到适合不同场合的分词应用,比如:最大匹配单词长度、是否开启中文姓名识别、是否添加拼音、是否添加同义词等!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。