2016-11-02 2 views
3

私はSimple NLGを使い慣れていないので、私が入力する動詞のgerundを取得したい。私はAPIを知らないが、私はつなぎ合わせることができるものから、それはに類似のアプローチのように見えるここ は、サンプルコードですが、私は緊張のために動名詞を入力しようとしたが、それは動詞のGerundを得る

XMLLexicon lexicon = new XMLLexicon("path\\to\\default-lexicon.xml"); 
WordElement word = lexicon.getWord("live", LexicalCategory.VERB); 
InflectedWordElement infl = new InflectedWordElement(word); 
infl.setFeature(Feature.TENSE, Tense.PAST); //I want the verb to be in gerund not past 
Realiser realiser = new Realiser(lexicon); 
String gerund = realiser.realise(infl).getRealisation(); 
System.out.println(gerund); 
+0

「動作しませんでした」...動作しなかったもの、または何の出力を得ていますか? –

+0

出力は過去時制の動詞です。 4行目で見ることができるので、Tense.PAST 出力をgerundに変更したいのですが、Tense.GERUNDという構文がないので、これは私の問題です。私のコードでこの行または行を変更して、出力が奇妙なものになるようにする方法。 –

+0

これについてのドキュメントを確認できますか? –

答えて

3

を動作しませんでした

XMLLexicon lexicon = ... 
NLGFactory phraseFactory = new NLGFactory(lexicon); 
VPPhraseSpec live = phraseFactory.createVerbPhrase("live"); 
SPhraseSpec clause = phraseFactory.createClause(); 
clause.setVerbPhrase(live); 
clause.setFeature(Feature.FORM, Form.GERUND); 
Realizer realizer = new Realizer(lexicon); 
String gerund = realizer.realize(clause).getRealisation(); 

あなたには良いかもしれません。

より良いリソースが見つからない場合は、APIの使用方法のヒントについてはthe unit testsをご覧ください。

+0

ありがとう!それは正しいコードに私を助けた レキシコン辞書=新しいNIHDBLexicon( "C:\ユーザー\\ブラックレイン\\デスクトップ\\ lexAccess2016(1)\\ lexAccess2016 \\データ\\ HSqlDb \\ lexAccess2016.data") ; NLGFactory phraseFactory =新しいNLGFactory(レキシコン); VPPhraseSpec live = phraseFactory.createVerbPhrase( "スキム"); SPhraseSpec句= phraseFactory.createClause(); clause.setVerbPhrase(live); clause.setFeature(Feature.FORM、Form.GERUND); Realiser realizer =新しいRealiser(レキシコン); 文字列gerund = realizer.realise(節).getRealisation(); –

+0

@JeremyHunts最後のビットをまとめることができてうれしいです。それがうまく聞こえてうれしいです。 –

+0

@JeremyHunts元の質問に 'Feature.FORM'パラメータを追加しました。なぜなら、コメントで読むのはかなり難しいからです。 –

関連する問題