nlg建一句话

时间:2011-06-02 11:33:40

标签: nlp

我想生成一个输入单词的句子。 E.g。

输入:

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);

这将产生玛丽追逐猴子的句子。但是我想让它自动化,我输入单词并生成句子。这将需要一些预处理,该预处理将指定哪个单词是主语哪个单词是动词,哪个是对象。我知道有POS(词性)标记库,但它们没有指定它是主题还是对象。有任何建议如何做到这一点?也可以使它适用于具有多个对象,副词等的更大句子。

3 个答案:

答案 0 :(得分:3)

最常见的方法是构建ngram统计信息,然后构建最可能的单词序列。可以在这里找到Oen着名的例子http://scribe.googlelabs.com/

答案 1 :(得分:1)

为了获得输入句子的主语,动词或对象,您需要执行语法分析或解析。

有两个主要的解析工具组,组成解析器和依赖解析器,但通常前者是获得所需内容的更直接的路径。

这些是您可以尝试的一些研究成分解析器:

此相关问题也可能有所帮助:Simple Natural Language Processing Startup for Java

答案 2 :(得分:0)

这取决于单词的顺序。如果命令是玛丽追逐猴子那么输出将是玛丽追逐猴子。如果订单是猴子追逐玛丽,那么输出将是猴子追逐玛丽。

我查看了OpenNLP解析器,但它将一个正在解析的句子作为输入。我输入的是单词,我需要建立一个句子。

无论如何,当我看到这个例子时: 快速的棕色狐狸跳过懒狗。

解析器现在应该将以下内容打印到控制台。 (TOP(NP(NP(DT)(JJ快)(JJ棕色)(NN狐狸)(NNS跳跃))(PP(IN over)(NP(DT)(JJ懒)(NN狗)))( 。)))

我所能看到的只是词性。除非在API中有这样的功能,否则我看不到它指定对象,主题等。

如果我错了,请纠正我。