ความแตกต่างระหว่างการแทรกคำย่อกับการกั้นคืออะไร?


131

ฉันจะใช้แต่ละอันเมื่อใด

นอกจากนี้ ... การย่อขนาดของ NLTK ขึ้นอยู่กับบางส่วนของคำพูดด้วยหรือไม่ มันจะไม่แม่นยำกว่านี้ไหมถ้าใช่


2
นี่คือสิ่งที่อยู่เหนือหัวของฉัน แต่ทำไมมีแท็กหลาม?
จิมมี่

7
@jimmy: ติดแท็กหลาม B / C ก็พูดคุยเกี่ยวกับห้องสมุดหลาม nltk
ealdent

2
นี่เป็นบทความที่ยอดเยี่ยมที่ตอบคำถาม
Jacob

2
ดูเพิ่มเติม: Stemmers vs Lemmatizers
hippietrail

คำตอบ:


130

สั้นและหนาแน่น: http://nlp.stanford.edu/IR-book/html/htmledition/stemming-and-lemmatization-1.html

เป้าหมายของทั้งการกั้นและการย่อก็คือการลดรูปแบบการผันและบางครั้งรูปแบบที่เกี่ยวข้องมาของคำในรูปแบบฐานทั่วไป

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

จากเอกสาร NLTK:

Lemmatization และ Stemming เป็นกรณีพิเศษของการทำให้เป็นปกติ พวกเขาระบุตัวแทนที่เป็นที่ยอมรับสำหรับชุดของรูปแบบคำที่เกี่ยวข้อง


อยากรู้อยากเห็นที่จะเรียนรู้สิ่งที่ความยาวของการแทรกซึมเฉลี่ยบอกเราเกี่ยวกับเอกสาร?
sAguinaga

1
นั่นไม่ได้ตอบคำถามอย่างเต็มที่ คุณไม่ได้อธิบายว่าจะใช้เมื่อใด ทั้งสองอย่างสามารถทำหน้าที่ให้เป็นมาตรฐานได้ แต่บ่อยครั้งที่สิ่งที่คุณเลือกคือการแลกเปลี่ยนระหว่างความแม่นยำและความเร็ว
dzieciou

1
@dzieciou ขอบคุณสำหรับการป้อนข้อมูล - คุณอาจสามารถแก้ไขคำตอบได้ และฉันจะพยายามเพิ่มบริบทเพิ่มเติมอีกด้วย
miku

79

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

ตัวอย่างเช่น

  1. คำว่า "ดีกว่า" มี "ดี" เหมือนคำศัพท์ ลิงก์นี้ไม่ได้รับการป้องกันเนื่องจากต้องมีการค้นหาพจนานุกรม

  2. คำว่า "เดิน" เป็นรูปแบบพื้นฐานสำหรับคำว่า "เดิน" และด้วยเหตุนี้สิ่งนี้จะถูกจับคู่ทั้งในการกั้นและการแทรก

  3. คำว่า "การประชุม" อาจเป็นรูปแบบพื้นฐานของคำนามหรือรูปแบบของคำกริยา ("เพื่อตอบสนอง") ขึ้นอยู่กับบริบทเช่น "ในการประชุมครั้งล่าสุดของเรา" หรือ "เรากำลังประชุมกันอีกครั้งในวันพรุ่งนี้" โดยหลักการแล้ว lemmatisation สามารถเลือก lemma ที่เหมาะสมได้ตามบริบท

ที่มา : https://en.wikipedia.org/wiki/Lemmatisation


24

มีสองด้านที่แสดงความแตกต่าง:

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

  2. ในการย่อคำส่วนหนึ่งของคำพูดควรถูกกำหนดก่อนและกฎการทำให้เป็นมาตรฐานจะแตกต่างกันสำหรับส่วนต่าง ๆ ของคำพูดในขณะที่Stemmerดำเนินการด้วยคำเดียวโดยปราศจากความรู้เกี่ยวกับบริบทและดังนั้นจึงไม่สามารถแยกแยะระหว่างคำต่าง ๆ ความหมายขึ้นอยู่กับส่วนของคำพูด

ข้อมูลอ้างอิงhttp://textminingonline.com/dive-into-nltk-part-iv-stemming-and-lemmatization


18

จุดประสงค์ของการกั้นและการแทรกเพื่อลดความแปรผันทางสัณฐานวิทยา นี่เป็นสิ่งที่ตรงกันข้ามกับกระบวนการ "คำศัพท์" ทั่วไปซึ่งอาจทำให้เกิดความแตกต่างระหว่าง lexico - semantic, syntactic หรือ orthographic

ความแตกต่างที่แท้จริงระหว่าง stemming และ lemmatization คือสามเท่า:

  1. การ Stemming ลดรูปแบบคำให้เป็น (หลอก) ลำต้นในขณะที่การแทรกคำย่อช่วยลดรูปแบบคำให้เป็นบทแทรกที่ถูกต้องตามหลักภาษา ความแตกต่างนี้เห็นได้ชัดในภาษาที่มีสัณฐานวิทยาที่ซับซ้อนมากขึ้น แต่อาจไม่เกี่ยวข้องกับแอปพลิเคชัน IR หลายตัว

  2. Lemmatization เกี่ยวข้องเฉพาะกับความแปรปรวนแบบผันแปรในขณะที่การกั้นอาจจัดการกับความแปรปรวนได้

  3. ในแง่ของการใช้งานการแทรกคำมักจะมีความซับซ้อนมากขึ้น (โดยเฉพาะอย่างยิ่งสำหรับภาษาที่ซับซ้อนทางสัณฐานวิทยา) และมักจะต้องใช้พจนานุกรมบางประเภท ในทางกลับกันการสร้างความพึงพอใจสามารถทำได้ด้วยวิธีการที่ค่อนข้างใช้กฎพื้นฐาน

แท็กเกอร์บางส่วนอาจได้รับการสนับสนุนจาก Lemmatization ด้วยคำพูดเพื่อทำให้เข้าใจผิดคำพ้องเสียง


13

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

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

สำหรับ NLTK นั้น WordNetLemmatizer ใช้ส่วนหนึ่งของคำพูดแม้ว่าคุณจะต้องจัดเตรียมไว้ให้ก็ตาม ผ่านมัน "นกพิราบ" และ "v" อัตราผลตอบแทน "ดำน้ำ" ในขณะที่ "นกพิราบ" และ "n" ผลผลิต "นกพิราบ"


12

คำอธิบายที่ขับเคลื่อนด้วยตัวอย่างเกี่ยวกับความแตกต่างระหว่างการย่อและการกั้น:

Lemmatizationจัดการการจับคู่“ รถยนต์” กับ“ รถยนต์” ควบคู่ไปกับการจับคู่“ รถยนต์” กับ“ รถยนต์”

อันเนื่องมาจับตรงกับ“รถ” กับ“รถยนต์”

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

[... ] ยกตัวอย่างเช่น FAST เครื่องมือย่อรูปขนาดเล็กของพวกเขาไม่เพียง แต่จัดการกับคำศัพท์พื้นฐานเช่นเอกพจน์และพหูพจน์ แต่ยังผู้ใช้อรรถาภิธานอรรถาภิธานเช่น "ร้อน" ตรงกับ "อบอุ่น"

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

http://www.ideaeng.com/stemming-lemmatization-0601


3

ianacl
แต่ฉันคิดว่าStemming เป็นคนที่มีการแฮ็คอย่างคร่าวๆเพื่อให้ได้คำศัพท์ที่เหมือนกันทั้งหมดในรูปแบบพื้นฐานซึ่งไม่จำเป็นต้องเป็นคำที่ถูกต้องตามกฎหมายในตัวของมันเอง
อย่างเช่น Porter Stemmer สามารถใช้ regex

Lemmatization นำคำลงมาในรูปแบบฐานที่แท้จริงซึ่งในกรณีของคำกริยาที่ไม่ปกติอาจดูเหมือนคำที่ใส่
อะไรบางอย่างเช่น Morpha ซึ่งใช้ FST เพื่อนำคำนามและคำกริยามาสู่รูปแบบฐานของพวกเขา


ฉันคิดว่า Porter Stemmer ถูกนำไปใช้โดยไม่ต้องขอความช่วยเหลือจากนิพจน์ทั่วไปเนื่องจากภาษาเก่าหลายภาษาไม่มีภาษาเหล่านั้น แต่อย่างอื่นคุณมีความคิดที่ถูกต้อง
Ken Bloom

3

Stemmingเพียงลบหรือเกิดอักขระสองสามตัวสุดท้ายของคำซึ่งมักนำไปสู่ความหมายและการสะกดที่ไม่ถูกต้อง Lemmatizationพิจารณาบริบทและแปลงคำให้เป็นรูปแบบฐานที่มีความหมายซึ่งเรียกว่าเล็มม่า บางครั้งคำเดียวกันอาจมีเลมมาสได้หลายแบบ เราควรระบุแท็กส่วนหนึ่งของคำพูด (POS) สำหรับคำในบริบทเฉพาะนั้น นี่คือตัวอย่างเพื่อแสดงให้เห็นถึงความแตกต่างและกรณีการใช้งานทั้งหมด:

  1. หากคุณย่อคำว่า 'การดูแล ' ก็จะกลับมา ' ดูแล ' หากคุณหยุดมันจะคืนรถ ' และนี่เป็นข้อผิดพลาด
  2. หากคุณย่อคำว่า ' Stripes ' ในบริบทของคำกริยามันจะส่งกลับ ' Strip ' หากคุณใช้คำย่อในบริบทของคำนามมันจะส่งคืน ' แถบ ' หากคุณเพียงแค่หยุดมันก็จะกลับ ' แถบ '
  3. คุณจะได้ผลลัพธ์เช่นเดียวกันไม่ว่าคุณจะย่อหรือพูดคำเช่นเดินวิ่งว่ายน้ำ ... เดินวิ่งวิ่งว่ายน้ำฯลฯ
  4. Lemmatization นั้นมีราคาแพงเนื่องจากเกี่ยวข้องกับตารางการค้นหาและสิ่งที่ไม่เกี่ยวข้อง หากคุณมีชุดข้อมูลขนาดใหญ่และประสิทธิภาพเป็นปัญหาให้ไปที่ Stemming จำไว้ว่าคุณสามารถเพิ่มกฎของคุณเองลงใน Stemming ได้ หากความแม่นยำเป็นสิ่งสำคัญยิ่งและชุดข้อมูลนั้นไม่เป็นอันตรายให้ไปที่ Lemmatization

2

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

ตัวอย่าง,

"beautiful" -> "beauti"
"corpora" -> "corpora"

ตัวอย่างเพิ่มเติมของการกั้น

Stemming สามารถทำได้อย่างรวดเร็ว

Lemmatization ในทางกลับกันคือกระบวนการแปลงคำที่กำหนดให้เป็นรูปแบบพื้นฐานตามความหมายในพจนานุกรมของคำ

ตัวอย่าง,

"beautiful" -> "beauty"
"corpora" -> "corpus"

ตัวอย่างเพิ่มเติมของการย่อคำศัพท์

Lemmatization ใช้เวลามากกว่าการกั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.