Tokenize NLTK: Tokenizer คำและประโยคพร้อมตัวอย่าง
Tokenization คืออะไร?
tokenization เป็นกระบวนการที่ข้อความจำนวนมากถูกแบ่งออกเป็นส่วนเล็กๆ ที่เรียกว่าโทเค็น โทเค็นเหล่านี้มีประโยชน์มากในการค้นหารูปแบบ และถือเป็นขั้นตอนพื้นฐานสำหรับการแยกและย่อคำ โทเค็นไนซ์ยังช่วยทดแทนองค์ประกอบข้อมูลที่ละเอียดอ่อนด้วยองค์ประกอบข้อมูลที่ไม่ละเอียดอ่อน
การประมวลผลภาษาธรรมชาติใช้สำหรับการสร้างแอปพลิเคชัน เช่น การจัดประเภทข้อความ แชทบอทอัจฉริยะการวิเคราะห์ทางอารมณ์ การแปลภาษา ฯลฯ การเข้าใจรูปแบบในข้อความเพื่อให้บรรลุวัตถุประสงค์ข้างต้นถือเป็นสิ่งสำคัญ
ในขณะนี้ ไม่ต้องกังวลเกี่ยวกับการสร้างคำจากรากศัพท์และการสร้างคำจากรากศัพท์ แต่ให้ถือว่าเป็นขั้นตอนในการทำความสะอาดข้อมูลข้อความโดยใช้ NLP (การประมวลผลภาษาธรรมชาติ) เราจะพูดถึงการสร้างคำจากรากศัพท์และการสร้างคำจากรากศัพท์ในภายหลังในบทช่วยสอน งานต่างๆ เช่น การจัดประเภทข้อความหรือการกรองสแปม ใช้ NLP ร่วมกับไลบรารีการเรียนรู้เชิงลึก เช่น Keras และ เทนเซอร์โฟลว์.
ชุดเครื่องมือภาษาธรรมชาติมีโมดูล NLTK ที่สำคัญมาก โทเค็น ประโยคที่ประกอบด้วยโมดูลย่อยเพิ่มเติม
- โทเค็นคำ
- โทเค็นประโยค
Tokenization ของคำ
เราใช้วิธี word_tokenize() เพื่อแยกประโยคออกเป็นคำ ผลลัพธ์ของโทเค็นคำสามารถแปลงเป็น Data Frame เพื่อการทำความเข้าใจข้อความที่ดีขึ้นในแอปพลิเคชันการเรียนรู้ของเครื่อง นอกจากนี้ยังสามารถใช้เป็นอินพุตสำหรับขั้นตอนการทำความสะอาดข้อความเพิ่มเติม เช่น การลบเครื่องหมายวรรคตอน การลบอักขระตัวเลข หรือการแยกตัวอักษร โมเดลแมชชีนเลิร์นนิงต้องใช้ข้อมูลตัวเลขเพื่อฝึกฝนและคาดการณ์ การแปลงโทเค็นคำกลายเป็นส่วนสำคัญของข้อความ (สตริง) เป็นการแปลงข้อมูลตัวเลข โปรดอ่านเกี่ยวกับ ถุงคำหรือเคานต์เวคเตอร์ไรเซอร์- โปรดดูตัวอย่างคำโทเค็น NLTK ด้านล่างเพื่อทำความเข้าใจทฤษฎีได้ดีขึ้น
from nltk.tokenize import word_tokenize text = "God is Great! I won a lottery." print(word_tokenize(text)) Output: ['God', 'is', 'Great', '!', 'I', 'won', 'a', 'lottery', '.']
คำอธิบายรหัส
- โมดูล word_tokenize ถูกนำเข้าจากไลบรารี NLTK
- ตัวแปร “ข้อความ” เริ่มต้นได้ด้วยสองประโยค
- ตัวแปรข้อความถูกส่งผ่านในโมดูล word_tokenize และพิมพ์ผลลัพธ์ โมดูลนี้จะแบ่งแต่ละคำด้วยเครื่องหมายวรรคตอนซึ่งคุณสามารถดูได้ในผลลัพธ์
Tokenization ของประโยค
โมดูลย่อยที่มีอยู่สำหรับข้างต้นคือ send_tokenize คำถามที่ชัดเจนในใจของคุณก็คือ เหตุใดจึงจำเป็นต้องมีโทเค็นประโยคเมื่อเรามีตัวเลือกในการใช้โทเค็นคำ- ลองนึกภาพคุณต้องนับคำโดยเฉลี่ยต่อประโยค คุณจะคำนวณอย่างไร? เพื่อให้บรรลุภารกิจดังกล่าว คุณต้องใช้ทั้งโทเค็นประโยค NLTK และโทเค็นคำ NLTK เพื่อคำนวณอัตราส่วน เอาต์พุตดังกล่าวทำหน้าที่เป็นคุณลักษณะที่สำคัญสำหรับการฝึกเครื่องจักรเนื่องจากคำตอบจะเป็นตัวเลข
ตรวจสอบตัวอย่างโทเค็น NLTK ด้านล่างเพื่อเรียนรู้ว่าโทเค็นประโยคแตกต่างจากโทเค็นคำอย่างไร
from nltk.tokenize import sent_tokenize text = "God is Great! I won a lottery." print(sent_tokenize(text)) Output: ['God is Great!', 'I won a lottery ']
เรามี 12 คำพูดและ สองประโยค สำหรับอินพุตเดียวกัน
คำอธิบายของโปรแกรม
- ในบรรทัดเหมือนโปรแกรมก่อนหน้า ให้นำเข้าโมดูล send_tokenize
- เราได้รับประโยคเดียวกัน tokenizer ประโยคเพิ่มเติมในโมดูล NLTK แยกวิเคราะห์ประโยคนั้นและแสดงผลลัพธ์ เห็นได้ชัดว่าฟังก์ชันนี้แบ่งแต่ละประโยค
โทเค็นไนเซอร์เหนือคำ Python ตัวอย่างคือการตั้งค่าที่ดีในการทำความเข้าใจกลไกของโทเค็นคำและประโยค
สรุป
- โทเค็นใน NLP เป็นกระบวนการที่ข้อความจำนวนมากถูกแบ่งออกเป็นส่วนเล็กๆ ที่เรียกว่าโทเค็น
- การประมวลผลภาษาธรรมชาติใช้ในการสร้างแอปพลิเคชัน เช่น การจำแนกข้อความ แชทบอทอัจฉริยะ การวิเคราะห์ความรู้สึก การแปลภาษา ฯลฯ
- ชุดเครื่องมือภาษาธรรมชาติมีโมดูลโทเค็นโทเค็น NLTK ที่สำคัญมากซึ่งประกอบด้วยโมดูลย่อยเพิ่มเติม
- เราใช้เมธอด word_tokenize() เพื่อแยกประโยคออกเป็นคำ ผลลัพธ์ของ word tokenizer ใน NLTK สามารถแปลงเป็น Data Frame เพื่อให้เข้าใจข้อความได้ดีขึ้นในแอปพลิเคชันการเรียนรู้ของเครื่อง
- โมดูลย่อยที่มีอยู่สำหรับข้างต้นคือ send_tokenize tokenizer ประโยคใน Python NLTK เป็นคุณสมบัติที่สำคัญสำหรับการฝึกเครื่องจักร