我想生成一个以单词作为输入的句子。例如。
输入:
Mary
chase
the monkey输出:
Mary chases the monkey.这可以通过以下方式使用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);这将生成Mary追逐猴子的句子。但我希望在我输入单词和生成句子的地方实现自动化。这将需要一些预处理,以指定哪个单词是主语,哪个单词是动词,哪个单词是宾语。我知道有POS (词性)标签库,但他们没有指定它是主语还是宾语。有什么建议可以做到这一点?也是为了使其适用于包含多个宾语、副词等的较大句子。
发布于 2011-06-03 16:10:39
为了获得输入句子的主语、动词或宾语,你需要进行句法分析或句法分析。
有两组主要的解析工具,组成解析器和依赖解析器,但通常前者是获得所需内容的更直接的途径。
以下是您可以尝试的一些研究成分解析器:
这个相关的问题也可能有帮助:Simple Natural Language Processing Startup for Java
发布于 2011-06-03 15:08:44
最常见的方法是构建ngramm统计数据,然后构建最可能的单词序列。一个著名的例子可以在这里找到http://scribe.googlelabs.com/
发布于 2011-06-03 20:16:31
这将取决于单词的顺序。如果命令是Mary追赶猴子,那么输出将是Mary追赶猴子。如果订单是猴子追逐玛丽,那么输出将是猴子追逐玛丽。
我看过OpenNLP解析器,但它接受正在解析的句子作为输入。我输入的是单词,我需要构建一个句子。
不管怎样,当我看这个例子的时候:敏捷的棕色狐狸跳过懒狗。
解析器现在应该将以下内容输出到控制台。(TOP (NP (NP (DT The) (JJ快速) (JJ brown) (NN fox) (NNS跳跃)) (PP (IN over) (NP (DT the) (JJ lazy) (NN Dog) (。)))
我所能看到的只有一些词性。除非API中有这样的函数,否则我看不到它指定对象、主题等。
如果我错了,请纠正我。
https://stackoverflow.com/questions/6213968
复制相似问题