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

标签: StanfordCoreNLP 词性还原 Java
20人阅读 评论(0) 收藏 举报
分类:

一、说明

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 properties
        props.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

查看评论

词干提取(stemming)与词形还原(lemmatization)

在英语中,一个单词常常是另一个单词的“变种”,如:happy=>happiness,这里happy叫做happiness的词干(stem)。在信息检索系统中,我们常常做的一件事,就是在Term规范化过...
  • helihongzhizhuo
  • helihongzhizhuo
  • 2015-06-08 16:14:28
  • 3528

【java】使用Stanford CoreNLP处理英文(词性标注/词形还原/解析等)

本文旨在学习使用Stanford CoreNLP进行自然语言处理。 编程环境:64位win7系统,NetBeans,java要求1.8+ CoreNLP版本:3.6.0,下载地址:http...
  • churximi
  • churximi
  • 2016-04-22 14:04:30
  • 9388

采用Stanford CoreNLP实现英文单词词形还原

最近有个小的任务,根据英文单词的过去分词或现在分词或复数形式获取词语的原形,本来我的思路是:对于不规则变化的词语,建立不规则词表,直接从词表中查询;对于规则的词形变化,自己写规则进行还原。后来发现有些...
  • yunzhongfeiniao
  • yunzhongfeiniao
  • 2013-10-24 15:47:01
  • 7967

词干提取和词形还原

词干提取(stemming)和词形还原(Lemmatisation)一直弄不清谁是谁,找到一篇解释的到位的一篇文章,以备注 原博文地址:http://www.tuicool.com/articles/...
  • u014221266
  • u014221266
  • 2016-01-06 10:52:54
  • 2280

词干提取(stemming)和词形还原(lemmatization)比较

以下内容均摘自论文《词形还原方法及实现工具比较分析》 词形还原(lemmatization),是把一个任何形式的语言词汇还原为一般形式(能表达完整语义),而词干提取(stemming)是抽取词的词干...
  • kaierlong
  • kaierlong
  • 2015-12-07 14:14:41
  • 826

斯坦福Stanford coreNLP宾州树库的词性标注规范

宾州树库的词性标注规范
  • eli00001
  • eli00001
  • 2017-07-13 17:57:01
  • 1895

java lucene 实现分词和词干抽取

  • 2014年03月14日 22:33
  • 3KB
  • 下载

中英文分词及词性标注工具

1.中文分词、词性标注 中科院:ictclas http://www.ictclas.org/sub_1_1.html 具体使用方面看他里面的例子及文档很详细。突出功能是分词功能,还有命名实体识...
  • lsp1991
  • lsp1991
  • 2014-04-01 14:56:34
  • 5194

斯坦福大学Stanford coreNLP 宾州树库依存句法标注体系

斯坦福大学Stanford coreNLP 依存句法标注体系
  • eli00001
  • eli00001
  • 2017-07-13 18:02:21
  • 891

一个好用的英文词性标注工具

  • 2009年06月20日 08:46
  • 6.88MB
  • 下载
    个人资料
    持之以恒
    等级:
    访问量: 42万+
    积分: 5941
    排名: 5374
    最新评论