Monday, August 09, 2004

ตัดคำไทย ด้วย Java

Java ตัดคำไทยได้นานแล้ว (ตั้งแต่ 1.4 ?) แต่ไม่ค่อยได้ใช้

เคยเขียนโปรแกรม Java เล่นๆ เพื่อเปิด Text ไฟล์ภาษาไทย (TIS-620) แล้วลองตัดคำและแสดงผลดู ได้ผลดังนี้

ตัวอย่างการเขียนโปรแกรมให้ตัดคำไทย เป็นดังนี้

  public void printEachForward(BreakIterator boundary, String source) {
    StringBuffer strout = new StringBuffer();
    int start = boundary.first();
    for (int end = boundary.next();
         end != BreakIterator.DONE;
         start = end, end = boundary.next()) {
      strout.append(source.substring(start, end)+"-");
    }
  }

    Locale thaiLocale = new Locale("th");
    String input = "xxxxxxxx";
    BreakIterator boundary = BreakIterator.getWordInstance(thaiLocale);
    boundary.setText(input);
    printEachForward(boundary, input);

นอกจาก BreakIterator.getWordInstance สำหรับหาจุดแบ่งคำแล้ว Java ยังมี BreakIterator.getLineInstance เพื่อหาตำแหน่งที่ขึ้นบรรทัดใหม่ได้อีกด้วย ผลมันดูคล้ายๆกัน ไม่ได้ดูรายละเอียดว่าแตกต่างกันตรงไหน

โปรแกรม ThaiBreaker

3 comments:

poonlap said...

ขอบคุณครับ. เป็นประโยชน์อย่างยิ่ง.

Jobb said...

โอ้มายส์ ขอบคุณมากๆครับ

Groove said...

ทำไงดีคับ โหลดไม่ได้ทั้งสองไฟล์เลย ช่วยทีคับ