从文本中提取名词(Java)

有谁知道从文本中仅提取名词的最简单方法?

我听说过TreeTagger工具,但尝试尝试一下,但由于某种原因而无法使用。

有什么建议?

谢谢菲尔

 导入org.annolab.tt4j。*; 

TreeTaggerWrapper tt =新的TreeTaggerWrapper();

尝试{tt.setModel(“ /名词/english.par”);

tt.setHandler(new TokenHandler(){

无效令牌(字符串令牌,字符串pos,字符串引理){

System.out.println(token +“ \ t” + pos +“ \ t” + lemma); }});

tt.process(words); //单词=单词列表

}最后{tt.destroy();

}

那是我的代码,英语是语言。我遇到了错误:new

TokenHandler(){}类型必须实现继承的抽象方法TokenHandler.token。难道我做错了什么?

回答:

首先,您必须标记文本。这看似微不足道(在任何空格处分割都可以为您工作),但从形式上讲,这却很难。然后,您必须确定什么是名词。“停车场”是否包含一个名词(停车场),两个名词(汽车,公园)或一个名词(公园)和一个形容词(汽车)?这是一个很难的问题,但是如果没有它,您也许仍然可以解决。

“我看见xyzzy”是否识别出不在词典中的名词?单词“ the”可能将xyzzy标识为名词。

“时光如箭”中的名词在哪里?与“果蝇像香蕉”相比(感谢格劳乔·马克思)。

我们在OpenNLP工具包(opennlp.tools.lang.english.PosTagger;

opennlp.tools.postag.POSDictionary on

http://上使用了Brown标记器(Java)(http://en.wikipedia.org/wiki/Brown_Corpus)opennlp.sourceforge.net/)来查找普通英语中的名词,我建议从此开始-

它为您完成了大部分思考。否则,请查看任何POSTaggers(http://en.wikipedia.org/wiki/POS_tagger)或(http://www-

nlp.stanford.edu/links/statnlp.html#Taggers)。

在计算机的词性标记中,通常区分英语的50至150个单独的词性,例如NN表示单数普通名词,NNS表示复数普通名词,NP表示单数专有名词(请参阅POS)布朗语料库中使用的标签)

http://en.wikipedia.org/wiki/Natural_language_processing_toolkits中有NLP工具箱的完整列表。我强烈建议您使用其中之一,而不要尝试与Wordnet或其他集合进行匹配。

以上是 从文本中提取名词(Java) 的全部内容, 来源链接: utcz.com/qa/422082.html

回到顶部