สมัครสมาชิก   เข้าระบบ  
ประกาศ: UKM 14 ที่ ม.มหาสารคาม เลื่อนเป็นวันที่ 9-10 ม.ค. 2552
การก่อสร้างซอฟต์แวร์
वीर
อ่าน: 400
การใช้ computer cluster เพื่อทำ text mining

 

  1. ข้อความจากข่าว

    "พบผู้ป่วยไข้หวัดนกที่จังหวัดนนทบุรีเมื่อปีกลาย"

  2. วิเคราะห์เพื่อหานิพจน์ที่สนใจ (ในตัวอย่างนี้ สีแดงคือ ชื่อโรค สีน้ำเงินคือสถานที่ และสีเขียวคือเวลา)

    "พบ ผู้ป่วย ไข้หวัดนก ที่ จังหวัด นนทบุรี เมื่อ ปี กลาย"

  3. หาความสัมพันธ์ระหว่างนิพจน์

    entity relation example

  4. ใช้เทคนิค data mining กับข้อมูลในข้อ 3

 

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


NER in action


แต่ว่า โปรแกรมวิเคราะห์หานิพจน์ที่สนใจ ได้มาจากไหน? เราอาจจะเขียนโปรแกรมเอาก็ได้เช่น if word == "ปทุมธานี" then return "location" ก็อาจจะเป็นไปได้เหมือนกัน หรือว่าอาจจะแยกชื่อจังหวัดไว้ในไฟล์ก็เป็นไปได้อีกเหมือนกัน. แต่ว่าก็อาจจะไม่พอ เทคนิคหนึ่งที่ชาวบ้านนิยมนำมาใช้กันคือ การใช้เครื่องจักรเรียนรู้ (Machine learning). ซึ่งในกรณีนี้มักจะป้อนข้อความตัวอย่างที่บอกว่าส่วนไหนของความเป็นนิพจน์ที่เราสนใจ เข้าไปให้ เครื่องจักรเรียนรู้ หารูปแบบ (pattern) ของนิพจน์ฯ เอง. ขั้นตอนนี้เราเรียกว่าการฝึกสอน ผมคิดว่าการฝึกฝนแบบนี้เป็นการฝึกฝนโดยการทำให้ดูเป็นตัวอย่าง ตัวอย่างที่ใช้ฝึกฝนเครื่องจักรเรียนรู้ก็หน้าตาเหมือน output นั่นเอง เช่น น้ำท่วมชุมพรเมื่อหลายปีก่อน ฯลฯ. แต่การฝึกฝน ก็ไม่ใช่ว่าทำกันแค่ ประโยค 2 ประโยค แต่อาจจะเป็น พัน เป็น หมื่น ประโยค. ปัญหาที่ตามมาคือฝึกไม่เสร็จซักที (ทำงานนานว่าง่ายๆ). ยิ่งเวลาเราทำงานวิจัย เราก็มักจะไม่ได้ฝึกฝนแค่ครั้งเดียว. ส่วนมากแล้วมักจะทำหลายครั้งเพื่อหาวิธีที่ดีสุด เช่น อาจจะลองใช้เครื่องจักรเรียนรู้หลายๆ แบบ เป็นต้น. (ถ้าใครสนใจงานประเภทนี้ ก็ลองดูที่ http://naist.cpe.ku.ac.th/ ได้ โฆษณาเห็นๆ)

ไม่รู้จะทำอย่างไร เราก็หันหน้าไปพึ่ง computer cluster ดีกว่า. ระหว่างที่เขียนอยู่นี่ต่อ net ไม่ได้ เลยไม่ได้ดูว่านิยามของ computer cluster คืออะไร. แต่จากความรู้สึก(ซึ่งก็ไม่น่าจะถูกเท่าไหร่) computer cluster ก็คือการเอา computer หลายๆ เครื่องมาต่อกันผ่าน network ส่วนมากมักจะตั้งอยู่ในตู้เดียวกัน เพื่อช่วยกันประมวลผลงานใหญ่ๆ ให้เสร็จเร็วๆ.

cluster

สมมุติว่าผมมีงาน(การทดลอง) 10 ชุด อาจจะเครื่องแรงๆ มี 2-3 เครื่องแล้วเอางานไป run บนเครื่องแรงๆ 2-3 เครื่องนั้นก็ได้. แต่มันก็จะมีปัญหาก็คือผมต้องมานั่งดูว่า แต่ละงานเครื่องไหนเสร็จก่อน ก็ต้องคอยป้อนงานใหม่เข้าไป. แน่นอนสำหรับ cluster ปัญหานี้ก็ไม่มีเพราะมีโปรแกรมคอยจัดคิวให้. สบายไป :-D

พอเริ่มใช้ cluster ได้ ก็เริ่มอยากจะลองขั้นถัดไปคือไปใช้ grid computing ซึ่งอาจจะมีคนนิยาม grid computing ไว้ดีๆ เท่ๆ เท่าที่ผมเห็น รู้สึก (แต่อาจจะเข้าใจผิด) grid computing ก็คือ cluster หลายๆ ชุดต่อเข้าด้วย ซึ่งอาจจะอยู่คนละคณะ คนละมหาลัยฯ กันก็ได้. แน่นอนจำนวนเครื่องเพิ่มขึ้นมาก. ล่าสุดผมก็ยังอยู่ในช่วงฝึกใช้. :-P

ขอบคุณ Thai Grid ที่ทำให้เราทำการทดลองที่ไม่น่าเสร็จให้เสร็จได้ :-)

หมวดหมู่: เรื่องทั่วไป
คำสำคัญ: computer cluster  text mining
สร้าง: พ. 11 ก.ค. 2550 @ 04:11   แก้ไข: พ. 11 ก.ค. 2550 @ 04:11   ขนาด: 8884 ไบต์
ความคิดเห็น
ไม่มีความคิดเห็น
ชื่อ:
อีเมล:
IP แอดเดรส: 38.103.63.56
  เรียกใช้งานตัวจัดการข้อความ
ข้อความ:
 
รหัสสุ่ม: (ใส่รหัสสุ่มที่แสดงไว้ด้านบน)
  ยกเลิก
บันทึกอื่นๆ
การพัฒนาซอฟต์แวร์