<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>word-breaking &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://wordpress.com/tag/word-breaking/</link>
	<description>Feed of posts on WordPress.com tagged "word-breaking"</description>
	<pubDate>Sun, 12 Oct 2008 23:09:24 +0000</pubDate>

	<generator>http://wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[ตัดคำโดยใช้ Python และ ICU]]></title>
<link>http://openil.wordpress.com/?p=144</link>
<pubDate>Mon, 03 Mar 2008 15:14:04 +0000</pubDate>
<dc:creator>वीर</dc:creator>
<guid>http://blog.vee-u.com/2008/03/03/pyicu_thai/</guid>
<description><![CDATA[ผมดูตัวอย่างมาจาก http://www.thaitux.info/node/194.  ผมเล]]></description>
<content:encoded><![CDATA[<p>ผมดูตัวอย่างมาจาก <a href="http://www.thaitux.info/node/194">http://www.thaitux.info/node/194</a>.  ผมเลยมาเขียน version ของผมบ้าง เพื่อที่จะเอามาเตรียม corpus สำหรับ bilingual word matching (alignment).</p>
<p>[sourcecode language='python']<br />
#-*- coding: UTF-8 -*-<br />
import sys<br />
import PyICU</p>
<p># split_words was inspired by an example in http://www.thaitux.info/node/194</p>
<p>def is_tha(c):<br />
	return ord(c) >= 0x0E00 and ord(c) <= 0x0E7F</p>
<p>def merge(ans, tok):<br />
	if is_tha(tok[0]) or len(ans[:-1]) == 0 or is_tha(ans[-1][0]):<br />
		return ans + [tok]<br />
	else:<br />
		return ans[:-1] + [ans[-1] + tok]</p>
<p>def split_words(txt):<br />
	icu_txt = PyICU.UnicodeString(txt)<br />
	brk_iter = PyICU.BreakIterator.createWordInstance(PyICU.Locale("th"))<br />
	brk_iter.setText(icu_txt)<br />
	brk_e = [i for i in brk_iter]<br />
	brk_s = [0] + brk_e[:-1]<br />
	ans = [unicode(icu_txt[i[0]:i[1]]) for i in zip(brk_s, brk_e)]<br />
	return filter(lambda t: t != "", reduce(merge, ans, []))</p>
<p>def main():<br />
	reload(sys)<br />
	sys.setdefaultencoding('utf-8')<br />
	print split_words("ทดลองทดลอง 5%")</p>
<p>if __name__ == '__main__':<br />
	main() </p>
<p>[/sourcecode]<br />
ผลออกมาได้ [u'u0e17u0e14u0e25u0e2du0e07', u'u0e17u0e14u0e25u0e2du0e07', u' 5%'] ถ้า print ดีหน่อยๆ มันก้ประมาณว่า ทดลอง&#124;ทดลอง&#124; 5%.ก่อนจะใช้ได้ก็ลง libicu ก่อนโดยใช้ aptitude install libicu-dev แล้วตามด้วย easy_install pyicu (สมมุติว่าลง easy_install กับ python ไว้อยู่แล้วนะครับ)</p>
]]></content:encoded>
</item>

</channel>
</rss>
