2011-06-02 65 views
6

我想生成一個有輸入詞的句子。 例如nlg建立一個句子

輸入:

Mary 
chase 
the monkey 

輸出:http://code.google.com/p/simplenlg/以下列方式:

Mary chases the monkey. 

這可以通過使用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(詞類)標籤庫,但他們沒有說明它是一個主題還是客體。任何建議如何做到這一點?此外,爲了使它適用於多個對象,副詞等更大的句子

+0

我不確定你在問什麼。你是否想輸入一個單詞(不考慮訂單的位置)並輸入句子?程序如何知道你是否想要「瑪麗追猴子」或「猴子追瑪麗」? – Chris 2011-06-02 13:13:47

+0

解析器(OpenNLP,Stanford)從一句話開始,告訴你什麼扮演主體,對象等角色 – Chris 2011-06-02 13:14:45

回答

3

最常見的方法是建立ngramm統計,然後建立最有益的單詞序列。 Oen着名的例子可以在這裏找到http://scribe.googlelabs.com/

+0

鏈接已死! 。 – iamprem 2015-10-30 18:52:03

0

會依靠按照單詞的順序排列。如果命令是瑪麗追逐猴子,那麼輸出將是瑪麗追逐猴子。如果命令是猴子追逐瑪麗然後輸出將是猴子追逐瑪麗。

我看了一下OpenNLP解析器,但它需要輸入一個正在解析的句子。我所輸入的是單詞,我需要建立一個句子。

無論如何,當我看看這個例子: 快速的棕色狐狸跳過懶惰的狗。

解析器現在應該將以下內容輸出到控制檯。 (NP(DT))(JJ快速)(JJ棕色)(NN狐狸)(NNS跳躍))(PP(IN))(NP(DT)(JJ懶惰)(NN狗))) (。)))

我能看到的只是詞性。除非在API中有這樣的功能,否則我無法看到它指定對象,主題等。

如果我錯了,請糾正我。