AI-For-Beginners/translations/th/lessons/5-NLP/13-TextRep/README.md

14 KiB

การแสดงข้อความในรูปแบบเทนเซอร์

แบบทดสอบก่อนเรียน

การจัดประเภทข้อความ

ในส่วนแรกของบทนี้ เราจะมุ่งเน้นไปที่งาน การจัดประเภทข้อความ โดยเราจะใช้ชุดข้อมูล AG News ซึ่งประกอบด้วยบทความข่าว เช่นตัวอย่างต่อไปนี้:

  • หมวดหมู่: วิทยาศาสตร์/เทคโนโลยี
  • หัวข้อ: Ky. Company Wins Grant to Study Peptides (AP)
  • เนื้อหา: AP - บริษัทที่ก่อตั้งโดยนักวิจัยเคมีจากมหาวิทยาลัย Louisville ได้รับทุนเพื่อพัฒนา...

เป้าหมายของเราคือการจัดประเภทข่าวให้อยู่ในหนึ่งในหมวดหมู่ที่กำหนดไว้โดยอิงจากข้อความ

การแสดงข้อความ

หากเราต้องการแก้ปัญหาด้านการประมวลผลภาษาธรรมชาติ (NLP) ด้วยเครือข่ายประสาทเทียม เราจำเป็นต้องมีวิธีการแสดงข้อความในรูปแบบเทนเซอร์ คอมพิวเตอร์มีการแสดงตัวอักษรในรูปแบบตัวเลขอยู่แล้ว ซึ่งเชื่อมโยงกับฟอนต์บนหน้าจอของคุณโดยใช้การเข้ารหัส เช่น ASCII หรือ UTF-8

ภาพแสดงแผนภาพการเชื่อมโยงตัวอักษรกับการแสดงผลในรูปแบบ ASCII และไบนารี

แหล่งที่มาของภาพ

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

ดังนั้น เราสามารถใช้วิธีการต่าง ๆ ในการแสดงข้อความ:

  • การแสดงในระดับตัวอักษร ซึ่งเราจะแสดงข้อความโดยการพิจารณาตัวอักษรแต่ละตัวเป็นตัวเลข หากเรามีตัวอักษร C ต่าง ๆ ในชุดข้อความ คำว่า Hello จะถูกแสดงในรูปแบบเทนเซอร์ขนาด 5xC โดยตัวอักษรแต่ละตัวจะสอดคล้องกับคอลัมน์ในเทนเซอร์ที่เข้ารหัสแบบ one-hot
  • การแสดงในระดับคำ ซึ่งเราสร้าง คำศัพท์ ของคำทั้งหมดในข้อความ และแสดงคำโดยใช้การเข้ารหัสแบบ one-hot วิธีนี้ดีกว่าในบางแง่ เพราะตัวอักษรแต่ละตัวไม่มีความหมายมากนัก ดังนั้นการใช้แนวคิดเชิงความหมายระดับสูง เช่นคำ จะช่วยลดความซับซ้อนของงานสำหรับเครือข่ายประสาทเทียม อย่างไรก็ตาม ด้วยขนาดของพจนานุกรมที่ใหญ่ เราต้องจัดการกับเทนเซอร์ที่มีมิติสูงและกระจัดกระจาย

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

N-Grams

ในภาษาธรรมชาติ ความหมายที่ชัดเจนของคำสามารถกำหนดได้เฉพาะในบริบทเท่านั้น ตัวอย่างเช่น ความหมายของ neural network และ fishing network แตกต่างกันโดยสิ้นเชิง วิธีหนึ่งในการคำนึงถึงสิ่งนี้คือการสร้างโมเดลของเราบนคู่คำ และพิจารณาคู่คำเป็นโทเค็นคำศัพท์แยกต่างหาก ด้วยวิธีนี้ ประโยค I like to go fishing จะถูกแสดงในรูปแบบลำดับของโทเค็นดังนี้: I like, like to, to go, go fishing ปัญหาของวิธีนี้คือขนาดของพจนานุกรมจะเพิ่มขึ้นอย่างมาก และการรวมกันเช่น go fishing และ go shopping จะถูกแสดงโดยโทเค็นที่แตกต่างกัน ซึ่งไม่มีความคล้ายคลึงกันทางความหมายแม้จะใช้คำกริยาเดียวกัน

ในบางกรณี เราอาจพิจารณาใช้ tri-grams -- การรวมกันของสามคำ -- ด้วยเช่นกัน ดังนั้นวิธีนี้จึงมักเรียกว่า n-grams นอกจากนี้ยังมีเหตุผลที่จะใช้ n-grams กับการแสดงในระดับตัวอักษร ซึ่งในกรณีนี้ n-grams จะสอดคล้องกับพยางค์ต่าง ๆ

Bag-of-Words และ TF/IDF

เมื่อแก้ปัญหาเช่นการจัดประเภทข้อความ เราจำเป็นต้องสามารถแสดงข้อความในรูปแบบเวกเตอร์ขนาดคงที่ ซึ่งเราจะใช้เป็นอินพุตสำหรับตัวจัดประเภทแบบ dense วิธีที่ง่ายที่สุดวิธีหนึ่งคือการรวมการแสดงคำแต่ละคำ เช่นโดยการบวกกัน หากเราบวกการเข้ารหัสแบบ one-hot ของแต่ละคำ เราจะได้เวกเตอร์ที่แสดงความถี่ ซึ่งแสดงจำนวนครั้งที่แต่ละคำปรากฏในข้อความ การแสดงข้อความในรูปแบบนี้เรียกว่า bag of words (BoW)

ภาพโดยผู้เขียน

BoW แสดงให้เห็นว่าคำใดปรากฏในข้อความและในปริมาณเท่าใด ซึ่งสามารถเป็นตัวบ่งชี้ที่ดีว่าข้อความเกี่ยวกับอะไร ตัวอย่างเช่น บทความข่าวเกี่ยวกับการเมืองมักจะมีคำเช่น president และ country ในขณะที่สิ่งพิมพ์ทางวิทยาศาสตร์อาจมีคำเช่น collider, discovered เป็นต้น ดังนั้นความถี่ของคำสามารถเป็นตัวบ่งชี้ที่ดีของเนื้อหาข้อความในหลายกรณี

ปัญหาของ BoW คือคำทั่วไปบางคำ เช่น and, is เป็นต้น ปรากฏในข้อความส่วนใหญ่ และมีความถี่สูงสุด ซึ่งบดบังคำที่สำคัญจริง ๆ เราอาจลดความสำคัญของคำเหล่านั้นโดยคำนึงถึงความถี่ที่คำปรากฏในชุดเอกสารทั้งหมด นี่คือแนวคิดหลักของวิธี TF/IDF ซึ่งมีการอธิบายรายละเอียดเพิ่มเติมในโน้ตบุ๊กที่แนบมากับบทเรียนนี้

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

✍️ แบบฝึกหัด: การแสดงข้อความ

เรียนรู้เพิ่มเติมในโน้ตบุ๊กต่อไปนี้:

สรุป

จนถึงตอนนี้ เราได้ศึกษาวิธีการที่สามารถเพิ่มน้ำหนักความถี่ให้กับคำต่าง ๆ อย่างไรก็ตาม วิธีเหล่านี้ไม่สามารถแสดงความหมายหรือลำดับได้ ดังที่นักภาษาศาสตร์ชื่อดัง J. R. Firth กล่าวไว้ในปี 1935 ว่า "ความหมายที่สมบูรณ์ของคำจะขึ้นอยู่กับบริบทเสมอ และการศึกษาความหมายที่แยกจากบริบทไม่สามารถถือเป็นเรื่องจริงจังได้" เราจะเรียนรู้ในภายหลังในหลักสูตรนี้เกี่ยวกับวิธีการจับข้อมูลบริบทจากข้อความโดยใช้การสร้างแบบจำลองภาษา

🚀 ความท้าทาย

ลองทำแบบฝึกหัดอื่น ๆ โดยใช้ bag-of-words และโมเดลข้อมูลต่าง ๆ คุณอาจได้รับแรงบันดาลใจจาก การแข่งขันนี้บน Kaggle

แบบทดสอบหลังเรียน

ทบทวนและศึกษาด้วยตนเอง

ฝึกฝนทักษะของคุณด้วยเทคนิคการฝังข้อความและ bag-of-words บน Microsoft Learn

งานที่ได้รับมอบหมาย: โน้ตบุ๊ก