เกี่ยวกับความแตกต่างระหว่าง Naive Bayes และ Recural Neural Networks
ครั้งแรกของทั้งหมดของขอเริ่มต้นด้วยการพูดว่าพวกเขาทั้งสองลักษณนามหมายถึงการแก้ปัญหาที่เรียกว่าการจำแนกทางสถิติ ซึ่งหมายความว่าคุณมีข้อมูลจำนวนมาก (ในบทความกรณีของคุณ) แบ่งออกเป็นสองประเภทหรือมากกว่า (ในความเชื่อมั่นในเชิงบวก / เชิงลบกรณีของคุณ) เป้าหมายของลักษณนามคือการเรียนรู้วิธีแบ่งบทความออกเป็นสองหมวดหมู่จากนั้นสามารถจัดหมวดหมู่บทความใหม่ด้วยตนเอง
สองรูปแบบที่สามารถแก้ปัญหานี้คือตัวจําแนก Naive Bayes และ Recurrent Neural Networks
Naive Bayes
ในการใช้ตัวจําแนกนี้สําหรับการวิเคราะห์ข้อความคุณจะประมวลผลข้อความล่วงหน้า ( ถุงคำ + tf-tdf ) เพื่อให้คุณสามารถแปลงเป็นเวกเตอร์ที่มีค่าตัวเลข เวกเตอร์เหล่านี้ทำหน้าที่เป็นอินพุตของโมเดล NB
ตัวจําแนกนี้ถือว่าคุณสมบัติของคุณ (คุณลักษณะของเวกเตอร์ที่เราผลิต) นั้นเป็นอิสระจากกัน เมื่อข้อสมมตินี้เก็บไว้มันเป็นลักษณนามที่แข็งแกร่งมากที่ต้องใช้ข้อมูลน้อยมากในการทำงาน
เครือข่ายประสาทที่เกิดขึ้นอีก
เหล่านี้คือเครือข่ายที่อ่านข้อมูลของคุณตามลำดับในขณะที่รักษา "หน่วยความจำ" ของสิ่งที่พวกเขาได้อ่านมาก่อนหน้านี้ สิ่งเหล่านี้มีประโยชน์จริง ๆ เมื่อต้องจัดการกับข้อความเนื่องจากคำที่สัมพันธ์กันมีอยู่ระหว่างกัน
ทั้งสองรุ่น (NB และ RNN) แตกต่างกันอย่างมากในวิธีที่พวกเขาพยายามทำการจำแนกประเภทนี้:
NB เป็นของประเภทของรูปแบบที่เรียกว่ากำเนิด ซึ่งหมายความว่าในระหว่างการฝึกอบรม (กระบวนการที่อัลกอริทึมเรียนรู้การจำแนก) NB พยายามค้นหาว่าข้อมูลถูกสร้างขึ้นตั้งแต่แรกอย่างไร โดยพื้นฐานแล้วจะพยายามหาการแจกแจงต้นแบบที่สร้างตัวอย่างที่คุณป้อนให้กับโมเดล
บนมืออื่น ๆ RNN เป็นจำแนกรูปแบบ มันพยายามที่จะเข้าใจว่าความแตกต่างระหว่างตัวอย่างบวกและลบของคุณเพื่อทำการจำแนก
ฉันขอแนะนำให้ค้นหา "อัลกอริทึมการเลือกปฏิบัติเทียบกับการกำเนิด" ถ้าคุณต้องการเรียนรู้โคลนตม
ในขณะที่ NB ได้รับความนิยมมานานหลายทศวรรษ RNNs กำลังเริ่มหาแอปพลิเคชั่นในช่วงทศวรรษที่ผ่านมาเนื่องจากความต้องการทรัพยากรการคำนวณสูง เวลาส่วนใหญ่ของ RNN นั้นผ่านการฝึกอบรมเกี่ยวกับ GPU เฉพาะ (ซึ่งคำนวณได้เร็วกว่าซีพียูมาก)
tl; dr: พวกเขาเป็นสองวิธีที่แตกต่างกันมากในการแก้งานเดียวกัน
ห้องสมุด
เนื่องจากอัลกอริทึมทั้งสองเป็นที่นิยมอย่างมากพวกเขาจึงมีการนำไปใช้งานในหลาย ๆ ไลบรารี ฉันจะตั้งชื่อห้องสมุดหลามสองสามอันตั้งแต่ที่คุณพูดถึง:
สำหรับ NB:
เนื่องจาก RNN ถือว่าเป็นอัลกอริทึมการเรียนรู้ลึกพวกเขาจึงมีการใช้งานในห้องสมุดการเรียนรู้ลึกที่สำคัญทั้งหมด:
TensorFlow : ห้องสมุด DL ที่เป็นที่นิยมมากที่สุดในขณะนี้ เผยแพร่และดูแลโดย google
theano : ห้องสมุดที่คล้ายกับ tf, แก่กว่า, จัดพิมพ์โดยมหาวิทยาลัยมอนทรีออล
keras : เสื้อคลุมสำหรับ tf และ theano ง่ายกว่ามาก. สิ่งที่ฉันแนะนำให้คุณใช้ถ้าคุณต้องการใช้ RNN
caffe : ห้องสมุด DL เผยแพร่โดย UC Berkeley มี python API
ข้อเสนอทั้งหมดข้างต้นรองรับ GPU หากคุณมี NVIDIA GPU ที่เปิดใช้งาน CUDA
ธNLTKเป็นห้องสมุดส่วนใหญ่สำหรับการประมวลผลภาษาธรรมชาติ (อันเนื่องมา, tokenizing ส่วนหนึ่งของคำพูดการติดแท็ก) แม้ว่าจะมีแพ็คเกจความเชื่อมั่นแต่ก็ไม่ได้เป็นจุดโฟกัส ฉันค่อนข้างมั่นใจว่า NLTK ใช้ NB สำหรับการวิเคราะห์ความเชื่อมั่น