0

Apertium ภาษาไทย

Apertium เป็นระบบแปลภาษาแบบใช้กฎการถ่ายโอน (โดยเฉพาะแบบตื้น) ที่สำคัญมันเป็นซอฟต์แวร์เสรี (Free software; ~ Open source software)

Apertium กับภาษาไทยอยู่ในระยะเริ่มต้น แต่ก็เอาลงติดตั้งเพื่อช่วยกันพัฒนาได้ เอาไปใช้คงยังไม่ไหว

  1. เบื้องต้นดูตามนี้ได้เลย
  2. ใน svn ที่ sf.net/projects/apertium ใน trunk ลง lttoolbox apertium apertium-lex-tools
  3. ลง vislcg3
  4. ใน incubator ใน svn ที่ sf.net/projects/apertium ลง apertium-tha
  5. ใน incubator ใน svn ที่ sf.net/projects/apertium ลง apertium-tha-eng อันนี้จะท่ายากหน่อยเพราะต้องสั่งทำนอง ./autogen.sh –with-lang1=(ชี้ไปที่ path ของ apertium-tha) ที่ลงไปก่อนหน้านี

เสร็จแล้ว ใน folder ของ apertium-tha-eng ลองสั่ง apertium -d . eng-tha ก็จะเริ่มแปลได้นิดหน่อย

ตอนนี้มันก็จะออกมาฮาฮาประมาณนี้

$ apertium -d . eng-tha
I am a cat.
#ฉัน #คือ *a #แมว.

ป.ล. ไม่เข้าใจถามไดใน IRC ที่ irc.freenode.org ห้อง #apertium

0

wordcut 0.7.0 เรียกใช้จาก command line ได้แล้วครับ

wordcut คือโปรแกรมตัดคำ (word segmentation)

วิธีติดตั้ง

npm install -g wordcut

เวลาใช้ก็จะประมาณนี้อะครับ

$ wordcut
กากากา
กา กา กา

คือพิมพ์ กากากา เข้าไปมันก็ตัดได้ กา กา กา ออกมา

More info: http://github.com/veer66/wordcut

21

โปรแกรมตัดคำ แบบใช้ PHP ล้วน ๆ

ที่ผ่านมามีหลายท่านสนใจถามเข้าหลังจากที่แสดงตัวอย่างเรียก Swath จาก PHP ให้ดู แต่ส่วนมากพอใช้บน Windows หลายคน ก็งง ๆ ผมก็งง ก็เลยจัดอันนี้ไป โปรแกรมตัดคำมันบน PHP ล้วน ๆ เสียเวลาเขียนไปหลายชั่วโมงอยู่ครับ น่าจะมี bug อะไรเต็มไปหมดถ้าท่านใดพบกรุณาแจ้งไปที่ https://github.com/veer66/PhlongTaIam/issue เดี๋ยวนี้ใช้ github แล้วครับ เพื่อท่านใดจะช่วยแก้จะได้ fork แล้ว pull request กลับมาได้เลย ไม่ต้องเสียเวลาย้ายไปย้ายมาให้ลำบากเหมือนโครงการก่อน

เข้าไป download ที่ https://github.com/veer66/PhlongTaIam ได้เลยครับ ถ้าเอาง่าย ๆ ก็ click ที่ปุ่มที่เขียนว่า zip และมีรูปเมฆมีลูกศรชี้ลงครับ ก็ได้ code ไปทั้งหมด เอาไปวางใน htdocs ก็น่าจะใช้ได้เลย

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

1

KUCut Web API

KU Cut Web API ผมอยากจะเรียกใช้ KU Cut จาก Java จึงสร้าง web api ง่ายๆ ขึ้นมาบน CherryPy สามารถดู code ได้จาก https://bitbucket.org/veer66/kucut/src/a54de79d39f9/kucut/webapi.py วางไฟล์นี้ไว้ใน folder เดียวกับ simple_kucut_wrapper.py หรือว่าจริงๆ แล้วก็ใช้ kucut ล่าสุดจาก Hg repository เลยก็ได้

จากนั้นก็ลง CherryPy ผมใช้รุ่น 3.2

จากนั้น run server ตรงๆ ได้เลย ใช้ตำสั่ง python webapi.py

เวลาเรียกใจงานก็เข้า URL ประมาณ http://localhost:8089/index?text=%E0%B8%81%E0%B8%B2%E0%B8%81%E0%B8%B2%E0%B8%81%E0%B8%B2%E0%B8%81%E0%B8%B2 (มันคือ กินกินกิน แบบ UTF8 แล้วเปลี่ยนมาเป็น URL)

ก็ได้ผลลัพธ์คืนมาเป็น [[["\u0e01\u0e32", "\u0e01\u0e32", "\u0e01\u0e32", "\u0e01\u0e32"]]] เป็น JSON ครับ เอาไป decode ได้เลย

72

ใช้ Swath จาก PHP

Update: โปรแกรมตัดคำแบบใช้ PHP เลยก็มีนะครับ: https://github.com/veer66/PhlongTaIam

ทางบ้านถามเข้ามาหลายท่าน ผมจึงเขียนออกมาได้แบบนี้ครับ

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>Swath Web</title>
	<meta name="generator" content="TextMate http://macromates.com/">
	<meta name="author" content="Vee Satayamas">
	
</head>
<body>
<form method="post">
<textarea name="input_text" cols="80" rows="10"></textarea>
<input type="submit" value="submit">
</form>
<?php

    function swath($input_text) 
    {
        $input_filename= tempnam("/tmp", "swath_");
        $output_filename= tempnam("/tmp", "swath_");
        $input_text_tis620 = iconv("UTF-8", "TIS-620", $input_text);
        file_put_contents($input_filename, $input_text_tis620);
        system("/usr/bin/swath < $input_filename > $output_filename");
        $raw = file_get_contents($output_filename);
        $raw_utf8 = iconv("TIS-620", "UTF-8", $raw);
        unlink($input_filename);
        unlink($output_filename);
        return preg_split('/\|/', $raw_utf8);
    }

    if($_REQUEST['input_text']) {
        $output = swath($_REQUEST['input_text']);
        print implode(" ", $output);
    }
?>
</body>
</html>

แต่ว่าแบบนี้เราต้องลง swath ไว้ใน /usr/bin นะครับ ฯ​ ลงไว้ที่อื่นก็ไม่น่าเป็นไรนะครับ เปลี่ยนใน code เอาเลยก็ได้ ฯ อีกอย่างคือต้องการใช้ iconv ด้วย ฯ แต่ถ้าไม่ใช้ iconv ก็น่าจะได้อีกเหมือนกัน ฯ​ เปลี่ยนหน้าเว็บเป็น TIS-620 ให้หมดก็น่าจะใช้ได้เลย ฯ

0

Vauquois’s triangle

Vauquois’s triangle หรือ Translation triangle เอาไว้แสดง architecture ของ Machine translation system ต่างๆ จะใช้สถิติใช้กฎก็ใช้สามเหลี่ยมนี้ได้ ประมาณว่ามองคนละมิติกัน

สามเหลี่ยมที่ว่า [click]