我想知道哪种编程语言更适合自然语言处理.Java还是Python?我找到了很多关于它的问题和答案.但我仍然迷失在选择使用哪一个.
我想知道哪个NLP库用于Java,因为有很多库(LingPipe,GATE,OpenNLP,StandfordNLP).对于Python,大多数程序员推荐使用NLTK.
但是,如果我要从非结构化数据(只是自由形成的简单英文文本)中进行一些文本处理或信息提取以获得一些有用的信息,那么最佳选择是什么?Java还是Python?合适的图书馆
更新
我想要做的是从非结构化数据中提取有用的产品信息(例如,用户制作不同形式的广告,关于手机或笔记本电脑的标准不是很标准)
我需要在当前模块中实现一些NLP.我正在寻找一些可以帮助我的好图书馆.我遇到了'LingPipe',但无法完全遵循如何使用它.
基本上,我们需要实现一个功能,其中应用程序可以解释用简体中文输入的客户指令(交付说明).例如:
我想要POStag一个英文句子并做一些处理.我想使用openNLP.我安装了它
当我执行命令
I:\Workshop\Programming\nlp\opennlp-tools-1.5.0-bin\opennlp-tools-1.5.0>java -jar opennlp-tools-1.5.0.jar POSTagger models\en-pos-maxent.bin < Text.txt
Run Code Online (Sandbox Code Playgroud)
它为Text.txt中的输入提供输出POSTagging
Loading POS Tagger model ... done (4.009s)
My_PRP$ name_NN is_VBZ Shabab_NNP i_FW am_VBP 22_CD years_NNS old._.
Average: 66.7 sent/s
Total: 1 sent
Runtime: 0.015s
Run Code Online (Sandbox Code Playgroud)
我希望它安装得当吗?
现在我如何从java应用程序内部执行此操作?我已将openNLPtools,jwnl,maxent jar添加到项目中,但我如何调用POStagging?
我想生成一个输入单词的句子.例如
输入:
Mary
chase
the monkey
Run Code Online (Sandbox Code Playgroud)
输出:
Mary chases the monkey.
Run Code Online (Sandbox Code Playgroud)
这可以使用simpleNLG库来完成:http://code.google.com/p/simplenlg/,方法如下:
String subject = "Mary";
String verb = "chase";
String object = "the monkey";
p.setSubject(subject);
p.setVerb(verb);
p.setObject(object);
String output = realiser.realiseSentence(p);
System.out.println(output);
Run Code Online (Sandbox Code Playgroud)
这将产生玛丽追逐猴子的句子.但是我想让它自动化,我输入单词并生成句子.这将需要一些预处理,该预处理将指定哪个单词是主语哪个单词是动词,哪个是对象.我知道有POS(词性)标记库,但它们没有指定它是主题还是对象.有任何建议如何做到这一点?也适用于使用多个对象,副词等更大的句子.