มีนักสถิติหัวใส ใช้ google สร้างพจนานุกรมแปลภาษาอัตโนมัติ โดยไม่ต้องมีพจนานุกรมใด ๆ มาก่อน
(อันที่จริง google สามารถสั่งให้ค้นพจนานุกรมได้ โดยขึ้นต้นวลีค้นว่า "define: คำที่จะค้น" แต่นั่นคือ มีพจนานุกรมรองรับอยู่ก่อน แต่เราจะไม่นับ เพราะในที่นี้ เรากำลังสนใจ การสร้าง ไม่ใช่ การใช้ พจนานุกรม)
การเขียนโปรแกรมแปลข้ามภาษา เป็นเรื่องหนึ่งที่ท้าทายฝีมือโปรแกรมเมอร์ แปลร้าย ๆ ทำไม่ยาก แต่แปลให้เนียนนี่ ทำย๊าก..ยาก
คนเขียนโปรแกรมแปล ถ้าเริ่มต้นใหม่ ๆ ก็คือ ต้องศึกษาข้อมูลมากมาย เช่น มีพจนานุกรมคำแปล มีข้อมูลโครงสร้างไวยากรณ์ มีข้อมูลสำหรับการฝึกโปรแกรมให้เชื่อง
แต่ก็จะมีบางคนคิดไปไกลกว่านั้น แปลข้ามไปยังภาษาที่แทบไม่มีข้อมูลอะไรมาก่อนเลย ใช้วิธีสร้างโปรแกรมให้เรียนรู้ด้วยตัวเอง
กลุ่มหลังนี้ จะต้องมีลูกเล่น ในการสร้างพจนานุกรมคำศัพท์ข้ามภาษาแบบอัตโนมัติ
ประเด็นนี้ ผมเคยเขียนไว้หน่อยนึงใน blog แรกสุดในชีวิตของผมใน gotoknow เรื่อง คณิตศาสตร์สำหรับสังคม informatics
มาขยายความซ้ำครับ
แนวคิดคือ คำสองคำ ถ้าดำรงอยู่พร้อมกัน ไม่ดำรงอยู่พร้อมกัน สองคำนั้น ควรจะเทียบเท่าซึ่งกันและกัน
แนวคิดนี้ เคยได้ยินเมื่อนานมาแล้วว่า ปปส. ของสหรัฐ ใช้ตัดสินยึดทรัพย์คนที่เคยทำธุรกรรมกับคนที่ทางการหมายหัวว่าเป็นพวกค้ายา คือยึดทรัพย์เลยแม้ไม่เคยมีข้อมูลว่าเคยทำผิดใดมาก่อน ขอเพียงแต่เคยมีธุรกรรมที่เกี่ยวข้องถึงกันมาก่อนเท่านั้น
นักสถิติที่ว่าคือ Rudi Cilibrasi และ Paul M. B. Vitanyi (จาก University of Amsterdam) เขาอาศัย google นี่แหละ เป็นตัวช่วย ตามเอกสารนี้
http://www.arxiv.org/abs/cs.CL/0412098
วิธีคือ เขารวบรวมคำต่าง ๆ ของภาษาต่าง ๆ มาก่อน ขั้นนี้ ไม่จำเป็นต้องรู้คำแปลใด ๆ ทั้งสิ้น
ถัดมา จับคู่คำข้ามภาษา แล้วใช้สถิติตรวจสอบว่า คู่คำที่ว่า ดำรงอยู่พร้อม ๆ กัน และไม่ดำรงอยู่พร้อม ๆ กันหรือไม่ โดยสร้างตัวชี้วัดทางสถิติขึ้นมา โดยสถิติที่ว่า คำนวณจาก page count ที่แสดงให้เราเห็นเวลาค้นตามปรกติ และต้องทราบขนาดของกลุ่มตัวอย่าง (คือจำนวนหน้า web page ที่ google รู้จัก)
เวลาค้น google เสร็จ มุมบนด้านขวาจะมีข้อความทำนองนี้
ผลการค้นหา 1 - 10 รายการจากประมาณ 19,700,000 สำหรับคำว่า สถิติ
ผลการค้นหา 1 - 10 รายการจากประมาณ 359,000,000 สำหรับคำว่า statistics
ผลการค้นหา 1 - 10 รายการจากประมาณ 1,010,000 สำหรับคำว่า statistics สถิติ
ตัว google นั้น มีผู้คาดว่าน่าจะรู้จักหน้า web ราว 8 พันล้านหน้า
เขาก็จะมาทดสอบดูว่า การดำรงอยู่ของคู่คำนี้ เข้าข่าย "คำสองคำ ดำรงอยู่พร้อมกัน ไม่ดำรงอยู่พร้อมกัน" อย่างมีนัยสำคัญทางสถิติหรือไม่
(รายละเอียดอ่าน paper เองนะครับ ผมทำ link ไว้ให้แล้ว)
ถ้าคำต่างภาษาสองคำอยู่ด้วยกันบ่อยอย่างมีนัยสำคัญทางสถิติ ก็เป็นไปได้สูงมาก ที่สองคำนั้น จะมีความหมายตรงกัน ใกล้เคียงกัน หรืออย่างน้อย ต้องเกี่ยวพันกัน
วิธีนี้ไม่ได้ผล 100 % แต่ลองนึกถึงว่า ถ้าใช้วิธีนี้เป็นจุดตั้งต้น แล้วใช้คนช่วยตรวจสอบทีหลัง หรือใช้ร่วมกับเทคนิคอื่น ๆ ก็ควรจะได้ผลที่ "น่าทึ่ง"
เช่น เสริมด้วยการตรวจสอบไขว้กันเอง จะช่วยกรองทิ้งคำที่ไม่ใช่จริง ๆ ไปได้อีก เช่น ถ้าคำที่ 1 คล้ายคำที่ 2 และคำที่ 2 คล้ายคำที่ 3 จริงแล้ว คำที่ 1 ต้องคล้ายคำที่ 3 ด้วย ถ้าไม่เป็นอย่างนั้น แสดงว่า ทั้งสามคำ อาจไม่ใช่คำแปลซึ่งกันและกันจริง
เรายังไปได้ไกลกว่านั้นอีก คือแทนที่จะแค่แปลภาษาคนเป็นภาษาคน ก็ยังใช้แปลภาษาธรรมชาติที่ไม่ใช่ภาษาพูด ไปหาภาษาธรรมชาติที่ไม่ใช่ภาษาพูดอื่นได้ด้วย เช่น ภาษาพันธุกรรม แปลโยงกับ ลักษณะที่แสดงออกมาให้เห็นของสิ่งมีชีวิต โดยใช้แนวคิดทำนองเดียวกัน (แต่ไม่ได้ใช้ google แล้ว)
อ่านได้ที่วารสาร PLoS Biology
[Korbel et al., Systematic Associat ion of Genes to Phenotypes by Genome and Literature Mining. PLoS Biology 2005, 3(5: e134) pp 0815-0825 ; downloadable at www.plosbiology.org)]
แปลหน่วยพันธุกรรม (genes) ว่าโยงกับลักษณะที่ปรากฎ (genetic traits) อย่างไร
เริ่มจากค้นฐานข้อมูลนิยาม genes และ ฐานข้อมูลนิยามคำศัพท์เกี่ยวกับ traits มาก่อน
แล้วลองใช้ Medline paper count (แทน google ซึ่งจะดีกว่า เพราะโฟกัสเนื้อหาด้านนี้อยู่แล้ว) ว่ามีคู่ gene-trait ใด ที่อยู่ด้วยกันบ่อยผิดปรกติบ้าง
ผู้วิจัยพบว่าสามารถแปลความหมายได้ดีอย่างน่าทึ่ง คือสอดคล้องกับสิ่งที่มีผู้เคยพบไว้ก่อน (เช่น ยีนไหนก่อมะเร็ง) และทำนายไปข้างหน้าได้อีกมากมายหลายเรื่อง
เทคนิคนี้ นำไปประยุกต์ใช้ได้กว้างขวางแทบไม่มีขีดจำกัด ขึ้นกับจินตนาการ ว่าเราเองมีหัวสร้างสรรค์แค่ไหน
เพียงแต่ต้องเข้าใจให้ชัดเจนเสียก่อนว่า เป็นการ คาดอย่างคร่าว ๆ เท่านั้น ห้ามปักใจเชื่อแบบฟันธง แต่จะยอดเยี่ยมมากถ้าเอาไว้ใช้เป็นจุดตั้งต้นสำหรับการตรวจสอบต่อไป


เมนูของ wwibul




