我是靠谱客的博主 自由香水,最近开发中收集的这篇文章主要介绍采用Stanford CoreNLP实现英文单词词形还原,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近有个小的任务,根据英文单词的过去分词或现在分词或复数形式获取词语的原形,本来我的思路是:对于不规则变化的词语,建立不规则词表,直接从词表中查询;对于规则的词形变化,自己写规则进行还原。后来发现有些变化涉及到单词的发音,如重读闭音节要双写最后一个单词再变化,这样逆推的话就不好处理,从网上查询获取单词音标也没有实现好的结果。于是从网上搜索资料发现了Stanford CoreNLP这个工具。此工具是基于Java开发的开源工具,可以在自己的项目中直接使用。下载地址是:http://nlp.stanford.edu/software/corenlp.shtml。现在后解压文件,将ejml-0.19-nogui.jar,joda-time.jar,jollyday.jar,stanford-corenlp-3.2.0.jar,stanford-corenlp-3.2.0-models.jar,xom.jar放于自己的项目下。代码片段为:

[java]  view plain  copy
  1. Properties props = new Properties();  
  2. props.put("annotators""tokenize,ssplit,pos, lemma");  
  3. StanfordCoreNLP pipeline = new StanfordCoreNLP(props);  
  4. Annotation document = new Annotation(txtWord);  
  5. pipeline.annotate(document);  
  6. List<CoreMap> sentences = document.get(SentencesAnnotation.class);  
  7. for(CoreMap sentence: sentences) {  
  8. for (CoreLabel token: sentence.get(TokensAnnotation.class)) {  
  9.      String word = token.get(TextAnnotation.class);  
  10.      String lema = token.get(LemmaAnnotation.class);  
  11.      logger.info(word+","+lema);  
  12.      originWord = lema;  
  13.      originFlag = true;  
  14.    }  
  15.  }  

其中 txtWord是待处理的文本,

[java]  view plain  copy
  1. props.put("annotators""tokenize,ssplit,pos, lemma");  

分别是分词、分句、词性标注和次元信息。

[java]  view plain  copy
  1. String word = token.get(TextAnnotation.class);  

获取单词信息

[java]  view plain  copy
  1. String lema = token.get(LemmaAnnotation.class);  

获取对应上面word的词元信息,即我所需要的词形还原后的单词。

最后

以上就是自由香水为你收集整理的采用Stanford CoreNLP实现英文单词词形还原的全部内容,希望文章能够帮你解决采用Stanford CoreNLP实现英文单词词形还原所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部