Apache OpenNlp的初探
Nlp:nature language processing.自然语言识别。
最近正好再做一个跟nlp有关的项目,正好就跟着了解了一下nlp的学习和使用以及原理。
先来说下使用。在这里笔者以在IDE中开发为例来说明。
环境:IDEA+jdk8+maven 3.5.2
新建maven项目,添加nlp的maven依赖:
<dependency><groupId>org.apache.opennlp</groupId><artifactId>opennlp-tools</artifactId><version>1.8.4</version>
</dependency>
然后就可以使用nlp的开发工具了。我们来看一些实例:
//divide sentencespublic static void SentenceDetect() throws IOException {String paragraph = "Hi. How are you? This is JD_Dog. He is my good friends.He is very kind.but he is no more handsome than me. ";InputStream is = new FileInputStream("E:\\NLP_Practics\\models\\en-sent.bin");SentenceModel model = new SentenceModel(is);SentenceDetectorME sdetector = new SentenceDetectorME(model);String sentences[] = sdetector.sentDetect(paragraph);for (String single : sentences) {System.out.println(single);}is.close();}
这是一个英文分词的实例,我们首先要去下载英文分词的模型,在这里,我将它放到了E:\NLP_Practics\models\目录下。
关于更多模型的下载可以在地址:
http://maven.tamingtext.com/opennlp-models/models-1.5/
中找到。
我们来看下对应的输出结果:
Hi. How are you?
This is JD_Dog.
He is my good friends.He is very kind.but he is no more handsome than me.
是不是很神奇呢?哈哈哈也没什么可神奇的。这里只是使用现有的一个简单模型做了一个示范,模型是从大量的训练数据中具象出来的,因此分析的结果好坏还要取决于你使用的模型。
我们再看一个英文分词的例子:
//devide wordspublic static void Tokenize() throws IOException {InputStream is = new FileInputStream("E:\\NLP_Practics\\models\\en-token.bin");TokenizerModel model = new TokenizerModel(is);Tokenizer tokenizer = new TokenizerME(model);String tokens[] = tokenizer.tokenize("Hi. How are you? This is Richard. Richard is still single. please help him find his girl");for (String a : tokens)System.out.println(a);is.close();}
运行结果:
Hi
.
How
are
you
?
This
is
Richard
.
Richard
is
still
single
.
please
help
him
find
his
girl
其他的使用方式,后续再写或者,读者有什么需求可留言联系
另,诚如上文所述,笔者是一位非常帅气才高八斗学富五车玉树临风一朵梨花压海棠集才华与智慧与一体的棒小伙,有合适的姑娘烦请推荐
Apache OpenNlp的初探相关推荐
- Apache OpenNLP提供的文档
Apache OpenNLP提供了一个手册和Javadoc API文档. 本手册介绍了如何使用和培训各种OpenNLP组件. Apache OpenNLP 1.7.2文档 Apache OpenNLP ...
- Apache OpenNLP
Apache OpenNLP库是一种基于机器学习的工具包,用于处理自然语言文本. 它支持最常见的NLP任务,如标记化,句子分割,词性标记,命名实体提取,分块,解析和参考解析. 通常需要这些任务来构建更 ...
- Apache OpenNLP介绍(一)
一.介绍 1.描述 Apache OpenNLP库是一种基于机器学习的工具包,用于处理自然语言文本.它支持最常见的NLP任务,如标记化,句子分割,词性标记,命名实体提取,分块,解析和参考解 ...
- Apache OpenNLP下载
1. 进入官网 http://opennlp.apache.org/ (有时候早上可能访问不到,可以多刷新几次或者等一会儿在进入) 2.点击 download 注意:tar.gz归档包含长度超过 ...
- Apache OpenNLP(二)
二.标记生成器 Tokenizer 1. 标记化 OpenNLP令牌器将输入字符序列分段成令牌. 令牌通常是字词,标点符号,数字等. 以下结果显示了以空格分隔表示的各个标记. OpenNLP提供多种t ...
- 【Calcite】Apache Calcite 框架初探及概念详解
1. 简介 Calcite 是什么?如果用一句话形容 Calcite,Calcite 是一个用于优化异构数据源的查询处理的基础框架. 最近十几年来,出现了很多专门的数据处理引擎.例如列式存储 (HBa ...
- [NLP]OpenNLP Maven工程的依赖
目录 OpenNLP Tools依赖 OpenNLP UIMA Annotators 依赖 OpenNLP Morfologik AddOn依赖 OpenNLP Brat Annotator依赖 Op ...
- OPENNLP——java的NLP工具
Apache OpenNLP库是一个基于机器学习的自然语言文本处理的开发工具包,它支持自然语言处理中一些共有的任务,例如:标记化.句子分割.词性标注.固有实体提取(指在句子中辨认出专有名词,例如:人名 ...
- Apache calcite Quickstart
[Calcite]Apache Calcite 框架初探及概念详解_董嘻嘻的博客-CSDN博客_apache calcite Apache Calcite介绍_pucheung的博客-CSDN博客 A ...
最新文章
- angularJs 之deferred
- Google Test
- 前端小白也能快速学会的博客园博客美化全攻略
- 愚蠢的领导才会用程序员祭天!!
- 软考网络工程师学习笔记3-广域通信网
- java编程贪心算法背包问题,贪心算法----部分背包问题(java实现)
- 【辨异】inner, internal, interior, inward
- spss分析方法-方差分析
- JDBC单独了解一下
- E-mail计算机实验报告,邮件发送实验报告
- 美国的人民币汇率谋略
- android+发短信示例,【Android】如何实现Android发送短信(示例代码)
- 手机连上蓝牙耳机没有声音
- 竖流式沉淀池三角堰计算_一种辐流式沉淀池的双侧堰出水构造的制作方法
- 2022华南师范大学软院软件工程考研经验贴(初试380)
- 算力基础设施的现状、趋势和对策建议
- qt界面黑的咋办_去掉console黑窗口的方法(qt和vs)
- 如何将网站发布上线,并配置自定义域名
- 金融行业部分公司待遇汇总
- OnActionExecuting 中设置跳转指定网址或路由