从文本中提取名词(Java)
java
nlp
6
0

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

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

有什么建议么?

谢谢菲尔

编辑:

 import org.annolab.tt4j.*; 
TreeTaggerWrapper tt = new TreeTaggerWrapper(); 

try { tt.setModel("/Nouns/english.par"); 

tt.setHandler(new TokenHandler() { 
     void token(String token, String pos, String lemma) {    
     System.out.println(token+"\t"+pos+"\t"+lemma); } }); 
     tt.process(words); // words = list of words 

     } finally { tt.destroy(); 
} 

那是我的代码,英语是语言。我收到错误消息:类型new TokenHandler(){}必须实现继承的抽象方法TokenHandler.token。难道我做错了什么?

参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

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

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

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

我们在OpenNLP工具包(opennlp.tools.lang.english.PosTagger; opennlp.tools.postag.POSDictionary on http://上使用了Brown标记器(Java)( http://en.wikipedia.org/wiki/Brown_Corpusopennlp.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或其他集合进行匹配。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号