ฉันจะใช้แต่ละอันเมื่อใด
นอกจากนี้ ... การย่อขนาดของ NLTK ขึ้นอยู่กับบางส่วนของคำพูดด้วยหรือไม่ มันจะไม่แม่นยำกว่านี้ไหมถ้าใช่
ฉันจะใช้แต่ละอันเมื่อใด
นอกจากนี้ ... การย่อขนาดของ NLTK ขึ้นอยู่กับบางส่วนของคำพูดด้วยหรือไม่ มันจะไม่แม่นยำกว่านี้ไหมถ้าใช่
คำตอบ:
สั้นและหนาแน่น: http://nlp.stanford.edu/IR-book/html/htmledition/stemming-and-lemmatization-1.html
เป้าหมายของทั้งการกั้นและการย่อก็คือการลดรูปแบบการผันและบางครั้งรูปแบบที่เกี่ยวข้องมาของคำในรูปแบบฐานทั่วไป
อย่างไรก็ตามสองคำนั้นต่างกันในรสชาติของมัน Stemming มักจะหมายถึงกระบวนการฮิวริสติกดิบที่ตัดส่วนท้ายของคำด้วยความหวังว่าจะบรรลุเป้าหมายนี้ได้อย่างถูกต้องเกือบตลอดเวลาและมักจะรวมถึงการถอนการติดเชื้อ derivational Lemmatization มักจะหมายถึงการทำสิ่งต่าง ๆ อย่างถูกต้องด้วยการใช้คำศัพท์และการวิเคราะห์ทางสัณฐานวิทยาของคำโดยปกติมีจุดมุ่งหมายเพื่อลบจุดสิ้นสุดของการผันเท่านั้นและเพื่อส่งคืนฐานหรือรูปแบบพจนานุกรมของคำ
จากเอกสาร NLTK:
Lemmatization และ Stemming เป็นกรณีพิเศษของการทำให้เป็นปกติ พวกเขาระบุตัวแทนที่เป็นที่ยอมรับสำหรับชุดของรูปแบบคำที่เกี่ยวข้อง
Lemmatisationมีความสัมพันธ์ใกล้ชิดกับการกั้นที่เกิดความแตกต่างคือ Stemmer ทำงานกับคำเดียวโดยปราศจากความรู้ในบริบทและดังนั้นจึงไม่สามารถแยกแยะระหว่างคำที่มีความหมายที่แตกต่างกันขึ้นอยู่กับส่วนของการพูด อย่างไรก็ตามโดยทั่วไปแล้ว Stemmers นั้นง่ายต่อการติดตั้งและใช้งานได้เร็วขึ้นและความแม่นยำที่ลดลงอาจไม่สำคัญสำหรับบางแอปพลิเคชัน
ตัวอย่างเช่น
คำว่า "ดีกว่า" มี "ดี" เหมือนคำศัพท์ ลิงก์นี้ไม่ได้รับการป้องกันเนื่องจากต้องมีการค้นหาพจนานุกรม
คำว่า "เดิน" เป็นรูปแบบพื้นฐานสำหรับคำว่า "เดิน" และด้วยเหตุนี้สิ่งนี้จะถูกจับคู่ทั้งในการกั้นและการแทรก
คำว่า "การประชุม" อาจเป็นรูปแบบพื้นฐานของคำนามหรือรูปแบบของคำกริยา ("เพื่อตอบสนอง") ขึ้นอยู่กับบริบทเช่น "ในการประชุมครั้งล่าสุดของเรา" หรือ "เรากำลังประชุมกันอีกครั้งในวันพรุ่งนี้" โดยหลักการแล้ว lemmatisation สามารถเลือก lemma ที่เหมาะสมได้ตามบริบท
มีสองด้านที่แสดงความแตกต่าง:
Stemmerจะกลับมาต้นกำเนิดของคำซึ่งไม่จำเป็นต้องเป็นเหมือนรากทางสัณฐานวิทยาของคำว่า มันมักจะเพียงพอที่คำที่เกี่ยวข้องแมปไปที่ก้านเดียวกันแม้ว่าลำต้นจะไม่ได้อยู่ในรากที่ถูกต้องในตัวเองในขณะที่อยู่ในคำศัพท์นั้นมันจะส่งคืนรูปแบบพจนานุกรมของคำซึ่งจะต้องเป็นคำที่ถูกต้อง
ในการย่อคำส่วนหนึ่งของคำพูดควรถูกกำหนดก่อนและกฎการทำให้เป็นมาตรฐานจะแตกต่างกันสำหรับส่วนต่าง ๆ ของคำพูดในขณะที่Stemmerดำเนินการด้วยคำเดียวโดยปราศจากความรู้เกี่ยวกับบริบทและดังนั้นจึงไม่สามารถแยกแยะระหว่างคำต่าง ๆ ความหมายขึ้นอยู่กับส่วนของคำพูด
ข้อมูลอ้างอิงhttp://textminingonline.com/dive-into-nltk-part-iv-stemming-and-lemmatization
จุดประสงค์ของการกั้นและการแทรกเพื่อลดความแปรผันทางสัณฐานวิทยา นี่เป็นสิ่งที่ตรงกันข้ามกับกระบวนการ "คำศัพท์" ทั่วไปซึ่งอาจทำให้เกิดความแตกต่างระหว่าง lexico - semantic, syntactic หรือ orthographic
ความแตกต่างที่แท้จริงระหว่าง stemming และ lemmatization คือสามเท่า:
การ Stemming ลดรูปแบบคำให้เป็น (หลอก) ลำต้นในขณะที่การแทรกคำย่อช่วยลดรูปแบบคำให้เป็นบทแทรกที่ถูกต้องตามหลักภาษา ความแตกต่างนี้เห็นได้ชัดในภาษาที่มีสัณฐานวิทยาที่ซับซ้อนมากขึ้น แต่อาจไม่เกี่ยวข้องกับแอปพลิเคชัน IR หลายตัว
Lemmatization เกี่ยวข้องเฉพาะกับความแปรปรวนแบบผันแปรในขณะที่การกั้นอาจจัดการกับความแปรปรวนได้
ในแง่ของการใช้งานการแทรกคำมักจะมีความซับซ้อนมากขึ้น (โดยเฉพาะอย่างยิ่งสำหรับภาษาที่ซับซ้อนทางสัณฐานวิทยา) และมักจะต้องใช้พจนานุกรมบางประเภท ในทางกลับกันการสร้างความพึงพอใจสามารถทำได้ด้วยวิธีการที่ค่อนข้างใช้กฎพื้นฐาน
แท็กเกอร์บางส่วนอาจได้รับการสนับสนุนจาก Lemmatization ด้วยคำพูดเพื่อทำให้เข้าใจผิดคำพ้องเสียง
ดังที่ MYYN ระบุไว้การกั้นเป็นกระบวนการในการลบการผันและบางครั้งการติดอยู่กับรูปแบบพื้นฐานที่คำดั้งเดิมทั้งหมดอาจเกี่ยวข้องกัน Lemmatization เกี่ยวข้องกับการได้คำเดียวที่ช่วยให้คุณรวมกลุ่มของรูปแบบการผัน สิ่งนี้ยากกว่าการสกัดกั้นเนื่องจากต้องคำนึงถึงบริบท (และความหมายของคำศัพท์) ในขณะที่การหยุดกั้นไม่สนใจบริบท
สำหรับเมื่อคุณจะใช้อย่างใดอย่างหนึ่งมันเป็นเรื่องของจำนวนใบสมัครของคุณขึ้นอยู่กับการรับความหมายของคำในบริบทที่ถูกต้อง หากคุณทำการแปลด้วยเครื่องคุณอาจต้องการคำย่อเพื่อหลีกเลี่ยงการแปลคำผิด หากคุณกำลังดึงข้อมูลกว่าพันล้านเอกสารโดย 99% ของคำค้นหาของคุณมีตั้งแต่ 1-3 คำคุณสามารถชำระเงินได้
สำหรับ NLTK นั้น WordNetLemmatizer ใช้ส่วนหนึ่งของคำพูดแม้ว่าคุณจะต้องจัดเตรียมไว้ให้ก็ตาม ผ่านมัน "นกพิราบ" และ "v" อัตราผลตอบแทน "ดำน้ำ" ในขณะที่ "นกพิราบ" และ "n" ผลผลิต "นกพิราบ"
คำอธิบายที่ขับเคลื่อนด้วยตัวอย่างเกี่ยวกับความแตกต่างระหว่างการย่อและการกั้น:
Lemmatizationจัดการการจับคู่“ รถยนต์” กับ“ รถยนต์” ควบคู่ไปกับการจับคู่“ รถยนต์” กับ“ รถยนต์”
อันเนื่องมาจับตรงกับ“รถ” กับ“รถยนต์”
Lemmatization หมายถึงขอบเขตที่กว้างขึ้นของการจับคู่คำคลุมเครือที่ยังคงถูกจัดการโดยระบบย่อยเดียวกัน มันแสดงถึงเทคนิคบางอย่างสำหรับการประมวลผลระดับต่ำภายในเครื่องยนต์และอาจสะท้อนถึงการตั้งค่าทางวิศวกรรมสำหรับคำศัพท์
[... ] ยกตัวอย่างเช่น FAST เครื่องมือย่อรูปขนาดเล็กของพวกเขาไม่เพียง แต่จัดการกับคำศัพท์พื้นฐานเช่นเอกพจน์และพหูพจน์ แต่ยังผู้ใช้อรรถาภิธานอรรถาภิธานเช่น "ร้อน" ตรงกับ "อบอุ่น"
นี่ไม่ได้เป็นการบอกว่าเอ็นจิ้นอื่นไม่สามารถจัดการคำพ้องความหมายได้ แต่การใช้งานในระดับต่ำอาจอยู่ในระบบย่อยที่แตกต่างจากระบบที่จัดการกับฐาน
ianacl
แต่ฉันคิดว่าStemming เป็นคนที่มีการแฮ็คอย่างคร่าวๆเพื่อให้ได้คำศัพท์ที่เหมือนกันทั้งหมดในรูปแบบพื้นฐานซึ่งไม่จำเป็นต้องเป็นคำที่ถูกต้องตามกฎหมายในตัวของมันเอง
อย่างเช่น Porter Stemmer สามารถใช้ regex
Lemmatization นำคำลงมาในรูปแบบฐานที่แท้จริงซึ่งในกรณีของคำกริยาที่ไม่ปกติอาจดูเหมือนคำที่ใส่
อะไรบางอย่างเช่น Morpha ซึ่งใช้ FST เพื่อนำคำนามและคำกริยามาสู่รูปแบบฐานของพวกเขา
Stemmingเพียงลบหรือเกิดอักขระสองสามตัวสุดท้ายของคำซึ่งมักนำไปสู่ความหมายและการสะกดที่ไม่ถูกต้อง Lemmatizationพิจารณาบริบทและแปลงคำให้เป็นรูปแบบฐานที่มีความหมายซึ่งเรียกว่าเล็มม่า บางครั้งคำเดียวกันอาจมีเลมมาสได้หลายแบบ เราควรระบุแท็กส่วนหนึ่งของคำพูด (POS) สำหรับคำในบริบทเฉพาะนั้น นี่คือตัวอย่างเพื่อแสดงให้เห็นถึงความแตกต่างและกรณีการใช้งานทั้งหมด:
Stemming เป็นกระบวนการลบอักขระสองสามตัวสุดท้ายของคำที่กำหนดเพื่อให้ได้รูปแบบที่สั้นลงแม้ว่ารูปแบบนั้นจะไม่มีความหมายใด ๆ
ตัวอย่าง,
"beautiful" -> "beauti"
"corpora" -> "corpora"
Stemming สามารถทำได้อย่างรวดเร็ว
Lemmatization ในทางกลับกันคือกระบวนการแปลงคำที่กำหนดให้เป็นรูปแบบพื้นฐานตามความหมายในพจนานุกรมของคำ
ตัวอย่าง,
"beautiful" -> "beauty"
"corpora" -> "corpus"
Lemmatization ใช้เวลามากกว่าการกั้น