Hi! I also tried to do this, and it seems that the output-factors flag does not work.
However, I found another option, the flag -report-all-factors. If it is used, all possible output factors are given. It does not work for n-best lists, however. I looked around in the code, and in the function IOStream::OutputNBestList, the following call is made for each hypothesis: OutputSurface(*m_nBestStream, edge.GetCurrTargetPhrase(), m_outputFactorOrder, false); // false for not reporting all factors As the source code comment says, the decision is all ready made not to allow factors in nbest-lists. What is the reason for this? As I see it it could be quite useful for post-processing for instance. It is quite straightforward to change this behavior by passing on the boolean reportAllFactors, instead of always false. Thus allowing a choice of having factors also in the nbest-list. /Sara Hieu Hoang skrev: > hi vivek > > by default, the output factor is only 0. u can change that by putting this > in your ini file > [output-factors] > 0 > 1 > I don't think anyone's ever tested it so there may be some bugs in there. > Please tell me if there is & I'll fix it. If u manage to fix it yourself, > please send me the patch > ________________________________ > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > On Behalf Of Vivek Rangarajan > Sent: 28 February 2008 03:12 > To: [email protected] > Subject: [Moses-support] Factored decoding output > > > Hello all, > I am trying to perform factored decoding and would like my > final hypotheses to be a joint token (surface form+factor). The following is > my moses.ini file > ######################### > ### MOSES CONFIG FILE ### > ######################### > # input factors > [input-factors] > 0 > # mapping steps > [mapping] > 0 T 0 > # translation tables: source-factors, target-factors, number of scores, file > [ttable-file] > 0 0,1 5 > /home/ENRICHED_TRANSLATION/Moses/words+accent/model/phrase-table.0-0,1.gz > # no generation models, no generation-file section > # language models: type(srilm/irstlm), factors, order, file > [lmodel-file] > 0 0 3 /home/ENRICHED_TRANSLATION/Moses/words+accent/lm/train.en.lm > 0 1 6 /home/ENRICHED_TRANSLATION/Moses/words+accent/lm/train.accent.lm > AND SO ON... > > The phrase translation table does contain 0-0,1 pairs. However, when I > decode using > ~/moses/bin/moses -config ./model/moses.ini -input-file test.file > XX > The XX output contains only surface form; doesn't contain the surface > form+factor. The BEST TRANSLATION that the decoder produces however consists > of the surface form+factor. It is pretty straightforward to grep for the > output from the BEST TRANSLATION. However, I would like to understand why > the output file dumped does not contain the joint token. Any pointers ? > > Best > Vivek > > > _______________________________________________ > Moses-support mailing list > [email protected] > http://mailman.mit.edu/mailman/listinfo/moses-support _______________________________________________ Moses-support mailing list [email protected] http://mailman.mit.edu/mailman/listinfo/moses-support
