0

Moses hypothesis (search graph)

We can get Moses search graph by using the option -output-search-graph. Its format is explained at http://www.statmt.org/moses/?n=Moses.AdvancedFeatures. However after I have read it, I still did not understand many thing especially “covered” and “stack”. (“recombined” is not in scope of this post.) Both “covered” and “stack” are related covered foreign (source) language words. Stack is number of covered words and “covered” is referred to start and end position of covered words. These are trivial. However probably because of my English is bad, from the explanation, I did not understand that “covered” referred to “current” or “latest” translated words but “stack” is referred translated words including previous (ancestor) hypotheses too.

Example:
0 hyp=859 stack=2 back=80 score=-7.85572 transition=-1.97807 forward=11192 fscore=-16.5095 covered=4-4 out=ที่

0 hyp=11 stack=1 back=0 score=-5.63929 transition=-5.63929 forward=160 fscore=-15.6831 covered=0-0 out=ฉัน ไม่ รู้

0 hyp=80 stack=1 back=0 score=-5.87765 transition=-5.87765 forward=880 fscore=-15.1593 covered=3-3 out=กิน อาหาร

0 hyp=859 stack=2 back=80 score=-7.85572 transition=-1.97807 forward=11192 fscore=-16.5095 covered=4-4 out=ที่


hypothesis_m

For example, hypothesis 859’s stack=2 since it is include the word “eat” (3-3) from hypothesis 80 too. Previous (ancestor) hypotheses can be traced by looking at “back” (back pointer). “out” is translated string (in target language). It is directly corresponded to “covered” since “out” does not contain translated string from previous hypotheses but only current one.

In brief, “out” and “covered” is about current translation made by a hypothesis only but “stack” is about current + what are inherited from previous hypotheses (ancestors). And previous hypotheses can be traced by “back”.

0

C++ กับ ฉันและ gcc

จะเอา code ของชาวบ้านมาใช้งาน เอา gcc 4.1.3 บน Linux TLE มา build ใช้งานได้ปกติ. แต่พอเอา gcc 4.3.x (x คือจำไม่ได้) บน debian มา build ก็ build ผ่าน แต่ว่าโปรแกรมทำงานไม่เหมือนเดิมซะงั้น T_T. ไม่ว่าด้วยอะไรก็ตามตอนนี้ผมก็เลยถือโอกาส refactoring code เสียเลย แต่ก็ยังไม่เสร็จ แล้วก็จะใส่ unit testing เข้าไป ที่มองไว้ตอนนี้คือ googletest สุ่มๆ ไปอย่างนั้น พอมี unit testing แล้วก็น่าจะหาจุดเจ๊งได้ง่ายขึ้น … เป็นวิธีที่ดูเหนื่อยๆ แต่ก็คิดว่ามันน่าจะช่วยให้แก้คราวหน้าง่ายขึ้นด้วยมั้ง ….

ป.ล. นอกเรื่องว่า Python 2.6 ออกแล้ว :-P