1 / 28

Chapter 7 Text Operations ( การประมวลผลข้อความ)

Chapter 7 Text Operations ( การประมวลผลข้อความ). ดร.สุขชาตรี ประสมสุข คณะเทคโนโลยีสารสนเทศและการสื่อสาร ม.พะเยา. การประมวลผลข้อความ (Text Operations).

nissim-pugh
Download Presentation

Chapter 7 Text Operations ( การประมวลผลข้อความ)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 7Text Operations(การประมวลผลข้อความ) ดร.สุขชาตรี ประสมสุข คณะเทคโนโลยีสารสนเทศและการสื่อสาร ม.พะเยา

  2. การประมวลผลข้อความ (Text Operations) • การประมวลผลข้อความ (Text Operations) หมายถึง การปฏิบัติการตามกรรมวิธีเพื่อนำผลที่ได้ไปสร้างดรรชนี (Indexing) อันจะทำให้การค้นหา (Searching) ในขั้นต่อมาเป็นไปอย่างรวดเร็ว มีประสิทธิภาพและประสิทธิผล • Text Operations นี้แบ่งออกเป็น 3 เรื่อง คือ • Document Preprocessing • Text Clustering • Text Compression

  3. Document Preprocessing • การวิเคราะห์คำ (Lexical Analysis) • การจัดคำโหล (Stop-words) • การหารากศัพท์ของคำ (Stemming) • การเลือกเทอมเพื่อสร้างดรรชนี (Term Selection) • การสร้างคำศัพท์สัมพันธ์ (Thesaurus Construction)

  4. การวิเคราะห์คำ (Lexical Analysis) • เป็นขบวนการแปลงสายตัวอักษรยาว ๆ ในเอกสารหรือสิ่งเป้าหมายกลายมาเป็นสายของคำศัพท์ เพื่อใช้ในการสร้างดรรชนีของเทอมต่อไปเมื่อได้คำแต่ละคำในข้อความยังไม่สามารถนำคำเหล่านั้นไปสร้างดรรชนีได้ทันทีเพราะยังต้องกลั่นกรองคำอีกหลายขั้นจึงจะใช้งานได้ ที่สำคัญได้แก่ • คำที่เป็นตัวเลข (Digit) • คำที่เชื่อมด้วยขีด (Hyphen) • คำที่เชื่อมดัวยเครื่องหมาย Punctuation • ตัวอักษรใหญ่เล็ก

  5. การกำจัดคำโหล (Stop-words Elimination) • แปรตามความหมายจากคำว่า Stop-words หมายถึงคำที่ปรากฏบ่อยมากในข้อความ เช่น a, an, the, and, about, for ในภาษาอังกฤษ หรือคำว่า คือ เป็น และ หรือ ในภาษาไทย • เนื่องจากคำโหลมีปรากฏมากจนไม่มีผลในการสืบค้นทางปฏิบัติจึงไม่จำต้องนำมาสร้างเป็นดรรชนีไม่ว่าจะเป็นรูปแบบใดก็ตาม

  6. การหารากศัพท์ (Stemming) • Stemming เป็นการหา Stem หมายถึง รากศัพท์ คำหลัก หรือต้นตอของศัพท์ เพื่อให้การอธิบายเป็นไปในทางเดียวกัน • ภาษาอังกฤษ คำมีการเปลี่ยนรูปไปตามเหตุการณ์หรือสภาวะต่างๆ เช่น คำว่า Load เป็น Loads, Loaded, Loading, Loadable, Loader, Loaders เป็นต้น • ภาษาบาลี มีการแจกวิภัติตามสถานการณ์ เช่น คำว่า กุมาร กลายเป็น กุมาโร กุมารํ กุมาเร เป็นต้น

  7. การหารากศัพท์ (Stemming) • การทำ Stemming มีหลายวิธีที่สำคัญได้แก่ • Table Lookup • Affix Removal • Successor Variety

  8. การเลือกเทอมเพื่อสร้างดรรชนี (Term Selection) • แรกต้องให้ผู้เชี่ยวชาญที่มีความรู้เฉพาะทางในเอกสารนั้นๆ เป็นผู้กำหนด ซึ่งต้องใช้เวลาและแรงงานมากมหาศาลสำหรับการเลือกเทอมและสร้างเป็นดรรชนี • จึงหลีกเลี่ยงการใช้แรงงานคนแต่หาวิธีการสร้างอย่างอัตโนมัติแทน การเลือกเทอม สามารถทำได้อย่างอัตโนมัติด้วยการกำหนดเงื่อนไขของการคัดเลือก ซึ่งก็มีหลายวิธี วิธีหนึ่งที่ดีคือการเลือกเทอมที่เป็นคำนาม (Noun)

  9. การสร้างคำศัพท์สัมพันธ์ (Thesaurus Construction) • Thesaurus หมายถึงคำศัพท์ หรือเทอมที่มีความหมายเดียวกันหรือใกล้เคียงกัน เช่น คำว่า Astronaut กับคำว่า Cosmonaut หรือ Space Traveler • การที่คำศัพท์ที่มีความหมายเดียวกันหรือใกล้เคียงกัน แต่เขียนได้หลากหลายต่างกัน เป็นความงดงามของภาษาอีกแบบหนึ่งที่ทำให้บทความเขียนได้ชวนอ่าน มีสีสัน และไม่ซ้ำซาก แต่ย่อมจะก่อให้เกิดปัญหา

  10. วัตถุประสงค์ของการสร้างคลังข้อมูล Thesaurus • เพื่อกำหนดคำศัพท์มาตรฐาน • เพื่อช่วยให้ผู้ใช้ในการสร้างคำสอบถามอย่างเหมาะสม • เพื่อกำหนดระดับชั้นของคำศัพท์

  11. องค์ประกอบของ Thesaurus • คำหลักของชุด (Descriptor) • คำที่ความหมายพ้องกับคำหลัก หรือคำที่มีความหมายใกล้เคียงกับคำหลัก แต่ระบบไม่ใช้และกำหนดให้ใช้คำหลักแทน (Used for) • ข้อความอธิบายคำหลัก(Scope Note) • คำที่มีความสัมพันธ์กับคำหลัก

  12. ลักษณะความสัมพันธ์ของคำศัพท์ใน Thesaurus สามารถจำแนกได้เป็น 3 ประเภทหลัก ดังนี้ • ความสัมพันธ์ในแบบสมมูล (Equivalence Relationship) • ความสัมพันธ์ในแบบระดับชั้น (Hierarchical Relationship) • ความสัมพันธ์ในแบบเกี่ยวร่วม (Associative Relationship)

  13. วิธีการสร้างThesaurus • วิธีการแบบ Manual วิธีนี้ใช้คนทำเป็นหลัก โดยเชิญผู้เชี่ยวชาญในสาขาวิชาเฉพาะทางมาทำการรวบรวมคำศัพท์สำคัญและความสัมพันธ์ระหว่างคำทั้งหมดเข้าด้วยกัน • วิธีการประมวลผลด้วยเครื่องจักร โดยอาศัยการปรากฏของคำศัพท์หรือเทอมในเอกสารเป็นฐานข้อมูลและทำการคำนวณค่าต่าง ๆ ที่เป็นตัววัดได้ อันจะนำไปสู่การตัดสินใจของการจัดเก็บคำศัพท์นั้น • ก็ตาม ขั้นตอนสุดท้ายของการตัดสินใจ ยังต้องใช้ผู้เชี่ยวชาญเฉพาะทางเป็นผู้ตัดสิน

  14. Text Clustering • การจัดกลุ่มของเอกสารที่คล้ายกันไว้ในกลุ่มเดียวกัน และที่ต่างกันก็ให้แยกกลุ่มกัน • แทนที่จะค้นหาจากเอกสารทั้งหมด เราก็เพียงจำกัดเฉพาะเอกสารที่อยู่ในกลุ่มเดียวกัน ทำให้ขอบเขตแคบลง การค้นหายังจะทำได้เร็วขึ้น • วิธีการแบ่งกลุ่มมีหลากหลายวิธี แต่ก็จัดได้เป็น 2 วิธีหลักดังนี้ • Flat Clustering • Hierarchical Clustering

  15. Flat Clustering • เป็นการแบ่งกลุ่มตามแนวราบ โดยถือว่าทุก Object เท่ากันหมด หลักการจะใช้วิธี K-Means ด้วยการวัดความเหมือนของ Object กับตัวแทนกลุ่ม และทำการแบ่งกลุ่มออก แบ่งเป็น K กลุ่ม (Cluster) โดยจะแทนแต่ละ Object ด้วยเวกเตอร์ ใน Vector Space เดียวกัน การแบ่งกลุ่มข้อมูลด้วยวิธีนี้ จะพิจารณาจากค่าเบี่ยงเบนมาตรฐาน คือ การแบ่งกลุ่มที่ดีต้องมีผลรวมของค่าเบี่ยงเบนมาตรฐานของ Clusters ให้น้อยที่สุด

  16. K – Means Algorithm • ในขั้นตอนแรก สุ่มเลือก Objects จำนวน k กลุ่ม จากทั้งหมด และให้เป็นค่าเริ่มต้นของค่าเฉลี่ย µ • ขั้นตอนที่สองเป็นการวนซ้ำเป็นรอบ ๆ (Iteration) จนกว่าจะเลิกตามาเกณฑ์กำหนด • ในทางปฏิบัติ K – Means Algorithm จะใช้งานอย่างได้ผลและเป็นไปอย่างมีประสิทธิภาพหรือไม่นั้นขึ้นอยู่กับ การเลือกค่าเริ่มต้น, การกำหนดเกณฑ์การเลิก , การกำหนดค่า k

  17. Hierarchical Clustering • เป็นการแบ่งกลุ่มโดยจัดเป็นลำดับชั้น กล่าวคือ Clusters ประกอบด้วย Clusters ย่อยและแบ่งต่อเป็น Clusters ย่อย ๆ และต่อ ๆ ไป วิธีการเป็นไปได้ใน 2 วิธีคือ ทำจากล่างไปบนที่เรียกว่า Bottom-up และทำจากบนลงล่างที่เรียกว่า Top-down วิธีการของ Bottom-up จะใช้เป็น Agglomerative Algorithm

  18. Hierarchical Clustering • ผลลัพธ์ของ AgglomerativeClustering จะขึ้นกับการวัดค่าความเหมือน (Similarity) เป็นสำคัญ โดยทั่วไปจะมีการวัดใน 4 วิธีด้วยกันดังนี้ • Single Link • Complete Link • Centroid • Group Average

  19. การบีบอัดข้อความ (Text Compression) • วิธีการลดขนาดของเนื้อที่การจัดเก็บของข้อความให้เล็กลง • ประโยชน์โดยตรงที่เห็นได้ชัด ทำให้เนื้อที่การจัดเก็บมีขนาดเล็กลงตาม เมื่อข้อความมีขนาดเล็กลงทางกายภาพ ก็ต้องทำการส่งผ่าน ได้เร็วขึ้นในความเร็วเท่าเดิม หรือหากในช่วงกว้าง (Bandwidth) คงที่ก็จะได้จำนวนช่องสัญญาณ (Channel) ที่มากขึ้นในการส่งผ่านข้อมูล • การบีบอัดข้อความจึงถือได้ว่าเป็นอีกรูปแบบหนึ่งของการเข้ารหัสข้อมูล (Data Encryption)

  20. การบีบอัดข้อความ (Text Compression) • Text Compression มีวิธีการแปลงได้หลายวิธี แต่ทุกวิธีจะมีลักษณะร่วมกันคือเป็นแบบ Lossless Compression อันหมายถึงเมื่อแปลงข้อมูลในขาไป และแปลงกลับในขากลับ ยังรักษาข้อความให้เหมือนเดิมทุกประการได้ • สำหรับ Text Compression แล้วจะนำในลักษณะ Lossy Compression ไม่ได้ เพราะมนุษย์อ่านข้อความที่แปลงกลับผิดแปลกไปจากเดิมไม่ได้ เมื่อข้อความไม่เหมือนเดิมความเข้าใจก็จะต่างกัน จึงทำให้ไม่เลือกวิธีการ Lossy Compression

  21. การบีบอัดข้อความ (Text Compression) วิธีการทำ Text Compression แบ่งได้เป็น 3 ประเภท ดังนี้ • วิธีการพื้นฐาน • วิธีการทางสถิติ • วิธีการด้วยพจนานุกรม

  22. วิธีการพื้นฐาน • โดยทั่วไปคือ แทนสายตัวอักษรยาวๆ ด้วย รหัสบางตัว เรียกว่า Run-Length Encoding (RLE) • แทนชุดของข้อมูลที่ซ้ำกันในข้อความด้วยการนับจำนวนข้อมูลซ้ำกันที่อยู่ติดกัน โดนส่วนของข้อมูลที่ซ้ำกัน จะถูกแทนด้วย 3 ส่วน อันประกอบด้วย Control Character (*) ตามด้วยตัวเลขอันบ่งบอกจำนวนตัวอักษรที่ซ้ำกัน และปิดท้ายด้วยตัวอักษรนั้น ตัวอย่างเช่น Text : ABBBBBBBBBCDFFFFEEEEE RLE : A*9BCD*4F*5E

  23. วิธีทางสถิติ ความถี่การปรากฏของตัวอักษร ของคำ หรือกลุ่มคำเป็นแนวทางในการบีบอัดข้อมูล วิธีการที่สำคัญ ได้แก่ • Huffman Coding • Adaptive Huffman Coding

  24. Huffman Coding • แทนชุดตัวอักษรด้วย Codewordsซึ่งมีความยาวของรหัสที่ไม่เท่ากัน การบีบอัดของข้อความทำได้โดยกำหนดรหัสที่สั้นให้แก่ตัวอักษรที่ปรากฏบ่อย และรหัสที่ยาวแก่ตัวอักษรที่ปรากฏน้อย • วิธีการเข้ารหัส Huffman นอกจากใช้กับตัวอักษรเป็นตัวๆแล้ว ยังขยายผลไปใช้กับตัวคำศัพท์แต่ละตัวในข้อความ

  25. Adaptive Huffman Coding • วิธีการ Adaptive Huffman Codingเรียกว่า FGK นอกจากนี้ยังผลงานในแนวเดียวกันโดย Vitter • ผลงานของ VitterAlgorithm จะให้ผลลัพธ์ที่ดีกว่า FGK กล่าวคือ จะให้ Tree ที่มีความสูงน้อยที่สุด เพื่อลดเวลาในการหาเส้นทาง Root ไปยังปลายที่เรียกว่า Leaf Node แต่วิธีของ Vitter มีความยุ่งยากกว่าในทางปฏิบัติ และใช้เวลาในการประมวลผลค่อนข้างมากกว่า

  26. Adaptive Huffman Coding ขั้นตอนของ VitterAlgorithm อาจสรุปโดยย่อได้ ดังนี้ • กำหนด Root Node เป็น Empty Node และกำหนด Weigh เริ่มต้นเป็น 0 • ทำการสร้าง Code Tree โดยใส่ตัวอักษรที่ละตัวเข้าไปในต้นไม้ หาก Node ปัจจุบันเป็น Empty จะต้องทำการแตก Node ออกเป็นChild Node จำนวน 2 Nodes โดย Node ทางซ้ายจะเป็น Empty Node ส่วน Node ทางขวาจะเก็บค่า Symbol ของตัวอักษรที่เราใส่เข้าไป จากนั้นกำหนด Weigh สำหรับ Leaf Node ใหม่ โดยให้ Node ทางซ้ายมีค่าเป็น 0

  27. Adaptive Huffman Coding และ Node ทางขวามีค่าเป็น 1 ตามลำดับและปรับ Weigh ใน Empty Node ให้ไปยัง Leaf Node ของตัวอักษรนั้นๆ • ถ้า Node ที่พิจารณานี้ไม่ได้มี Order สูงสุดเมื่อเทียบกับ Node ทั้งหมดที่มี Weigh เท่ากับ Node นี้ (Weigh class เดียวกัน) ให้สลับค่า (Swap) Weigh และ Symbol กับ Node ที่มี Order สูงสุด • ปรับเพิ่มค่า Weigh สำหรับ Node ปัจจุบัน • ถ้าไม่ใช่ Root Node ให้ไปยัง Parent Node และไปทำขั้นตอนที่ 3 หากเป็น Root Node ถือว่าจบการทำงาน

  28. Thank you Question/Answer

More Related