Hi,

It seems to me that this toy string-to-tree setup is either outdated,
or it always had issues. It should be replaced. 

Under real-world conditions, the decoder should always be able to
produce some hypothesis. We would therefore usually extract a whole set
of glue rules. And we would typically also add an [unknown-lhs] section
to the moses.ini that would tell the decoder which left-hand side non
-terminal labels to use for out-of-vocabulary words. To my knowledge,
these two techniques are crucial for being able to parse any input
sentence provided to the chart decoder in syntax-based translation.

So, in my opinion, the problem is most likely neither the server
implementation nor the syntax-based decoder, but a problematic setup. 
I would consider it okay for the server to crash (or at least print a
warning) under such circumstances. You don't want it to silently not
translate complete sentences.

(I must admit that I didn't look into it in too much detail, but it sho
uld be easy to confirm.)

Cheers,
Matthias


On Fri, 2016-01-29 at 20:28 +0000, Barry Haddow wrote:
> Hi All
> 
> I think I see what happened now.
> 
> When you give the input "dies ist ein haus" to the sample model, the 
> "dies" is unknown, and there is no translation. The server did not check 
> for this condition, and got a seg fault. I have added a check, so if you 
> pull and try again it should not crash.
> 
> In the log pasted by Martin, he passed "das ist ein haus" to 
> command-line Moses, which works, and gives a translation.
> 
> I think ideally the sample models should handle unknown words, and give 
> a translation. Maybe adding a glue rule would be sufficient?
> 
> cheers - Barry
> 
> On 29/01/16 11:13, Barry Haddow wrote:
> > Hi
> > 
> > When I run command-line Moses, I get the output below - i.e. no best
> > translation. The server crashes for me since it does not check for the
> > null pointer, but the command-line version does.
> > 
> > I think there should be a translation for this example.
> > 
> > cheers - Barry
> > 
> > [gna]bhaddow: echo 'dies ist ein haus' | ~/moses.new/bin/moses  -f
> > string-to-tree/moses.ini
> > Defined parameters (per moses.ini or switch):
> >           config: string-to-tree/moses.ini
> >           cube-pruning-pop-limit: 1000
> >           feature: KENLM name=LM factor=0 order=3 num-features=1
> > path=lm/europarl.srilm.gz WordPenalty UnknownWordPenalty
> > PhraseDictionaryMemory input-factor=0 output-factor=0
> > path=string-to-tree/rule-table num-features=1 table-limit=20
> >           input-factors: 0
> >           inputtype: 3
> >           mapping: 0 T 0
> >           max-chart-span: 20 1000
> >           non-terminals: X S
> >           search-algorithm: 3
> >           translation-details: translation-details.log
> >           weight: WordPenalty0= 0 LM= 0.5 PhraseDictionaryMemory0= 0.5
> > line=KENLM name=LM factor=0 order=3 num-features=1 path=lm/europarl.srilm.gz
> > Loading the LM will be faster if you build a binary file.
> > Reading lm/europarl.srilm.gz
> > ----5---10---15---20---25---30---35---40---45---50---55---60---65---70---75---80---85---90---95--100
> > **The ARPA file is missing .  Substituting log10 probability -100.000.
> > **************************************************************************************************
> > FeatureFunction: LM start: 0 end: 0
> > line=WordPenalty
> > FeatureFunction: WordPenalty0 start: 1 end: 1
> > line=UnknownWordPenalty
> > FeatureFunction: UnknownWordPenalty0 start: 2 end: 2
> > line=PhraseDictionaryMemory input-factor=0 output-factor=0
> > path=string-to-tree/rule-table num-features=1 table-limit=20
> > FeatureFunction: PhraseDictionaryMemory0 start: 3 end: 3
> > Loading LM
> > Loading WordPenalty0
> > Loading UnknownWordPenalty0
> > Loading PhraseDictionaryMemory0
> > Start loading text phrase table. Moses format : [3.038] seconds
> > Reading string-to-tree/rule-table
> > ----5---10---15---20---25---30---35---40---45---50---55---60---65---70---75---80---85---90---95--100
> > ****************************************************************************************************
> > max-chart-span: 20
> > Created input-output object : [3.041] seconds
> > Line 0: Initialize search took 0.000 seconds total
> > Translating:  dies ist ein haus   ||| [0,0]=X (1) [0,1]=X (1)
> > [0,2]=X (1) [0,3]=X (1) [0,4]=X (1) [0,5]=X (1) [1,1]=X (1) [1,2]=X (1)
> > [1,3]=X (1) [1,4]=X (1) [1,5]=X (1) [2,2]=X (1) [2,3]=X (1) [2,4]=X (1)
> > [2,5]=X (1) [3,3]=X (1) [3,4]=X (1) [3,5]=X (1) [4,4]=X (1) [4,5]=X (1)
> > [5,5]=X (1)
> > 
> >     0   1   2   3   4   5
> >     0   1   2   2   1   0
> >       0   0   0   2   0
> >         0   0   4   0
> >           0   0   0
> >             0   0
> >               0
> > Line 0: Additional reporting took 0.000 seconds total
> > Line 0: Translation took 0.002 seconds total
> > Translation took 0.000 seconds
> > Name:moses      VmPeak:74024 kB VmRSS:11084 kB  RSSMax:36832 kB
> > user:2.972      sys:0.048       CPU:3.020       real:3.058
> > 
> > 
> > On 29/01/16 00:40, Hieu Hoang wrote:
> > > If it works ok on the command line but crashes when using the server,
> > > then that suggest a server issue.
> > > 
> > > I don't know much about the server code, to be honest.
> > > 
> > 
> 
> 

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

_______________________________________________
Moses-support mailing list
Moses-support@mit.edu
http://mailman.mit.edu/mailman/listinfo/moses-support

Reply via email to