有谁知道从文本中仅提取名词的最简单方法?
我听说过TreeTagger tool,并尝试试一试,但由于某种原因无法使其正常工作。
有什么建议么?
谢谢菲尔
编辑:
导入org.annolab.tt4j。*;
TreeTaggerWrapper tt =新的TreeTaggerWrapper();
尝试{tt.setModel(“/名词/english.par”);
tt.setHandler(new TokenHandler(){
无效 token (字符串 token ,字符串pos,字符串引理){
System.out.println(token +“\t” + pos +“\t” + lemma); }});
tt.process(words);//单词=单词列表
}最后{tt.destroy();
}
那是我的代码,英语是语言。我收到错误消息:类型new TokenHandler(){}必须实现继承的抽象方法TokenHandler.token。难道我做错了什么?
最佳答案
首先,您必须标记文本。这看似微不足道(在任何空白处分割都可以为您工作),但从形式上讲,难度却更大。然后,您必须确定什么是名词。 “ parking 场”是否包含一个名词( parking 场),两个名词(汽车,公园)或一个名词(公园)和一个形容词(汽车)?这是一个很难的问题,但是如果没有它,您也许仍然可以解决。
“我看见xyzzy”是否识别出不在词典中的名词?单词“the”可能将xyzzy标识为名词。
“时光如箭”中的名词在哪里?比较“果蝇像香蕉”(感谢格劳乔·马克思)。
我们在OpenNLP工具包(http://en.wikipedia.org/wiki/Brown_Corpus上的opennlp.tools.lang.english.PosTagger; opennlp.tools.postag.POSDictionary on http://opennlp.sourceforge.net/)中使用Brown标记(Java)(http://en.wikipedia.org/wiki/POS_tagger)查找普通英语名词,我建议以此开头-它为您完成了大部分思考。否则请看任何POSTaggers
(http://www-nlp.stanford.edu/links/statnlp.html#Taggers)或(http://en.wikipedia.org/wiki/Natural_language_processing_toolkits)。
ojit_a中有非常完整的NLP工具包列表。我强烈建议您使用其中之一,而不要尝试与Wordnet或其他集合进行匹配。
关于java - 从文本中提取名词(Java),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1889675/