ภาษาธรรมชาติคืออะไร?

ภาษาธรรมชาติเป็นเพียงภาษาของมนุษย์ เช่น อังกฤษ ฝรั่งเศส ฯลฯ ในขณะที่ภาษาคอมพิวเตอร์ได้แก่ C, Python และอื่นๆ อีกมากมาย ภาษาเครื่องถูกสร้างขึ้นเพื่อการใช้งานเฉพาะเจาะจง ซึ่งต่างจากภาษาธรรมชาติที่พัฒนาขึ้นมาหลายปีตามความสะดวก แม้ว่าภาษาธรรมชาติจะเป็นไปตามกฎไวยากรณ์บางอย่าง แต่ก็ไม่ได้ผูกมัดตามกฎเกณฑ์ใดๆ เป็นพิเศษ แต่ก็รวมเอาคำสแลง การเสียดสี คำย่อสมัยใหม่ ฯลฯ ภาษาธรรมชาติอาจมีรูปแบบใดก็ได้ เช่น ข้อความ คำพูด และแม้แต่ภาษามือ
ภาษาธรรมชาติจำเป็นต้องได้รับการประมวลผลเพื่อให้เครื่องเข้าใจได้ ด้วยเหตุนี้ NLP

การประมวลผลภาษาธรรมชาติ

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

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

ข้อมูลที่มีโครงสร้างและไม่มีโครงสร้าง

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

ข้อมูลที่มีโครงสร้างเป็นที่นิยมในงานต่างๆ เช่น การจำแนกข้อความและการแปลด้วยคอมพิวเตอร์ โดยที่จำเป็นต้องมีข้อมูลที่มีป้ายกำกับ และในงานต่างๆ เช่น โมเดล QA และโมเดลภาษา แนะนำให้ใช้ข้อมูลที่ไม่มีโครงสร้าง

ความท้าทายใน NLP

ภาษาธรรมชาติเรียนยากและคลุมเครือมาก เพื่อให้เข้าใจถึงระดับความยากง่ายๆ มนุษย์โดยเฉลี่ยที่โตเต็มวัยต้องใช้เวลาประมาณ 6-7 เดือนในการเรียนรู้ภาษาที่เครื่องคาดว่าจะเรียนรู้ได้ในครั้งเดียว แม้หลังจากเรียนรู้แล้ว ภาษาก็ยังพัฒนาอยู่เสมอ การตรวจจับความหมายที่แท้จริงของประโยคนั้นยากจริงๆ จะวิเคราะห์ความรู้สึกในการทบทวนแบบประชดประชันได้อย่างไร แม้ว่าภาษาจะมีกฎเกณฑ์บางอย่าง แต่ข้อมูลดิบไม่จำเป็นต้องเป็นไปตามกฎเหล่านี้ ภาษามิลเลนเนียลมีคำสแลงและคำย่อซึ่งพิสูจน์แล้วว่าเป็นปัญหามากในขณะที่ประมวลผลภาษาธรรมชาติ

สิ่งหนึ่งที่เราไม่ต้องการทำที่นี่คือการข้ามแนวคิดพื้นฐานของ NLP และข้ามไปที่การจัดประเภทข้อความและการสรุปข้อความโดยตรง ในซีรีส์นี้ เราจะพยายามครอบคลุมหัวข้อต่างๆ ให้มากที่สุด ได้แก่:

  • การประมวลผลข้อความล่วงหน้า
  • โครงข่ายประสาทเทียม
  • การฝังคำที่ไม่มีบริบท
  • หม้อแปลงไฟฟ้า
  • การฝังคำตามบริบท
  • การสรุปข้อความ
  • การจำแนกข้อความ
  • โมดูลประกันคุณภาพ
  • เกณฑ์มาตรฐานกาว

ทศวรรษที่แล้ว มีเพียงผู้เชี่ยวชาญที่มีความรู้ด้านสถิติ การเรียนรู้ของเครื่องจักร และแนวคิดทางภาษาเท่านั้นที่จะปฏิบัติงาน NLP หนักๆ ได้ แต่ในช่วงไม่กี่ปีที่ผ่านมา ต้องขอบคุณไลบรารี NLP ต่างๆ ที่ทำให้การแก้ปัญหา NLP กลายเป็นเรื่องง่ายขึ้นมาก ในบทความนี้ เราจะดูไลบรารี NLP ที่ได้รับความนิยมมากที่สุด การเปรียบเทียบจะทำในบทความต่อเนื่องโดยขึ้นอยู่กับงานที่บทความนั้นยึดถือ มาเริ่มกันเลย

ห้องสมุด NLP ที่มีชื่อเสียง

มีห้องสมุด NLP มากมาย แต่ห้องสมุดเหล่านี้เป็นห้องสมุดบางแห่งที่ควรค่าแก่การกล่าวถึง ไม่จำเป็นต้องศึกษาห้องสมุดให้ละเอียดทั้งหมดแต่ต้องรู้ข้อดีข้อเสีย

  • NLTK:ชุดเครื่องมือภาษาธรรมชาติน่าจะเป็นไลบรารี NLP ที่มีชื่อเสียงที่สุด โดยมีคลังข้อมูลและพจนานุกรมมากกว่า 50 รายการ มีต้นกำเนิด 9 รายการ และอัลกอริธึมมากมายให้เลือก NLTK มีอินเทอร์เฟซที่ใช้งานง่ายสำหรับทรัพยากรคลังคำศัพท์และคำศัพท์มากกว่า 50 รายการ จุดอ่อนบางประการที่ควรทราบคือช้าเมื่อเทียบกับไลบรารีอื่น ๆ และยังซับซ้อนเล็กน้อยในการเรียนรู้และนำไปใช้
  • spaCy:Spacy เป็นที่รู้จักในนามห้องสมุดล้ำสมัย ซึ่งให้บริการเฉพาะอัลกอริธึมที่ดีที่สุดเท่านั้น จึงช่วยลดความเครียดในการเลือกระหว่างอัลกอริธึมต่างๆ ได้รับการออกแบบมาอย่างชัดเจนสำหรับการใช้งานจริง — ช่วยให้คุณพัฒนาแอปพลิเคชันที่ประมวลผลและเข้าใจข้อความปริมาณมหาศาล เนื่องจากมีการใช้งานบน Cython Spacy จึงรวดเร็วปานสายฟ้า สามารถรองรับโทเค็นได้มากกว่า 49 ภาษา
  • Stanford CoreNLP:Stanford CoreNLP คือชุดเครื่องมือวิเคราะห์ธรรมชาติที่พร้อมสำหรับการผลิต เนื่องจาก CoreNLP เขียนด้วยภาษา Java จึงต้องการให้ติดตั้ง Java บนอุปกรณ์ของคุณ อย่างไรก็ตาม มีอินเทอร์เฟซการเขียนโปรแกรมสำหรับภาษาการเขียนโปรแกรมยอดนิยมมากมาย รวมถึง Python ห้องสมุดมีฟังก์ชันการทำงานมากมาย อีกทั้งยังรวดเร็วและแม่นยำอีกด้วย ดังนั้นหลายองค์กรจึงใช้ CoreNLP ในการผลิต
  • TextBlob:TextBlob สร้างขึ้นบน NLTK และแพ็คเกจอื่นที่เรียกว่า Pattern เป็นอินเทอร์เฟซที่ใช้งานง่ายกับไลบรารี NLTK ขึ้นอยู่กับทั้ง NLTK และ รูปแบบ และมอบ API ที่ตรงไปตรงมามากสำหรับงาน NLP ทั่วไปทั้งหมด (และบางงานที่พบไม่บ่อยนัก) แม้ว่า TextBlob จะไม่ทำอะไรใหม่หรือน่าตื่นเต้นเป็นพิเศษ แต่ก็ทำให้การทำงานกับข้อความเป็นเรื่องสนุกและขจัดอุปสรรคมากมาย ไลบรารีมีฟังก์ชันในตัวสำหรับการจำแนกข้อความและการวิเคราะห์ความรู้สึก
  • Gensim:Gensim เป็นไลบรารี Python ที่ออกแบบมาโดยเฉพาะสำหรับ "การสร้างแบบจำลองหัวข้อ การทำดัชนีเอกสาร และการดึงข้อมูลความคล้ายคลึงกันด้วยคลังข้อมูลขนาดใหญ่" อัลกอริธึมทั้งหมดใน Gensim ไม่ขึ้นกับหน่วยความจำ w.r.t. ขนาดคลังข้อมูล และด้วยเหตุนี้ มันสามารถประมวลผลอินพุตที่มีขนาดใหญ่กว่า RAM แม้ว่าจะเป็น Python บริสุทธิ์ในตัว แต่ Gensim ก็รวดเร็วและมีประสิทธิภาพด้านหน่วยความจำ

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

มาเริ่มต้นการเดินทาง NLP ของเรากันดีกว่า!