[27 ก.ค.] ตะลุยแปล #Tor เป็นไทย เสาร์นี้

ใช้คนไทยใช้เน็ตได้ปลอดภัยขึ้น ชวนชาวเน็ตมาช่วยกันแปลโปรแกรม Tor เป็นภาษาไทย 🙂 เสาร์ 27 ก.ค. 10-17น. @ ร้านกาแฟ Tom N Toms สยามเซ็นเตอร์

Knowledge WITH Borders

ความรู้มีเชื้อชาตินะ

Thai Digital Collection … เป็นโครงการที่มุ่งสนับสนุนการศึกษา … สำหรับประชาชนคนไทยเท่านั้น … คำตอบที่ถูกต้องสำหรับคำถามต่อไปนี้: ประเทศไทยรวมเลือดเนื้อชาติเชื้อไทย ประโยคต่อไปคือ … เพื่อป้องกันชาวต่างชาติใช้งาน … แต่จำเป็นต้องทำเพื่อปกป้องผลงานของคนไทยให้คนไทยใช้งานเท่านั้น read more

Thai-Style Sufficient Human Rights #amessinthailand

ขอยืนยันว่ารัฐบาลได้ให้ความสำคัญกับเรื่องสิทธิมนุษยชน เห็นได้จากนโยบายที่ให้มีการเรียนฟรีและเบี้ยยังชีพเป็นต้น

— ชวนนท์ อินทรโกมาลย์สุต เลขานุการรัฐมนตรีว่าการกระทรวงต่างประเทศ, 2553 read more

[สรุป] High and Low Thai: Views from Within (A.V.N. Diller 1985)

Diller เสนอว่า ความแตกต่างของระดับภาษามีเรื่องความขัดแย้งทางวัฒนธรรมอยู่ด้วย ซึ่งสะท้อนออกมาในความขัดแย้งทางระบบการศึกษา การศึกษาและสอนภาษาตามแนว prescriptive (มีภาษาแบบแผนในอุดมคติที่ถูกต้อง) และ descriptive (ภาษาอย่างที่มันเป็น)

NLTK corpus readers for NECTEC BEST and ORCHID corpora

ความเดิมจากตอนที่แล้ว ทดลองสร้าง corpus reader ใน NLTK

ตอนนี้แก้การ encode ให้ใช้ได้กับ nltk.Text() แล้ว (แทนที่จะเก็บเป็น unicode ก็เก็บเป็น utf-8 encoded str แทน)

พร้อมกับเพิ่มตัวอ่านสำหรับคลังข้อความ BEST และ ORCHID ด้วย

ตัวอ่านคลัง BEST ในรุ่น 0.3 นี้ เรียกดูเป็นหมวดได้ (ข่าว วรรณกรรม สารานุกรม บทความ) เรียกดูข้อมูลกำกับขอบเขตคำ (word boundaries) ได้ แต่ยังไม่รองรับ <NE>named-entities</NE> กับ <AB>คำย่อ</AB> เนื่องจาก BEST ไม่มีข้อมูลขอบเขตประโยค ตัวอ่านคลังจะสร้างขึ้นเอง โดยสมมติ \n เป็นขอบเขตประโยค

ส่วนตัวอ่านคลัง ORCHID ในรุ่น 0.3 นี้ เรียกดูข้อมูลกำกับขอบเขตคำและชนิดคำ (Part-of-Speech) ได้ แต่ยังไม่รองรับขอบเขตย่อหน้า และยังเรียกดูเป็นรายเอกสารไม่ได้ (รุ่นนี้ทำงานกับคลัง ORCHID แบบที่ถูกเอา document-related metadata ออกไป)

ดาวน์โหลด & ติดตั้ง

แพ็คเกจ rotic รุ่น 0.3 ซอร์สโค้ดเผยแพร่ด้วยสัญญาอนุญาต GNU GPLv2 ตาม NLTK – ดาวน์โหลด rotic-0.3.tar.gz

วิธีติดตั้ง อ่าน README.TXT และ INSTALL.TXT – อย่าลืมดาวน์โหลดคลังข้อความมาติดตั้งด้วย รายละเอียดและสัญญาอนุญาตของข้อมูลแต่ละชุด อยู่ใน CORPORA.TXT

มีคำแนะนำอะไร เขียนมาบอกกันได้ครับ อยากจะลองทำให้มันเอาไปใช้ในการเรียนการสอนได้ – ไม่เฉพาะสำหรับนักเรียนคอมพิวเตอร์เท่านั้น แต่สำหรับนักเรียนภาษาศาสตร์ ฯลฯ ด้วย

ตอนนี้ความเร็วไม่ค่อยดีเท่าไหร่ โดยเฉพาะการโหลดตัว ORCHID ซึ่งใหญ่มาก ส่วนหนึ่งเป็นเพราะโค้ดยังซ้ำซ้อนอยู่หลายจุด เช่นตรงการแปลง utf-8 ที่น่าจะทำได้ตั้งแต่ระดับแรก ๆ ที่อ่านเข้ามาเลย ไม่ใช่มาแปลงเอาตอนหลัง-ต้องวนลูปอีกหนึ่งครั้งแบบขณะนี้ โค้ดยัง refactor ได้อีกเยอะ ใครคล่อง Python ก็ช่วยดูหน่อยนะครับ ผมแค่พอเขียนไถ ๆ ได้ ขอบคุณครับ 🙂

ตัวอย่างจาก example.py

1. พิมพ์ข้อความมั่ว ๆ ขึ้นมาจากตัวแบบ n-gram ที่สร้างจากคำในคลัง foosci :


foosci_text = nltk.Text(foosci.words())
foosci_text.generate()

ผลลัพธ์ :

… ซึ่ง ทฤษฎี สรุป ความรู้ ของ เรา เอา ไส้เดือน ไป ปล่อย ใน พื้นที่ ๆ มี ความ สงสัย ระหว่าง ความ เชื่อ เรื่อง มิติ ใหม่ นี้ …

2. พิมพ์ คำ/ชนิดคำ จาก 5 ประโยค แรกของคลัง ORCHID
โปรดสังเกตว่า เราใช้ชุดชนิดคำ (POS/tagset) แบบง่าย สามารถสลับชุดชนิดคำได้โดยสลับค่า simplify_tags :


for sent in orchid.tagged_sents(simplify_tags=True)[0:5]:
    print "[",
    for (word, tag) in sent:
        print word + "/" + tag,
    print "]"

ผลลัพธ์ :

[ การ/FIX ประชุม/V ทาง/N วิชาการ/N /PUNC ครั้ง/C ที่_1/DETN ]
[ โครงการวิจัยและพัฒนา/N อิเล็กทรอนิกส์/N และ/CONJ คอมพิวเตอร์/N ]
[ ปีงบประมาณ/N /PUNC 2531/N ]
[ เล่ม/C /PUNC 1/DETN ]
[ ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ/N ]

3. หาค่าการกระจายของสองคำ การ และ ความ ใน 4 หมวดของคลัง BEST
โปรดสังเกตว่า ตรงคำที่เราจะป้อนเข้าไปให้ฟังก์ชั่นต่าง ๆ ของ NLTK เราจะแปลงมันเป็น utf-8 encoded str ก่อน :

cfd = nltk.ConditionalFreqDist( (genre, word) for genre in best.categories() for word in best.words(categories=genre)) genres = ['news', 'encyclopedia', 'novel', 'article'] prefixs = [w.encode("utf-8") for w in [u'การ', u'ความ']] cfd.tabulate(conditions=genres, samples=prefixs) read more

playing around Thai blog corpus with NLTK

อยากจะลองเล่น NLTK กับข้อมูลภาษาไทยดู คิดไปคิดมา เอาข้อมูลจาก foosci.com มาลองดูละกัน เขาเปิดให้ใช้ เป็น ครีเอทีฟคอมมอนส์ แสดงที่มา-อนุญาตแบบเดียวกัน (CC by-sa)

แต่ไม่อยากไปดึงมาเอง ขี้เกียจ เห็นว่าโครงการโรตี (อัลฟ่า) โดย Opendream ดูดบล็อกไทยจำนวนหนึ่งมาเก็บไว้ได้ระยะหนึ่งแล้ว เพื่อใช้ในการแนะนำลิงก์ (ดูตัวอย่างที่ keng.ws ที่ท้ายแต่ละโพสต์) ก็เลยเอาจากตรงนั้นมาใช้ละกัน

ข้อมูลที่มีเป็น XML ที่ dump มาจาก MySQL เราก็เขียนสคริปต์ก๊อก ๆ แก๊ก ๆ ดึงเฉพาะที่อยากได้ออกมา ด้วย xml.etree.cElementTree (ตอนแรกใช้ ElementTree แตน ๆ แต่อืดเกิน เนื่องจากแฟ้มมันใหญ่)
เอา HTML tags ออกด้วย Beautiful Soup แล้วตัดคำด้วย python-libthai ตัดประโยคแบบถึก ๆ ด้วย .split(‘\n’) จะได้ข้อมูลออกมาหน้าตาประมาณนี้ (จะเห็นว่าข้อมูลมันไม่ได้สมบูรณ์มาก มีแท็ก HTML โผล่มาด้วย-อันนี้เป็นที่ข้อมูลป้อนเข้าที่ dump มา) :

<?xml version="1.0" encoding="utf-8"?> <roti> <entry id="4947" url="http://www.foosci.com/node/401" ...> <tags> <tag>LHC</tag> <tag>quantum physics</tag> ... </tags> <title> <w>บิดา</w> <w>ของ</w> <w>อนุภาค</w> ... </title> <content> <s> <w>p</w> <w>นัก</w> <w>วิทยาศาสตร์</w> ... </s> <s> <w>pcenter</w> <w space="1"> </w> <w>ภาพ</w> ... </s> ... </content> </entry> <entry> ... </roti> read more

encode("UTF-8", "ignore") ข้าม ๆ เรื่องที่ทำไม่ได้ใน Python

หลังจากเอา python-libthai ของวีร์มาใช้กับข้อมูลที่ได้มาจากเว็บ ก็พบปัญหาเรื่อง character encoding นิดหน่อย read more

WordPress 2.7 Thai localization update

สัปดาห์ที่ผ่านมา ปรับปรุงคำแปลภาษาไทยบางส่วนของ WordPress 2.7
มีทั้งแก้ตัวสะกด เปลี่ยนคำ และปรับสำนวนแปล โดยเฉพาะในส่วนของ Dashboard

ได้ส่งไปให้ผู้รับผิดชอบการแปลคือคุณ kazama แล้ว ดูรายละเอียดได้ที่เว็บบอร์ด WordThai read more

Folk Doctor Foundation

เว็บไซต์เพื่อการรักษาสุขภาพและหาความรู้เกี่ยวกับโรคและอาการเจ็บป่วยต่าง ๆ ด้วยตัวเอง

หมอชาวบ้าน
http://doctor.or.th/

ตรวจสุขภาพด้วยต้วเอง,
แพทย์ทางเลือก,
โรคจากการทำงาน,
แม่และเด็ก, …

technorati tags:
,
,
,

read more

Chulalongkorn Department of History Seminar 2/2551

(บล็อกไม่ค่อยได้อัป ก็แจ้งข่าวประชาสัมพันธ์ไปพลาง ๆ ก่อนนะครับ :p)

สัมมนาบัณฑิตศึกษา ภาควิชาประวัติศาสตร์ ภาคการศึกษาปลาย 2551

สถานที่ ห้อง 708 อาคารบรมราชกุมารี คณะอักษรศาสตร์ จุฬาลงกรณ์มหาวิทยาลัย
เวลา 13.00-16.00 น. read more