Stemming & Lemmatization ใน Python: อันไหนที่จะใช้?

เผยแพร่แล้ว: 2021-02-09

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

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

สารบัญ

ผันผวน

เราทราบดีว่าข้อมูลที่เป็นข้อความประกอบด้วยประโยคที่มีคำและอักขระอื่นๆ ที่อาจหรือไม่อาจส่งผลต่อการคาดคะเนของเรา ประโยคประกอบด้วยคำและคำที่มักใช้ เช่น is, there, และ เรียกว่า stop word สิ่งเหล่านี้สามารถลบออกได้อย่างง่ายดายโดยการสร้างคลังข้อมูลสำหรับพวกเขา แต่รูปแบบที่แตกต่างกันของคำเดียวกันล่ะ?

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

ต้นกำเนิด

เป็นหนึ่งในเทคนิคการทำให้ข้อความเป็นมาตรฐานที่เน้นลดความกำกวมของคำ การตัดคำเน้นที่การลอกคำรอบ ๆ ไปที่คำต้นกำเนิด ทำได้โดยการเอาคำนำหน้าหรือส่วนต่อท้ายออก ขึ้นอยู่กับคำที่พิจารณา เทคนิคนี้ลดคำศัพท์ตามชุดของกฎที่กำหนดไว้

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

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

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

เล็มมาไลเซชั่น

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

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

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

ชำระเงิน: แนวคิดโครงการการเรียนรู้เชิงลึกสำหรับผู้เริ่มต้น

อันไหนที่จะใช้?

ตอนนี้มาถึงจุดของการเลือกหนึ่งระหว่างสองคนของพวกเขา การเลือกใครก็ตามเป็นเรื่องส่วนตัวอย่างมาก เนื่องจากกรณีการใช้งานที่คุณกำหนดเป้าหมายมีบทบาทสำคัญที่นี่

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

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

การใช้งาน Python

แพ็คเกจ NLTK (Natural Language Tool Kit) คือการใช้งาน Python ของงานรอบ NLP ไลบรารีนี้มีเครื่องมือที่จำเป็นทั้งหมด เช่น Stemmers Lemmatizers, หยุดการลบคำ, สร้าง parser tree แบบกำหนดเอง และอื่นๆ อีกมากมาย นอกจากนี้ยังมีข้อมูลคลังข้อมูลจากแหล่งสำคัญที่รวมอยู่ในแพ็คเกจด้วย

เทคนิคการต่อท้ายมีการใช้งานหลายอย่าง แต่วิธีที่นิยมและเก่าที่สุดคืออัลกอริทึม Porter Stemmer Stemmer สโนว์บอลยังใช้ในบางโครงการ เพื่อให้เข้าใจถึงความแตกต่างระหว่างการแยกตัวและการย่อให้ชัดเจนยิ่งขึ้น ให้ดูโค้ดด้านล่างและผลลัพธ์ของสิ่งเดียวกัน:

นำเข้า nltk

จาก nltk.stem นำเข้า PorterStemmer

จาก nltk.stem นำเข้า WordNetLemmatizer

word_stemmer = PorterStemmer ()

เล็มมาไทเซอร์ = WordNetLemmatizer()

พิมพ์ (lemmatizer.lemmatize('แมลงวัน'))

พิมพ์(word_stemmer.stem('แมลงวัน'))

เอาท์พุท:

บิน

พลิก

ผลลัพธ์แรกมาจาก lemmatizer และเอาต์พุตที่สองจาก stemmer คุณจะเห็นความแตกต่างที่ตัวย่อให้คำรูทเป็นผลลัพธ์ ในขณะที่ตัวตัดคำเพิ่งตัดคำจากส่วนท้าย

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

อ่านเพิ่มเติม: แนวคิดโครงการการเรียนรู้ของเครื่อง

บทสรุป

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

อัลกอริทึม AI สองประเภทที่ใช้ในการจัดกลุ่มเอกสารมีอะไรบ้าง

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

การจัดรูปแบบเล็มมานิยมใช้สำหรับการวิเคราะห์ความเชื่อมั่นหรือไม่?

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

ต้นกำเนิดและการแบ่งกลุ่มใช้สำหรับการจัดกลุ่มเอกสารอย่างไร

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