一、说明

StanfordCoreNLP是Stanford开发的关于自然语言处理的工具包,其包括分词、词性还原以及词性标注等很多功能。具体可参考官网:https://stanfordnlp.github.io/CoreNLP/。 这里主要是将其词性还原功能的简单使用。

二、下载和使用

1、下载地址:https://stanfordnlp.github.io/CoreNLP/,下载界面如下图:

2、下载好之后解压,从解压后的文件中找到以下6个jar包,添加到java项目中:

3、接下来就可以使用代码直接调用了。

三、代码

import edu.stanford.nlp.ling.CoreAnnotations;
import edu.stanford.nlp.ling.CoreLabel;
import edu.stanford.nlp.pipeline.Annotation;
import edu.stanford.nlp.pipeline.StanfordCoreNLP;
import edu.stanford.nlp.util.CoreMap;import java.util.List;
import java.util.Properties;/*** 代码功能:词性还原、词干提取* jar包下载地址:https://stanfordnlp.github.io/CoreNLP/* 工具包API地址:https://stanfordnlp.github.io/CoreNLP/api.html*/
public class StemmerTest {public static void main(String[] args){Properties props = new Properties();  // set up pipeline propertiesprops.put("annotators", "tokenize, ssplit, pos, lemma");   //分词、分句、词性标注和次元信息。StanfordCoreNLP pipeline = new StanfordCoreNLP(props);String txtWords = "Franklin said, If a man empties his purse into his head,no man can take it away from him,an investment in knowledge always pays the best interest.";  // 待处理文本Annotation document = new Annotation(txtWords);pipeline.annotate(document);List<CoreMap> words = document.get(CoreAnnotations.SentencesAnnotation.class);for(CoreMap word_temp: words) {for (CoreLabel token: word_temp.get(CoreAnnotations.TokensAnnotation.class)) {String word = token.get(CoreAnnotations.TextAnnotation.class);   // 获取单词信息String lema = token.get(CoreAnnotations.LemmaAnnotation.class);  // 获取对应上面word的词元信息,即我所需要的词形还原后的单词System.out.println(word + " " + lema);}}}
}

输出结果如下:

Franklin Franklin
said say
, ,
If if
a a
man man
empties empty
his he
purse purse
into into
his he
head head
, ,
no no
man man
can can
take take
it it
away away
from from
him he
, ,
an a
investment investment
in in
knowledge knowledge
always always
pays pay
the the
best best
interest interest
. .

附:
关于词性标注等功能请详见官网API文档:https://stanfordnlp.github.io/CoreNLP/api.html

参考文献:
https://blog.csdn.net/cuixianpeng/article/details/12999537
https://blog.csdn.net/hksskh/article/details/49183175

StanfordCoreNLP: 英文句子词性还原、词干标注工具包简单使用(Java)相关推荐

  1. java 分词获取词性,英文分词的关键:词性还原和词干提取

    人工智能时代,能让计算机自动化进行文字语义理解非常重要,因此,进行语义理解的第一步--如何正确地根据语义完成词语切分(即分词)就是一个非常具有挑战性的任务,一旦切词发生失误,会导致后续的文本处理产生连 ...

  2. java 对英文句子进行 分词、去除停用词、提取词干

    下面 词干提取算法 用到的jar包 lucene-analyzers-smartcn-7.6.0.jar (包含 中英 词干提取) 百度网盘链接:https://pan.baidu.com/s/15D ...

  3. NLTK使用英文词性还原

    安装NLTK的方法请参考:https://blog.csdn.net/weixin_35757704/article/details/115629297 词性还原 Lemmatization from ...

  4. 自然语言处理(NLP)之英文单词词性还原

    词形还原(Lemmatization)是文本预处理中的重要部分,与词干提取(stemming)很相似. 简单说来,词形还原就是去掉单词的词缀,提取单词的主干部分,通常提取后的单词会是字典中的单词,不同 ...

  5. 【NLP】英文数据预处理___词干/词元处理

    目录 简介 异同 相同点 不同点 代码 词形还原 词干提取 Gensim_词形还原 说明 简介 词形还原(Lemmatization):把一个任何形式的语言词汇还原为基本形式(能表达完整语义): 词干 ...

  6. python输入一个英文句子、翻转句子中单词的顺序_ODOA(1) 翻转句子中单词的顺序(C语言实现)...

    动动手才发现自己现在的在C/C++方向的几个问题: 对自己的入门语言C语言变得非常陌生 编程的思维固定在找既有的方法,主要原因是python写多了,基本上所有常见的问题,都有现成的方法,让自己变得懒惰 ...

  7. 输入一个英文句子,翻转句子中单词的顺序 例如输入“I am a student.”,则输出“student. a am I”。

    package com.atguigu.java; //输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.句子中单词以空格符隔开. //为简单起见,标点符号和普通字母一样处理. //例如 ...

  8. C语言反序输出英文句子,C++实现英文句子中的单词逆序输出的方法

    本文实例讲述了C++实现英文句子中的单词逆序输出的方法.分享给大家供大家参考,具体如下: #include "stdafx.h" #include #include #includ ...

  9. 编写一个函数,该函数能判断一个英文句子str(带空格)中是否含有某个单词w,如“How old are you?”含有“old”。在main函数中输入一个英文句子,再输入一个单词,如果英文句子中含有那

    题目要求: 编写一个C程序,实现以下功能: 编写一个函数,该函数能判断一个英文句子str(带空格(升级版))中是否含有某个单词w,如"How old are you?"含有&quo ...

最新文章

  1. 洛谷P1119 灾后重建
  2. 技术人员职业生涯的红色警报
  3. java streamhandler_java中的Lamdba表达式和Stream
  4. Python re 模块深入探索
  5. python爬取腾讯vip_用Python批量爬取付费vip数据,竟然如此简单
  6. 【语义分割】Smoothed Dilated Convolutions for Improved Dense Prediction阅读笔记
  7. 谷歌关闭中国音乐搜索服务--有点可惜
  8. Java逐行读取fasta文件
  9. Matlab裁剪图像
  10. DOS命令导出文件夹内所有文件的名称和全路径
  11. PMP 考点 第三章 项目经理的角色
  12. 甘肃省计算机二级考试试题,2013甘肃省计算机等级考试二级理论考试试题及答案...
  13. iwr6843-ROS构建
  14. C++探索之旅 | 第一部分第二课:C++编程的必要软件
  15. git拉取远程分支代码到本地并关联分支
  16. 家乡的IT行业现状——温水煮青蛙
  17. 浅析快消品企业营销费用管理之道
  18. php云人才系统 怎么整合ucenter,phpcms如何整合UCenter
  19. VBA基础学习之1.2输入框(InputBox)
  20. springboot druid连接池配置

热门文章

  1. 现在我对工作和生活的想法
  2. Ubuntu 18.04 ROS安装
  3. ros安装并测试是否安装成功
  4. 海阔凭鱼跃,天空任鸟飞,你也一定可以
  5. Java SSM 重制版(二)SpringMvc
  6. U盘空间充足但复制文件到U盘提示文件过大无法复制解决方案
  7. 【美区Apple ID】美区Apple ID的注册教程,无需信用卡、无需科学上网
  8. 【达内课程】Android入门知识
  9. 突然不想努力了怎么办?
  10. 移远BC26/BC28(略)/MC20开发之环境搭建 一