มีนักสถิติหัวใส ใช้ google สร้างพจนานุกรมแปลภาษาอัตโนมัติ โดยไม่ต้องมีพจนานุกรมใด ๆ มาก่อน
(อันที่จริง google สามารถสั่งให้ค้นพจนานุกรมได้ โดยขึ้นต้นวลีค้นว่า "define: คำที่จะค้น" แต่นั่นคือ มีพจนานุกรมรองรับอยู่ก่อน แต่เราจะไม่นับ เพราะในที่นี้ เรากำลังสนใจ การสร้าง ไม่ใช่ การใช้ พจนานุกรม)
การเขียนโปรแกรมแปลข้ามภาษา เป็นเรื่องหนึ่งที่ท้าทายฝีมือโปรแกรมเมอร์ แปลร้าย ๆ ทำไม่ยาก แต่แปลให้เนียนนี่ ทำย๊าก..ยาก
คนเขียนโปรแกรมแปล ถ้าเริ่มต้นใหม่ ๆ ก็คือ ต้องศึกษาข้อมูลมากมาย เช่น มีพจนานุกรมคำแปล มีข้อมูลโครงสร้างไวยากรณ์ มีข้อมูลสำหรับการฝึกโปรแกรมให้เชื่อง
แต่ก็จะมีบางคนคิดไปไกลกว่านั้น แปลข้ามไปยังภาษาที่แทบไม่มีข้อมูลอะไรมาก่อนเลย ใช้วิธีสร้างโปรแกรมให้เรียนรู้ด้วยตัวเอง
กลุ่มหลังนี้ จะต้องมีลูกเล่น ในการสร้างพจนานุกรมคำศัพท์ข้ามภาษาแบบอัตโนมัติ
ประเด็นนี้ ผมเคยเขียนไว้หน่อยนึงใน คณิตศาสตร์สำหรับสังคม 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 ใด ที่อยู่ด้วยกันบ่อยผิดปรกติบ้าง
ผู้วิจัยพบว่าสามารถแปลความหมายได้ดีอย่างน่าทึ่ง คือสอดคล้องกับสิ่งที่มีผู้เคยพบไว้ก่อน (เช่น ยีนไหนก่อมะเร็ง) และทำนายไปข้างหน้าได้อีกมากมายหลายเรื่อง
เทคนิคนี้ นำไปประยุกต์ใช้ได้กว้างขวางแทบไม่มีขีดจำกัด ขึ้นกับจินตนาการ ว่าเราเองมีหัวสร้างสรรค์แค่ไหน
เพียงแต่ต้องเข้าใจให้ชัดเจนเสียก่อนว่า เป็นการ คาดอย่างคร่าว ๆ เท่านั้น ห้ามปักใจเชื่อแบบฟันธง แต่จะยอดเยี่ยมมากถ้าเอาไว้ใช้เป็นจุดตั้งต้นสำหรับการตรวจสอบต่อไป
ไม่มีความเห็น