ย้ายบล็อกไปที่ bact.cc แล้วนะครับ

พ.ร.บ.คอมพิวเตอร์
หยุด ร่างพ.ร.บ.คอมพิวเตอร์
พื้นที่เก็บข้อมูลออนไลน์ ฟรี 2GB จาก Dropbox (sync กับ Windows, Linux, Mac, iPhone, Android ฯลฯ ได้)
Showing posts with label thai. Show all posts
Showing posts with label thai. Show all posts

2011-05-06

DataJournalism.in.th บล็อกว่าด้วย "วารสารศาสตร์ข้อมูล"

ไปช่วย @tewson เขียนบล็อกอันใหม่อีกอันนึง ชื่อ วารสารศาสตร์ข้อมูล - Data Journalism

ข้อมูล ข้อมูล ข้อมูล!

ส.ส. คนไหนโดดประชุมบ่อย? งบประมาณกองทัพคิดเป็นกี่เท่าของงบประมาณสาธารณสุข? การชุมนุมประท้วงแต่ละครั้งมีคนเข้าร่วมมากน้อยเท่าใด? จังหวัดไหนมีอัตราว่างงานสูงที่สุด? แต่ละเดือนมีเว็บไซต์ถูกปิดกั้นเท่าไร? ในหนึ่งปีนายกรัฐมนตรีเดินทางไปที่ไหนบ้าง? มหาวิทยาลัยไหนเก็บค่าเรียนแพงที่สุด?

เราสามารถตอบบางคำถามข้างต้นได้ด้วยการค้นข้อมูลที่ถูกเผยแพร่อยู่แล้ว แต่มันอาจจะหมายถึงการนั่งเปิดไฟล์เอกสาร PDF เป็นร้อยหน้า นั่งไล่ดูตารางข้อมูลที่ไม่เป็นระเบียบหลายพันแถว หรือนั่งจ้องตัวเลขยาวยืดและนึกเปรียบเทียบสัดส่วนเอาเองในหัว

กฎหมายกำหนดให้ข้อมูลจำนวนมากถูกเผยแพร่ต่อสาธารณะ แต่น้อยคนนักที่จะใช้ประโยชน์จากมันได้ เพราะมันไม่อยู่ในสภาพที่เข้าใจง่ายหรือเอาไปใช้ต่อได้สะดวก

วารสารศาสตร์ข้อมูล (Data Journalism) ว่าง่าย ๆ ก็คือการเปลี่ยน “ข้อมูล” ให้เป็น “ข่าว”

โดยบล็อก DataJournalism.in.th นี่ว่านี่ ก็จะพยายามเสนอข่าวคราวและตัวอย่างน่าสนใจเกี่ยวกับวารสารศาสตร์ข้อมูล บางอันก็อาจจะเป็นการแปลหรือสรุปมาจากบทความภาษาอื่น เพื่อให้มันมีแหล่งข้อมูลเรื่องพวกนี้ในภาษาไทยเพิ่มขึ้นด้วย

(หมายเหตุ: ผมย้ายบล็อกส่วนตัวจาก bact.blogspot.com นี้ ไปที่ bact.cc แล้วนะครับ)

technorati tags: , , ,

2011-02-28

28 ก.พ. 2519 บุญสนอง บุณโยทยาน เลขาธิการพรรคสังคมนิยมฯ ถูกลอบสังหารเสียชีวิต

บุญสนอง บุณโยทยาน: นักสังคมนิยมและนักวิชาการชาวไทย (1936-1976)
โดย คาร์ล เอ. ทร็อกกี้ (Carl A. Trocki)
แปลจาก Carl A. Trocki, Boonsanong Punyodyana: Thai Socialist and Scholar, 1936-1976, Bulletin of Concerned Asian Scholars. 9: 3 (July-September 1977), pp.52-54.

ดร.บุญสนอง บุณโยทยาน เสียชีวิตด้วยกระสุนปืนของผู้ลอบสังหารเมื่อเวลาประมาณ 01.30 น. ของวันที่ 28 กุมภาพันธ์ พ.ศ.2519 ขณะดำรงตำแหน่งเป็นเลขาธิการพรรคสังคมนิยมแห่งประเทศไทย แทบไม่น่าสงสัยเลยว่าสาเหตุของการลอบสังหารครั้งนี้เกี่ยวพันกับการเมือง มีเพียงส่วนน้อยในหมู่ชนชั้นนำไทยออกมาแสดงความเสียใจกับการจากไปของเขา ทำให้ไม่ค่อยมีใครคาดหวังว่าจะมีการจับกุมฆาตกรมาดำเนินคดี อย่างไรก็ตาม ยังคงมีผู้คนอีกมากมายที่อาลัยถึงเขาอย่างสุดซึ้ง ซึ่งรวมถึงภรรยาและลูกสาวทั้งสองของเขา เพื่อนนักวิชาการ และประชาชนชาวไทย

บุญสนองเป็นทั้งนักวิชาการผู้ปราดเปรื่องและนักต่อสู้เพื่ออุดมการณ์ทางการเมืองผู้ไม่เคยย่อท้อ เขาเป็นหนึ่งในนักสังคมศาสตร์เพียงไม่กี่คนที่มีความสามารถโดดเด่นทั้งในเชิงแนวคิดและการปฏิบัติ ผู้ที่เศร้าเสียใจกับการจากไปของเขา มีทั้งนักศึกษาหลายพันคน นักวิชาการ นักเขียนและศิลปิน ชาวนา ชนชั้นแรงงาน ข้าราชการ และโดยเฉพาะอย่างยิ่งชาวไทยผู้มีความคิดก้าวหน้า พิธีไว้อาลัยที่จัดขึ้นไม่กี่วันหลังการเสียชีวิตของเขา ณ มหาวิทยาลัยธรรมศาสตร์ มีผู้เข้าร่วมกว่าหนึ่งหมื่นคน พวกเขาเห็นว่าความตายของบุญสนองเป็นความสูญเสียเชิงสัญลักษณ์ที่ยิ่งใหญ่ทั้งสำหรับพวกเขาเองและสำหรับประชาธิปไตยในประเทศไทย

บทความร่วมรำลึกดร.บุญสนอง บุณโยทยาน‏
โดย ทักษ์ เฉลิมเตียรณ, 27 กุมภาพันธ์ 2553

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

การสังหาร บุญสนอง อย่างเหี้ยมโหดนั้นเป็นการกระทำที่มุ่งหวังจะสั่งสอน ทั้งนักศึกษา อาจารย์ และปัญญาชนที่ก้าวหน้าให้รู้ว่าพวกเขาไม่ควรจะกระทำการทรยศต่ออำนาจผูกขาดของชนชั้นนำ ขุนนางและพลพรรคที่เป็นนายทุน

แม้เวลาจะผ่านไปแล้ว 34 ปี แต่สภาพความเหลื่อมล้ำทางสังคมเศรษฐกิจที่มองด้วยแนวทางการเมืองของ บุญสนอง แทบจะไม่ได้เปลี่ยนแปลงไปสักกี่มากน้อย รอยร้าวและความแตกแยกในสังคมยิ่งทวีความเลวร้ายมากขึ้นจากความขัดแย้งทางการเมืองที่หาข้อยุติได้ยากในบรรดากลุ่มหรือชนชั้นต่างๆ ในสังคม

วิกิพีเดีย: บุญสนอง บุณโยทยาน

technorati tags: , , , , ,

2010-09-26

Knowledge WITH Borders

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

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

เอาน่ะ อย่างน้อยเขาก็มี ประชารัฐ ให้เลือก, ไม่ใช่ ราชอาณาจักร

technorati tags: , ,

2010-01-24

Thai-Style Sufficient Human Rights #amessinthailand

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

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

เจ๋งเป้ง

Human Rights Watch ประเทศไทย: สิทธิมนุษยชนถดถอยอย่างหนักในปี 2552, บัวแก้วเตรียมแจงกรณีฮิวแมนไรท์วอทช์ ยันข้อมูลไม่ตรงความจริง

technorati tags: , ,

2009-09-15

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

บันทึกย่อเอกสารที่เรียน เอามาแปะไว้ในบล็อกเผื่อจะมีใครชวนคุย. อันนี้จากวิชาภาษาในสื่อสารมวลชน คณะศิลปศาสตร์ เป็นเอกสารชิ้นแรกที่อ่านในวิชา (ตอนนี้จะหมดเทอมแล้ว). ในบันทึกนี้ผมข้ามรายละเอียดไปเยอะ เพื่อยัดมันให้ลง 1 หน้า A4 (ตัวเอกสารเองผมก็อ่านไม่จบดีด้วย ข้าม ๆ บางส่วนไป). ขอบคุณ Rikker Dockum @thai101 ที่ส่งเอกสารหน้าที่ขาดหายไปให้.

ดาวน์โหลด PDF (81K), OpenDocument (18K)

หลังจากอ่านเอกสารนี้ เราอ่านอีกสองชิ้น ที่เกี่ยวกับภาษาในสื่อไทย. อันหนึ่งเกี่ยวกับการจำแนกระดับภาษาในหนังสือพิมพ์ไทย การใช้ภาษาในหัวข่าว คอข่าว ตัวข่าว โดยอิงตาม High Thai และ Low Thai ของ Diller (Khanittanan, Wilaiwan. 2007, Language of the news media in Thailand). อีกอันดูการสร้างและการใช้แสลงการเมือง (Srinarawat, Deeyu. 2007, Thai political slang: formation and attitudes towards usage).

----

Anthony Diller เสนอว่า ‘ภาษา’ นั้นสามารถหมายถึง ‘ระดับภาษา’ หรือ ‘language subform’ (Edward Sapir) หรือ ‘style’ หรือ ‘register’ (Michael Halliday) โดยยกตัวอย่าง register ในภาษาไทย ได้แก่ ภาษาราชการ, ภาษากฎหมาย, ภาษาการศึกษา, ภาษาตลาด, ภาษาหนังสือ, ภาษาพูด, ภาษาปาก. นักการศึกษาไทยสังเกตว่าความแตกต่างระหว่าง ‘ระดับภาษา’ ดังกล่าว ขึ้นอยู่กับ บริบททาง ‘กาละเทศะ’ (โอกาส-ตำแหน่ง) เช่น ตำแหน่งทางสังคมโดยเปรียบเทียบและความสัมพันธ์ทางสังคมระหว่างคู่สนทนา. Diller ยกตัวอย่างที่อนุมานราชธนพูดถึงการใช้ภาษาที่ดัดจริตหรือใช้เต็มรูปแบบเกินไป เป็นตัวชี้ว่านักวิชาการไทยได้ตระหนักถึงการแบ่งระดับภาษามานานแล้ว. Diller ระบุว่า การที่เขาเลือกใช้คำว่า ‘ระดับภาษา’ หรือ ‘register’ นั้น เป็นความตั้งใจ เพื่อบอกว่า เมื่อนักวิชาการไทยอภิปรายกันเรื่องภาษาศาสตร์สังคม (sociolinguistics) นั้น พวกเขามักจะหมายถึงตัว ‘ระดับภาษา’ นี้ แม้พวกเขาจะใช้คำว่า ‘ภาษา’ เฉย ๆ ก็ตาม.

William J. Gedney ตั้งข้อสังเกตว่าชาวต่างชาติรุ่นก่อน ๆ ที่ศึกษาราชาศัพท์ เข้าใจผิดว่ามันเป็นภาษาอีกภาษาต่างหาก แต่เขาเห็นว่ามันเป็นเพียงระบบการแทนคำศัพท์หนึ่งด้วยอีกคำศัพท์หนึ่งเท่านั้น (a system of lexical substitutions) กล่าวคือเป็นเพียง ‘ระดับภาษา’ อีกระดับ. โดยบริบทในการเลือกระดับภาษานี้ มีทั้ง บริบทภายใน และ บริบทภายนอก. ตัวอย่างของบริบทภายในคือ เมื่อสามัญชนพูดถึงเจ้า ก็อาจใช้ราชาศัพท์, ส่วนบริบทภายนอก เช่น ตำแหน่งทางสังคมของคู่สนทนา ดังได้กล่าวไปแล้ว. อย่างไรก็ตาม Diller เสนอว่าการแบ่งระดับภาษาในภาษาไทยนั้น ไม่ได้เป็นการแบ่งในลักษณะ diglossia ที่มีระดับภาษาสองระดับ สูง-ต่ำ (High Thai และ Low Thai) เพื่อประสงค์การใช้งานที่แบ่งแยกกันชัดเจน. แต่ระดับภาษาในภาษาไทยนั้นมีหลายระดับ สูง-ต่ำโดยเปรียบเทียบ ตามมิติการใช้งาน สังคม และภูมิศาสตร์. Diller เรียกการแบ่งแบบนี้ว่า diglossic register differentiation หรือ diglossic subforms (น. 52-53).

ในเรื่องความแตกต่างระหว่างระดับภาษาสูงกับต่ำนี้ Diller ตั้งข้อสังเกตว่า ความแตกต่างจะพบได้มากที่สุดในชนบท ที่ซึ่งภาษาท้องถิ่นแตกต่างอย่างเห็นได้ชัดจากภาษากลาง (Central Thai ซึ่งให้ความหมายทั้งทางภูมิศาสตร์และทางการปกครอง) แต่ถึงอย่างไรก็ตาม ก็ยังเป็นภาษาเดียวกันอยู่. สิ่งหนึ่งที่ Diller ใช้ชี้ให้เห็นว่ามีความแตกต่างที่มากกว่าในชนบท ก็คือความรู้สึกสำนึก (conscious) ในการพัฒนาทักษะภาษา (language acquisition). เด็กในชนบทจะมีสองช่วง คือ เรียนรู้ระดับภาษาท้องถิ่นในช่วงปฐมวัย และเรียนรู้ระดับภาษากลางเมื่อเข้าศึกษาในโรงเรียน (formal education). ในขณะที่เด็กในเมือง ซึ่งคนรอบ ๆ ใช้ภาษากลางอยู่แล้ว จะเรียนรู้ภาษากลางตั้งแต่ในช่วงปฐมวัย ส่วนการศึกษาในโรงเรียนนั้นเพียงเพิ่มเติมคำศัพท์หรือภาษาพิธีกรรมเฉพาะเท่านั้น. กล่าวคือ โดยเปรียบเทียบแล้ว เด็กในชนบทจะเรียนรู้ภาษากลางอย่างมีสำนึกมากกว่าเด็กในเมือง (น. 53).

ไวยากรณ์ของภาษาไทยนั้น ได้รับอิทธิพลมาจากสองแหล่งภาษาใหญ่ ตามอิทธิพลทางความคิดในแต่ละช่วงเวลา ซึ่งใช้ภาษาเหล่านั้น คือ ไวยากรณ์บาลี-สันสกฤต และ ไวยากรณ์กรีก-ละติน (ผ่านภาษาอังกฤษ) โดยคำที่ใช้เรียกส่วนประกอบในไวยากรณ์กรีก-ละติน ถูกแปลเป็นไทยโดยใช้คำบาลี-สันสกฤต (น. 54).

สำหรับชุดคำศัพท์ สมัยสุโขทัยภาษายังไม่มีการแบ่งระดับมากเท่าทุกวันนี้ คำศัพท์ที่ใช้ก็ใช้คำเดียวกันกับผู้อยู่ในระดับสังคมต่าง ๆ กัน เช่น ใช้คำว่า ‘ตีน’ กับพระพุทธเจ้า ใช้คำว่า ‘กู’ กับเจ้า. ชุดศัพท์เขมร-อินเดียนั้นสำคัญมากในการแยกระดับภาษา (register differentiation) โดยคำในภาษาเหล่านี้เข้ามาก่อนทางศาสนาพุทธ และต่อมาใช้ในวัง และใช้ในกวีจากในวัง (น. 55). รัชกาลที่ 4 ให้ความสนใจการใช้ภาษาให้ถูกต้องตามแบบแผน มีการกำหนดลักษณนาม กำหนดการใช้คำต่าง ๆ และแสดงความไม่พอใจที่หนังสือพิมพ์ใช้คำ ‘สำเนียงไพร่เลว’ ไม่ใช้คำ ‘สำเนียงผู้ดี’. การใช้คำทับศัพท์ซึ่งก่อนหน้านี้ใช้กันแพร่หลาย ไม่ได้รับการยอมรับ มีการคิดคำศัพท์ไทยใหม่ ๆ เพื่อแทนคำทับศัพท์ โดยใช้คำบาลี-สันสฤกตมาสร้างคำใหม่เหล่านี้ (น. 56). เรื่องคำศัพท์นี้ ยังมีเรื่องการเลือกใช้ หรือ lexical variation ที่พูดถึงระดับคำที่ไม่ชัดเจนตายตัว ว่าคำไหนสูงคำไหนต่ำ แต่เป็นลักษณะ ‘สูงกว่า’ ‘ตำ่กว่า’ และคำต่ำก็ถูกใช้ทั่วไปได้ เช่น ‘ตีนแมว’ และการเลี่ยงคำบางคำที่มีความหมายไม่ดีหรือความหมายออกไปทางเรื่องเพศ-โดยเฉพาะในคำราชาศัพท์ (น. 59-62). นอกจากนี้ยังมีเรื่อง personal references (อะไร-อันใด; ใคร-ผู้ใด; ที่-ซึ่ง) ซึ่งเลือกใช้ตามเพศ ความใกล้ชิด ความเป็นทางการ (น. 63-64) และ deixis (นี่-นี้; นั่น-นั้น) ซึ่งเกี่ยวข้องกับภูมิศาสตร์ด้วย (น. 64). คำบุพบท (prepositions) บางอันปกติละได้ แต่เมื่อต้องการแก้ปัญหาความกำกวมก็จะถูกใช้แบบเต็ม การใช้คำบุพบทอย่างชัดแจ้ง บ่งถึงภาษาระดับสูง (น. 66-69).

การออกเสียงก็แยกระดับภาษาเช่นกัน เช่น ความแตกต่างระหว่าง /ร/ กับ /ล/ ซึ่งชาวไทยเชื้อสายจีนมีแนวโน้มจะออกเสียง /ร/ เป็น /ล/ (cluster loss) ความกลัวที่จะทำ /ร/ หาย นี้ นำไปสู่การแก้จนเกิน (overcorrection) ที่ใช้ /ร/ แทน /ล/ ในที่ที่ควรใช้ /ล/ และการกระดกลิ้นเพื่อออกเสียง /ร/ จนมากเกิน (over-rolled), การเติมเสียง -s ท้ายคำ หรือการขึ้นเสียงสูงท้ายประโยคเพื่อแสดงว่าเป็นคำถาม ซึ่งได้อิทธิพลมาจากภาษาอังกฤษ (น. 57-59).

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

เอกสารอ้างอิง

Diller, A. 1985, “High and low Thai: views from within”, in Papers in Southeast Asian Linguistics No.9, ed. D. Bradley, vol. 9, pp. 51-76. Pacific Linguistics, the Australian National University. Available from Southeast Asian Linguistics Archive: http://sealang.net/sala/htm/DILLERAnthonyVN.htm

technorati tags: , , , , ,

2009-04-28

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)

ผลลัพธ์ :

             การ ความ
        news 29567 11186
encyclopedia 25477 8541
       novel 4258 9097
     article 33200 16651

เล่นต่อเอง จากตัวอย่างในหนังสือ NLTK

เดี๋ยวอาจจะให้น้องฝึกงานที่โอเพ่นดรีมเอาไปทำต่อ เช่นทำให้มันใช้ AB, NE หรือขอบเขตประโยค/ย่อหน้าได้ .. เห็นนั่งเล่นเกมมาหลายวันละ :p

technorati tags: , , ,

2009-04-24

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>

ใน w คือ คำ, ใน s คือ ประโยค

ดาวน์โหลดข้อมูล : foosci-20090424.tar.bz2 (สัญญาอนุญาต CC by-sa เช่นเดียวกับเนื้อหาใน foosci.com)
ข้างในจะมีสองแฟ้ม foosci00.xml และ foosci01.xml ให้ก๊อปปี้ไปใส่ในไดเรกทอรีข้อมูลของ NLTK (NLTK_DATA) $NLTK_DATA/corpora/rotibc ตัวโมดูลที่จะพูดถึงต่อจากนี้จะวิ่งมาหาที่ตำแหน่งนี้

ได้ข้อมูลมาแล้ว จะเอาเข้าไปใช้ใน NLTK ยังไง ? ก็ต้องเขียนตัว corpus reader ขึ้นมาก่อน ซึ่งกรณนี้ เราจะทำต่อมาจาก XMLCorpusReader (เรียกว่า inherit ไหม?) โดยไอเดียไม่มีอะไรมาก ก็ implement ตัวฟังก์ชั่น .words() เพื่อส่งกลับรายการคำ และฟังก์ชั่น .sents() เพื่อส่งกลับรายการประโยค โดยดูตัวอย่างจาก BNCCorpusReader

ที่ต้องทำเพิ่มเติมก็คือ สร้างแฟ้ม __init__.py ใส่ไว้ใน package เพื่อที่ว่าตอนโหลด มันจะได้โหลดเอาตัวข้อมูลขึ้นมาให้เราอัตโนมัติเลย (ซึ่งไม่ต้องกลัวอึด เพราะว่าโหลดแบบ lazy คือยังไม่ได้โหลดข้อมูลจริง ๆ จนกว่าจะใช้)

ตอนทำ __init__.py นี้ ทำให้รู้ว่า ทุกไดเรกทอรีที่เราจะใส่โมดูลอะไรลงไป จะต้องมีแฟ้มนี้ ไม่งั้นตอน build มันจะไม่นับไดเรกทอรีนั้นเป็น package จะข้ามไป เพราะงั้นถึงไม่ได้จะโหลดจะทำอะไร ก็ต้องใส่แฟ้มว่าง ๆ ไว้ (ดูเอกสาร Python Tutorial - Modules)

ใน __init__.py ไม่มีอะไรมาก แค่โหลดข้อมูลเฉย ๆ :
foosci = LazyCorpusLoader('rotibc', RotiCorpusReader, r'foosci\d+\.xml')

ดาวน์โหลดแพคเกจ roti.corpus : rotibc-0.1.tar.gz
แตกออกมาแล้ว ก็ลงด้วยคำสั่ง :
sudo python setup.py install
(ดูวิธีสร้าง setup.py มาจากเอกสาร Distutils - Creating a Source Distribution)

โอเค ครบละ ข้อมูล โปรแกรมอ่าน คราวนี้มาเล่นกัน ลองใน interpreter shell ของ Python ก็ได้


>>> from roti.corpus import foosci
>>> foosci.fileids() #แสดงรายชื่อแฟ้มในคลังข้อความ
['foosci00.xml', 'foosci01.xml']
>>> foosci.words() #แสดงรายการคำ
['p', u'\u0e19\u0e31\u0e01', ...]
>>> for w in foosci.words()[0:5]: #พิมพ์คำจากรายการ ตำแหน่ง 0-5
...     print w,
... 
p นัก วิทยาศาสตร์ อังกฤษ ที่ 
>>>
>>> foosci.sents() #แสดงรายการประโยค
[['p', u'\u0e19\u0e31\u0e01', ...],
['pcenterimg', ' ', 'src=http://', ...], ...]
>>>

จะเห็นว่า เราพอจะเล่นอะไรกับมันได้ละ ถ้าจะเล่นมากกว่านี้ ลองดูตัวอย่างที่ Getting Started (NLTK)

ตัวอย่างหนึ่งจาก NLTK Book บทที่ 2 Accessing Text Corpora and Lexical Resources เขาลองเล่นกับ conditional frequency distribution เอามาสร้างประโยคมั่ว ๆ เล่น จากโมเดลไบแกรม ด้วยโค้ดด้านล่างนี้ :


def generate_model(cfdist, word, num=15):
    for i in range(num):
        print word,
        word = cfdist[word].max()

words = foosci.words()
bigrams = nltk.bigrams(words)
cfd = nltk.ConditionalFreqDist(bigrams)

ลองใส่คำอะไรสักคำให้มันดู มันจะสร้างประโยคมาให้


>>> generate_model(cfd, u'คอมพิวเตอร์')
คอมพิวเตอร์ ที่ มี ความ เสี่ยง มะเร็ง เต้า นม   href=http:// www. physorg. com/ ~r/ foosci/

การสร้างประโยคนั้น generate_model() ใช้วิธีเลือกเอาคำที่น่าจะเกิดต่อจากคำข้างหน้ามากที่สุด มาเรียงต่อกัน

ลองเล่นต่ออีกนิดหน่อยกับติวอันนี้ Working with corpora: Character Ngrams

ถ้ามีคลังข้อความที่น่ารัก ๆ กว่านี้ ก็น่าจะใช้ NLTK นี้ไปใช้เรียนสอน NLP หรือภาษาศาสตร์คลังข้อมูลง่าย ๆ ได้

ปัญหาอย่างนึงที่เจอตอนนี้คือ nltk.text.Text() ใช้กับ unicode ไม่ได้ คือมันจะพยายามแปลงข้อความไปเป็น ascii ซึ่งแปลงไม่ได้ แล้วก็จะตาย nltk.text.Text() นี่มีฟังก์ชั่นน่าใช้สำหรับการเรียนรู้เรื่องภาษาศาสตร์เยอะพอดู เช่น .concordance() .collocations() .similar()

<อัปเดต 2009.04.25> ใช้กับ nltk.Text() ได้แล้ว (แก้ตามคำแนะนำจากเมลกลุ่ม nltk-users) โดยต้องให้คำใน list เป็น str ("") ที่ encode ด้วย utf-8 แทนที่จะใส่เป็นสตริงแบบ unicode (u"") ทำได้โดยแก้สองฟังก์ชั่น _elt_to_words() และ _elt_to_sents() ในแฟ้ม roti/corpus/rotibc.py ตรง .append(w.text) ให้เป็น.append(w.text.encode("utf-8", "replace")) เดี๋ยวจะปรับตัวแพคเกจใหม่ </อัปเดต>

ลองเล่นดูครับ เอาไปโมต่อตามสบาย โค้ดทั้งหมดเป็น public domain

ใช้ NLTK แล้วพบปัญหา คุยกับผู้ใช้รายอื่น ๆ ได้ที่เมลกลุ่ม nltk-users หรือถ้าอยากคุยกับคนไทย ลองกลุ่ม THLTA


แถม : Open License และคลังข้อมูลภาษา

ในงาน NAC 2009 โดยสวทช.ที่ผ่านมา ได้มีโอกาสแลกเปลี่ยนประเด็น open content, open license และ คลังข้อมูลภาษา กับคนในวงการ NLP จำนวนหนึ่ง ซึ่งก็มีความคิดเห็นหลาย ๆ อย่าง หลาย ๆ มุมก้นไป

เกือบทุกคนเห็นด้วยว่า เป็นเรื่องสำคัญที่ควรจะมีอะไรที่มันแชร์กันได้ ที่มัน open แต่ความหมายของคำว่า open สำหรับแต่ละคนก็ดูจะไม่เท่ากัน บางคนบอกว่า คลังอันนั้นอันนี้ฟรี ตัวนั้นตัวนี้โอเพ่นซอร์ส แต่พอไปดูเอาจริง ๆ ในรายละเอียด ก็พบว่า จำเป็นต้องลงทะเบียนก่อนบ้างหรือไม่ได้อัปเดตนานแล้วบ้าง (พจนานุกรม Lexitron) หรือลิงก์ดาวน์โหลดหายไปบ้าง (ORCHID Corpus - ดาวน์โหลดได้ที่ backup site) หรือก่อนหน้านี้เรื่องของฟอนต์หลาย ๆ ตัว ที่เอามาใช้ได้ฟรี แต่ไม่รู้ว่าจะโมได้ไหม redistribute ได้ไหม

ความเห็นของผมก็คือ จะเปิดหรือจะปิด อย่างไรก็ได้ เป็นสิทธิของเจ้าของข้อมูลที่เขาลงแรงลงเวลาไป แต่ถ้าจะบอกว่าเปิด ก็ขอให้บอกให้ชัดเจนหน่อย ว่าในเงื่อนไขอะไร แล้วจะเอามาใช้จริง ๆ ได้ยังไง การบอกว่า เปิด เฉย ๆ โดยไม่ได้ให้รายละเอียดอะไรเลย ในทางปฏิบัติก็แทบจะเหมือนการไม่เปิด หน้า การแลกเปลี่ยนทรัพยากรและเครื่องมือ ที่ THLTA ก็อาจจะเป็นความพยายามหนึ่งที่จะทำให้เรื่องพวกนี้เคลียร์

สิ่งที่ผมคิดว่าน่าสนใจ และเป็นคุณสมบัติสำคัญของ open licenses ทั้งหลาย ไม่ว่าจะเป็น copyleft, GNU หรือ Creative Commons ก็คือ การไม่ต้องขออนุญาต ผมคิดว่าการไม่ต้องขออนุญาตนี้ทำให้ ข้อมูล โค้ด ไอเดีย ต่าง ๆ มันไหลเวียนได้อย่างอิสระ-ทันที ใครอยากจะเล่นอะไรก็เอา เต็มที่ ตามเงื่อนไขที่ประกาศไว้ชัดเจนล่วงหน้า ไม่ต้องรอไปรอมา ไม่ต้องตกอยู่ในภาวะไม่แน่ใจ

ซึ่งจริง ๆ แล้วเรื่องของความชัดเจนนี้ แม้จะเป็น closed content, closed source หรืออะไรก็ตาม ก็สามารถจะชัดเจนเรื่องนี้ได้ เพียงประกาศให้ชัดเจน — ไม่ใช่แค่บอกเฉย ๆ ว่า เปิด แล้วก็ทิ้งให้งง ให้เดาใจกันเล่น ๆ ว่า ตกลงจะเปิดแบบไหน เปิดยังไง

technorati tags: , , ,

2009-04-22

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

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

libthai นั้นปัจจุบันทำงานกับข้อมูลที่เป็นภาษาไทย 8 บิตอยู่ (น่าจะเป็น TIS-620) ตัว python-libthai เลยมีขั้นตอนการแปลงจากยูนิโค้ดไปเป็น 8 บิตก่อน ทีนี้ ปรากฏว่า encoder "CP874", "TIS_620" และ "ISO8859_11" ของ Python มันดันแปลงตัวอักษรบางตัวไม่ได้ (เนื่องจากใน charset พวกนั้น มันไม่มีตัวอักษรดังกล่าว) โปรแกรมก็เลยจะตาย ถ้าไปเจออักษรพวกนั้น

ก่อนตายมันจะโวยทำนองว่า :

UnicodeEncodeError: 'charmap' codec can't encode character
u'\u200b' in position 3560: character maps to <undefined>

วิธีแก้แบบถึก ๆ คือ เอาหูไปนาเอาตาไปไร่ซะ ignore มัน ด้วยการไปแก้ แฟ้มชื่อ libthai.c ของ python-libthai (แฟ้มนี้เป็น wrapper ที่ไปเรียก libthai ให้)

หาบรรทัดที่เรียกฟังก์ชั่น PyUnicode_Encode/Decode แล้วแก้พารามิเตอร์ตัวที่สี่เป็น "ignore" ซะ

เช่น จาก


PyObject *txt_cp874 =
    PyUnicode_Encode(s1, s1_len, "CP874", NULL);
tok =
    PyUnicode_Decode(buffer, tok_len, "CP874", NULL);

เป็น


PyObject *txt_cp874 =
    PyUnicode_Encode(s1, s1_len, "CP874", "ignore");
tok =
    PyUnicode_Decode(buffer, tok_len, "CP874", "ignore");

แล้ว sudo python setup.py install ใหม่อีกรอบ (อย่าลืมล้าง build เก่าทิ้งก่อน) ก็น่าจะใช้ได้แล้วครับ

ลิงก์ : Python Unicode How-to

technorati tags: , ,

2009-02-10

WordPress 2.7 Thai localization update

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

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

(ทำในอัตรางานของ Opendream เพื่อใช้กับเว็บไซต์ครีเอทีฟคอมมอนส์ประเทศไทย http://cc.in.th/)

อัปเดต: คุณ kazama แจ้งว่า WordPress 2.7.1 กำลังจะออกแล้ว ตัวคำแปลที่ผมเสนอไปนี้ อาจจะยังไม่ได้เข้าไปใน 2.7.1 เพราะต้องรอพิจารณาร่วมกันก่อน ว่าจะเอาอันไหนไม่เอาอันไหน

technorati tags: , ,

2008-12-01

Folk Doctor Foundation

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

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

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

technorati tags: , , ,

2008-11-25

Chulalongkorn Department of History Seminar 2/2551

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

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

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

จันทร์ 24 พฤศจิกายน 2551
“สถานะทางความรู้ของหนังสือการเมืองภายหลังการปฏิวัติ 2475 (2475-2484)”
โดย ณัฐพล ใจจริง นิสิตระดับปริญญาเอก คณะรัฐศาสตร์ จุฬาลงกรณ์มหาวิทยาลัย

จันทร์ 15 ธันวาคม 2551
“ประวัติศาสตร์และการเมืองของการฆ่าล้างเผ่าพันธุ์”
โดย ประจักษ์ ก้องกีรติ อาจารย์คณะรัฐศาสตร์ มหาวิทยาลัยธรรมศาสตร์

จันทร์ 26 มกราคม 2552
“สถานะของพุทธศาสนาในสังคมไทย หลัง 14 ตุลา”
โดย มโน เมตตานันโท เลาหวณิช ประธานมูลนิธิ ชีวันตารักษ์ (ดูแลผู้ป่วยขั้นสุดท้าย) อดีตประธานชมรมพุทธศาสตร์และประเพณีจุฬาลงกรณ์มหาวิทยาลัยฯ

จันทร์ 2 กุมภาพันธ์ 2552
“ประวัติศาสตร์นิพนธ์ พหุชนชาติ: มุมมองจากประวัติศาสตร์เวียดนามสมัยใหม่”
โดย ยุกติ มุกดาวิจิตร อาจารย์คณะสังคมวิทยาและมานุษยวิทยา มหาวิทยาลัยธรรมศาสตร์

ไม่มีค่าลงทะเบียน
สอบถามเพิ่มเติมที่ ภาควิชาประวัติศาสตร์ โทร. 0-2218-4672

----

[โฆษณา] มูลนิธิโครงการตำราสังคมศาสตร์และมนุษยศาสตร์

technorati tags: , ,

2008-09-21

bbs, modem people, hackerdom in Thailand, call for history...

If you have any info/pointer you think it may (or may not) related, please do send them to me at arthit # gmail,com or just leave a comment below. Thank you.
The finished work will be published online under Creative Commons License, for the benefits of everyone.

ผมกำลังทำการบ้านอยู่ครับ จะทำเรื่องวัฒนธรรมแฮกเกอร์ในเมืองไทย ใครมีข้อมูลบอกมาเลยนะครับ ผมอาจจะขอสัมภาษณ์ด้วยใครอยู่ในยุคบีบีเอส ยุค ZzzThai, LTN, TLWG พวกนี้ เรื่อยมาจน LinuxTLE, ปลาดาวออฟฟิศ, OfficeTLE, มาถึง Blognone และ *Camp ต่าง ๆ ใครเคยเห็นงานทำนองนี้หรือที่เกี่ยวข้องที่ไหนก็แจ้งมาได้เลยครับ — และแน่นอนว่าถ้าเห็นว่ามีอะไรผิดหรือไม่น่าจะใช่ ก็ท้วงได้เลยนะครับ — ขอบคุณมาก ๆ (ส่งต้น ๆ เดือนตุลา)

Good news guys, I decided to do my term project on ‘hackerdom’ and hacker subculture in Thailand :)

So to speak, the definition of ‘hacker’ in this project goes wider, it could be a coder, a radiofreak or a hobbyist/professional playing on electronic sound toy ... if one hacks a thing for fun, she's a hacker.

At the first place, I dated back Thailand's hackerdom to around mid-1990s, where a group of Thai students/professionals in Japan started a ZzzThai (สื่อไทย) project to develop/fix Thai features in free softwares. Also a number of then NECTEC-employed (like P'Samphan and @theppitak) that actively contribute codes on Thai language processing — together with other hackers. As my current understanding, these activities later resolved into Thai Linux Working Group, in which still more or less active til today.

Anyway, eventually, @sikkha reminds me that things actually started, before the Internet time, since the BBS era. @kijjaz also agree on this, and make me realized that it's not just only programmers who were active in that old days, but also experimental-hobbyist musicians who play around midi/mod trackers (@kijjaz used to run music-computing-packed Wildanty BBS, while I used to run a short-live SmileSite, around 1994-1995, but the Thai BBS scene dates back further at least two years — no solid data at this point, yet .. used to blog a bit about this four years ago). On the coding sides, in this BBS glory days, I still remember how people exchange their Turbo Pascal codes with others. Codes from Microcomputer magazine's SoftMail also available for download in many sites (yes, via that Z-modem protocol, a lot faster than Green Bangkok WiFi today! :p).

So, if you know anything about Falcon, ManNET, Close Loop, @rma (of AR group), or any BBS. Or things about ZzzThai, Linux.Thai.Net, Thai Linux Working Group, or any circles you think it may related. Please contact me na krub :)

A reason that I write this in English is because I realized that hackerdom in Thailand does not solely consists of Thais, no doubt there should be foreigners participated. At least in this era of BarCamp, @luke_bkk and many others show the examples.

Hmm... will update more in progress na, cheers :)

technorati tags: ,

2008-09-08

Newstweets

ผู้ใดใช้ทวิตเตอร์ แล้วอยากจะบอกรับข่าวสาร ลองตามนกพวกนี้ดูครับ (อัพเดทรอบสอง ได้ลิงก์เพิ่มเติมจากความเห็นและจาก duocore):

Want eat news on Twitter? Follow these (2nd update):

ข่าวไทย Thailand-oriented news

ข่าวเทศ international news

ความสนใจพิเศษ special interests

Plus, TwitLinks – the latest links from the worlds top tech twitter users, and จับกระแสการเมืองไทย จากผู้ใช้ทวิตเตอร์

And, for Arsenal fans (like us!), this is the best thing: @bbcarsenal — brilliant!!


Twitter ? อะไรคือทวิตเตอร์ ?



ทวีตบอกเพื่อน Tell your friends about these, tweets them:

“ รับสารพัดข่าวบน Twitter / many (40+) news feeds on Twitter: http://tinyurl.com/newstweets



technorati tags: , , ,

2008-08-13

be Revolutionist or be Reformist ?

“นักปฏิวัติท้ายที่สุดแล้วจะเป็นนักปฏิรูปที่ขยันที่สุด ก้าวหน้าที่สุด
ในทางตรงข้าม นักปฏิรูปหากทำการปฏิรูปเพียงลำพังโดยปราศจากเป้าในการปฏิวัติ ก็จะเป็นผู้รักษาระบบแห่งการกดขี่ที่ขยันที่สุดอย่างขันแข็งที่สุดเช่นกัน”

โรซา ลุกเซมบวร์ก

จากบทความ เราจะไปข้างไหนดี ที่บล็อกประกายไฟ (Iskra)

technorati tags: , , ,

2008-08-11

Academy Firefoxia Live

I'm now at Firefox Thai localization sprint @ House 2.0 - Live

อารมณ์ประมาณ ลงแขก + AF + มาเล่นเกมบ้านเพื่อน

Free TV Show from Ustream

(vdo page link)

technorati tags: , ,

2008-07-17

different treatments of Mai Yamok in BEST Corpus

In the first release of BEST Word Segmented Corpus (free registration required for corpus download), I found different segmentations for May Yamok (repetition mark):

  • |พร้อม|ๆ| |กับ|
  • |ร้อย|ๆ |ปี|
  • |ทั้งๆ ที่|
  • |ต่างๆ| |ดัง|
  • |ย่อ|ๆ| |ว่า|
  • |ย่อ|ๆ |ว่า|

(Real data, taken from encyclopedia_00005.txt. '|' is word/token boundary)

These are probably intended. Or inconsistency ? Not quite sure, will ask people around.

BEST เป็นการประเมินประสิทธิภาพอัลกอริธึม/ซอฟต์แวร์ประมวลผลภาษาไทย ปีนี้จัดแข่งขันซอฟต์แวร์ตัดคำไทย ในงาน NSC ครั้งที่ 11 - สนใจร่วมได้

technorati tags: , ,

2008-05-20

hidden text in Kapook again

รู้จาก duocore.tv และตามไปอ่านในบล็อก mormmam และ pittaya

เรื่องเดิม ๆ ครับ คล้าย ๆ กับที่เคยเป็นข่าวไปก่อนหน้านี้ กับการทำ search engine “optimization”

Big blackhat SEO in thailand again (รูปภาพ นิกกี้ เพลย์บอย หนุ่มหล่อ ถ่ายแฟชั่น ยั่วน้ำลาย ชาวเกย์)

Hidden text again (รูปภาพ Wonder Girls 5 สาวสวย ดาราเกาหลี)

เท่าที่ดู คราวนี้นี่ไม่ได้เป็น spam เพราะว่าเนื้อหาก็ออกมาทำนองคำค้นพวกนั้น (ไม่เหมือนครั้งก่อน) แต่อย่างไรก็ตาม hidden text นี่มันก็ถือว่าเอาเปรียบเว็บไซต์อื่น ๆ เขา ในแง่ว่าไปดันอันดับคนอื่นในเสิร์ชเอนจิน (ไม่ได้ใช้ clear text เหมือนกันหมด แฟร์ ๆ)

ทั้งนี้ ดูจากโค้ด HTML ในหลาย ๆ หน้า ก็ไม่น่าจะใช่ user-generated content ด้วยแน่ ๆ (อย่างที่เคยอ้างในครั้งก่อน) น่าจะเป็นการเขียนโปรแกรมแทรกชุดคำดังกล่าวเข้าไป

กรณีนี้ผิดไหม ผมก็คงไปตัดสินแทนใครไม่ได้ แต่ละองค์กรก็มีแนวนโยบายการดำเนินธุรกิจที่แตกต่างกันไป เว็บไซต์ไหน เสิร์ชเอนจินไหน ผู้ใช้คนไหน จะคิดอย่างไร ก็เป็นเรื่องของเขาละกันครับ แต่ก็คงจะน่ารักดี ถ้า ทำก็บอกว่าทำ ไม่ต้องโกหก บ่ายเบี่ยง เลี่ยงประเด็น หรือดิสเครดิตคนที่เขาชี้ให้เห็น ไม่มีอะไรน่าอาย ถ้าคิดว่ามันไม่ผิดครับ :)

technorati tags: , ,

2008-04-18

Firefox 3.0pre Thai

Following its cousin Thai langpack, Firefox 3.0pre localized build for Thai is out now! Thanks all House 2.0 and Thai L10n people [vdo clip @ duocore.tv].

ผลลัพธ์จากงานเย็นทั่วหล้ามหาสงกรานต์ Firefox Thai L10n sprint @ House 2.0 [ดูคลิป ที่ duocore.tv] มาแล้ว

ไฟร์ฟ็อกซ์ 3.0pre ภาษาไทย (รุ่นทดสอบ) ลองวันนี้ ทั้งบน GNU/Linux, Mac OS X และ Windows XP ดิจิทัลดาวน์โหลด (ทุกค่าย)

งานนี้ pittaya เจ้าหนุ่มพลังบิวด์ ซัดไปหลาย build :P

ไม่ชอบใจ พบที่ผิด แจ้งที่ หน้าร้องเรียน

updated 2008.04.18: pittaya's on Firefox 3 Thai Localized Build เล่าแบบละเอียด ๆ

technorati tags: , ,

2008-04-14

more eyeballs are always welcome!

(Thai Firefox L10n sprint)

Add-ons - Language Pack - Thai

เนื่องจากหลุดจากสถานะวุ้นเละ ๆ แล้ว ทีมงานเลยอยากให้ทุกคนช่วยกันดูหน่อย หาที่มันประหลาด ๆ แล้วแจ้งมากันครับ หรือจะมาช่วยกันแปลก็ได้

ดาวน์โหลด language pack ไปลอง (ติดตั้งเหมือนปลั๊กอินทั่วไป):
http://code.google.com/p/thai-l10n/downloads/list

แสดงความคิดเห็น/แจ้งข้อผิดพลาด (เมลกลุ่ม - สมัครก่อนถึงส่งได้):
thai-l10n (at) googlegroups.com

ขอบคุณครับ

“Given enough eyeballs, all bugs are shallow.”

technorati tags: , ,

early Thai Minefield

(Thai Firefox L10n sprint)

บน Mac OS X* (โดย pittaya) — build แรกของ sprint นี้ ... ซึ่งมีแต่แมค! (มี Ubuntu สองเครื่องเป็นชนกลุ่มน้อย):

Firefox Thai Locale!

บน GNU/Linux (Ubuntu 8.04 Beta):

1st Thai Firefox 3 on GNU/Linux (very pre-release)

บน Windows XP (ลูกเมียน้อยมุมห้อง เพิ่งยกมาในวันที่สอง ด้วยความจำเป็น):

early Thai Minefield on Windows XP

update 2008.04.14: เพิ่มภาพหน้าจอบน Windows XP

technorati tags: , ,