Wednesday, September 20, 2006

./configure

vee____ มีวิธีดูเปล่า ว่าครั้งล่าสุด สั่ง configure ไปอย่างไร?
(How can I see my last configure command?)

thep vee____, head config.log

Tuesday, September 19, 2006

Ruby-Libthai update

The first version of Ruby-Libthai has appeared since 15th February 2003. Until today, only another one method was added, i.e., LibThai::tis?.

Now we can do something like below:

require 'libthai'
"abcd".each_byte{|c|
p LibThai::tis?(c)
}

More infomation: http://th.lug.wikia.com/wiki/Ruby-Libthai

Friday, September 15, 2006

Abiword + non-middle level character layout

MK asked me about non-middle level character layout. Hence I made this experiment and the result is shown in the screenshot below.

abiword screenshot

I think it looks okay.

Wednesday, September 13, 2006

Abiword + Thai text

By uwog and hub help, today I can install Abiword from CVS head on my Ubuntu box. I learned that I must use autoconf 2.59 and automake 1.9.6 instead of old one. :-)

In CVS head, Pango has been already used in Abiword. Hence it can break a line of Thai text with correct word boundaries now. :-) It is very big improvement however there are several issues left, for insance, printing (as mentioned by uwog), etc.

Abiword + Thai text

Thank tf for Abiword + Pango and thep for Pango + LibThai. :-)

You can grab Abiword from CVS following instruction here.

pastebin

In technical IRC channel (#tlwg, for instance.), we usually want to paste our (possibly long) source codes. Pasting it into IRC directly would be annoying. Therefore pastebin is emerged and help to keep your source code. Then you can give your friend URL instead pasting whole bunch of codes.
http://pastebin.ca/

ในห้อง IRC ทางเทคนิค (เช่น #tlwg) เรามักจะต้องการแปะ source code ที่อาจจะยาวลงไปบ่อยๆ การปะมันลงไปใน IRC ตรงๆ เลยมันอาจจะน่ารำคาญ ดังนั้น paste บินจะโพล่ออกมา และช่วยคุณเก็บ source code ไว้ และแล้วคุณก็สามารถจะให้ URL เพื่อนคุณไปแทนที่จะปะ code ทั้งหมดลงไป
http://pastebin.ca/

Wednesday, September 06, 2006

Part-of-speech tagging in Ruby

Acopost is a part-of-speech tagger written in C. Since now we can useAcopost as a C library, we write a ruby binding for Acopost called Acopost4R. It is hosted at Rubyforge. In addition, modfied version of Acopost (AcopostC) is also included Acopost4R Subversion repository. We will call it. We can write Ruby code for part-of-speech tagging as follow.

Source code:

require 'acopost'
t3 = Acopost::T3.new("/home/vee/train.ngram.utf8",
"/home/vee/train.lex.utf8")
t3.tagging(["ฉัน", "กิน", "ข้าว"]).each{|w|
print "#{w[0]}/#{w[1]} "
}
print "\n"


Result:

ฉัน/pper กิน/vt ข้าว/ncn

T3::tagging accept the array of words as the argument. And it return array of pair of word and part-of-speech, like NLTK-Lite style.

Acopost4R is still in very early stage so there is no release yet. However, you can obtain it from Acopost4R's subversion repository.




Acopost เป็นโปรแกรมกำหนดชนิดของคำที่เขียนด้วยภาษาซี เนื่องจากตอนนี้เราสสมารถใช้Acopost แบบ C library เราจึงเขียน ruby binding สำหรับ Acopost ชื่อว่า Acopost4R Acopost4R อยู่ที่ Rubyforge. มากไปกว่านั้น Acopost รุ่นที่แก้ไขแล้ว (AcopostC) ก็ยังถูกรวมไว้ที่ Subversion repository ของ Acopost4R ด้วย เราจะเรียกมันว่า AcopostC เราสามาถเขียนโปรแกรมภาษารูบีให้กำหนดชนิดของคำได้ตามต่อไปนี้

โปรแกรม:

require 'acopost'
t3 = Acopost::T3.new("/home/vee/train.ngram.utf8",
"/home/vee/train.lex.utf8")
t3.tagging(["ฉัน", "กิน", "ข้าว"]).each{|w|
print "#{w[0]}/#{w[1]} "
}
print "\n"


ผลการทำงาน:

ฉัน/pper กิน/vt ข้าว/ncn

T3::tagging รับ array ของคำเป็นอากิวเมนต์ และส่งผลลัพธ์กลับเป็น array ของคของคำและชนิดของคำ เหมือน NLTK-Lite.

Acopost4R ยังอยู่ในระยะเริ่มต้น ดังนั้นจะยังไม่มี release อย่างไรก็ตามคุณสามารถเอามันมาเล่นได้จาก subversion repositor ของ Acopost4R.