#Library
#PHP
#SQL
#Database System
#MYSQLi
#Management Systems
โครงการนี้เป็นต้นแบบของระบบการจัดการห้องสมุดอย่างง่าย บรรณารักษ์มีข้อกำหนดในการเพิ่มรายละเอียดหนังสือ เช่น หมายเลข ISBN ชื่อหนังสือ ชื่อผู้แต่ง ฉบับ และรายละเอียดการตีพิมพ์ผ่านทางหน้าเว็บ นอกจากนี้ บรรณารักษ์หรือผู้ใช้บริการยังมีข้อกำหนดในการค้นหาหนังสือที่มีอยู่ในห้องสมุดตามชื่อหนังสือ หากมีรายละเอียดหนังสืออยู่ในฐานข้อมูล รายละเอียดการค้นหาจะแสดงบนหน้าเว็บ
การจัดหมวดหมู่ข้อความหรือการจัดหมวดหมู่ข้อความเป็นกิจกรรมของการติดป้ายกำกับข้อความภาษาธรรมชาติด้วยหมวดหมู่ที่กำหนดไว้ล่วงหน้าที่เกี่ยวข้อง แนวคิดคือการจัดระเบียบข้อความในชั้นเรียนต่างๆ โดยอัตโนมัติ มันสามารถลดความซับซ้อนและเพิ่มความเร็วในการค้นหาของคุณผ่านเอกสารหรือข้อความได้อย่างมาก!
3 ขั้นตอนสำคัญในโค้ด Database-Management-System-for-Library
:
ในขณะที่ฝึกฝนและการสร้างแบบจำลอง โปรดทราบว่าแบบจำลองแรกนั้นไม่เคยดีที่สุด ดังนั้นแนวทางปฏิบัติที่ดีที่สุดคือวิธี "ลองผิดลองถูก" เพื่อให้กระบวนการนั้นง่ายขึ้น คุณควรสร้างฟังก์ชันสำหรับการฝึกอบรมและบันทึกผลลัพธ์และความแม่นยำในความพยายามแต่ละครั้ง
ฉันตัดสินใจจัดเรียงกระบวนการ EDA ออกเป็นสองประเภท: ขั้นตอนก่อนการประมวลผลทั่วไปที่เหมือนกันใน vectorizers และโมเดลทั้งหมด และขั้นตอนก่อนการประมวลผลบางอย่างที่ฉันใส่ไว้เป็นตัวเลือกในการวัดประสิทธิภาพของโมเดลโดยมีหรือไม่มีพวกมัน
ความแม่นยำถูกเลือกเป็นการวัดการเปรียบเทียบระหว่างแบบจำลองต่างๆ เนื่องจากมีความแม่นยำมากขึ้น ประสิทธิภาพของแบบจำลองในข้อมูลการทดสอบก็จะดีขึ้น
ก่อนอื่น ฉันได้สร้างไฟล์ Bag of Words ไฟล์ clean_data.R
นี้ประกอบด้วยวิธีการทั้งหมดในการประมวลผลล่วงหน้าและสร้างกลุ่มคำ เราใช้ไลบรารี Corpus
เพื่อจัดการการประมวลผลล่วงหน้าและสร้าง Bag of Words
ขั้นตอนก่อนการประมวลผลทั่วไป ต่อไปนี้ถูกดำเนินการ เนื่องจากเอกสารใดๆ ที่ป้อนเข้าสู่แบบจำลองจะต้องอยู่ในรูปแบบที่กำหนด:
การแปลงเป็นตัวพิมพ์เล็ก
การกำจัดคำหยุด
การลบอักขระตัวอักษรและตัวเลข
การลบเครื่องหมายวรรคตอน
การทำเวกเตอร์: ใช้ TfVectorizer ความแม่นยำของแบบจำลองถูกเปรียบเทียบกับที่ใช้ TfIDFVectorizer ในทุกกรณี เมื่อใช้ TfVectorizer มันให้ผลลัพธ์ที่ดีกว่า และด้วยเหตุนี้จึงถูกเลือกให้เป็น Vectorizer เริ่มต้น
ขั้นตอนต่อไปนี้ถูกเพิ่มเข้าไปในขั้นตอนก่อนการประมวลผลโดยเป็นทางเลือกเพื่อดูว่าประสิทธิภาพของโมเดลเปลี่ยนแปลงไปอย่างไรโดยมีและไม่มีขั้นตอนเหล่านี้: 1. Stemming
2. Lemmatization
3. Using Unigrams/Bigrams
Confusion Matrix สำหรับ Support Vector Machine โดยใช้ Bag of Words สร้างโดยใช้ clean_data.r
>ความสับสนMatrix(table(predsvm,data.test$folder_class))Confusion Matrix และสถิติ predsvm 1 2 3 4 1 31 0 0 0 2 0 29 6 0 3 0 3 28 0 4 0 0 0 23สถิติโดยรวม ความแม่นยำ : 0.925 95% CI : (0.8624, 0.9651)ไม่มีข้อมูล อัตรา : 0.2833 P-Value [Acc > NIR] : < 2.2e-16 คัปปา : 0.8994 ค่า P-Value การทดสอบของ Mcnemar : สถิติ NA ตามคลาส: คลาส: 1 คลาส: 2 คลาส: 3 คลาส: 4
-การหักล้างที่น่าสนใจที่สุดก็คือ ยิ่ง หัวข้อกลุ่มข่าวสารมีความเฉพาะเจาะจงมากขึ้น เท่าใด ตัวแยกประเภท Naïve Bayes ก็จะยิ่งแม่นยำมากขึ้นเท่านั้นที่จะระบุได้ว่าเอกสารอยู่ในกลุ่มข่าวสารใด และในทางกลับกัน ก็เป็นเรื่องจริงเช่นกัน เมื่อกลุ่มข่าวมีความเฉพาะเจาะจงน้อยลง อัตราความแม่นยำก็จะลดลง
- เราเห็นสิ่งนี้ได้อย่างแม่นยำ โดยทุกกลุ่มข่าวที่ไม่เบ็ดเตล็ดจะมีอัตราความแม่นยำอย่างน้อย 50% เสมอ กลุ่มข่าวด้านล่างสำหรับอัตราความแม่นยำนั้นล้วนเบ็ดเตล็ดซึ่งรวมถึงอัตราความแม่นยำ 0.25% สำหรับ talk.politics.misc
-เหตุผลก็คือว่าโพสต์ที่เขียนในกลุ่มข่าวสารอื่น ๆ ไม่ค่อยเกี่ยวข้องกับรากที่แท้จริงของกลุ่มข่าวสาร ส่วนเบ็ดเตล็ดรองรับหัวข้อ การอภิปรายอื่น ๆ นอกเหนือจาก "กลุ่มข่าวรูท" ซึ่งหมายความ ว่ามันจะง่ายกว่ามากสำหรับตัวแยกประเภทที่จะสร้างความสับสนให้กับเอกสารจากกลุ่มข่าวเบ็ดเตล็ดกับกลุ่มข่าวอื่น และยากกว่ามากสำหรับตัวแยกประเภทที่จะพิจารณากลุ่มข่าวรูทตั้งแต่หัวข้อต่างๆ เกี่ยวกับ กลุ่มข่าวรูทที่โพสต์ที่นั่นแทน
- ตัวอย่างเช่น โพสต์เกี่ยวกับปืนที่ โพสต์ใน talk.religion.misc สามารถจัดประเภทได้ง่ายว่าเป็น talk.politics.guns เพราะจะต้องใช้คำที่คล้ายกันที่พบในโพสต์ที่พบใน talk.politics.guns ในทำนองเดียวกัน โพสต์เกี่ยวกับการเมืองใน talk.politics.misc มีโอกาสน้อยกว่า เนื่องจากคุณมีแนวโน้มที่จะโพสต์ในหรือ talk.politics.guns มากกว่า (โดยที่ wildcard คือส่วนที่เกี่ยวข้องกับประเภทการเมืองที่จะพูดคุย)
ติดตั้ง RandomForest โดยใช้คำสั่ง pip: install.packages("randomForest")
ติดตั้ง คาเร็ต โดยใช้คำสั่ง pip: install.packages("caret")
ติดตั้ง mlr โดยใช้คำสั่ง pip: install.packages("mlr")
ติดตั้ง MASS โดยใช้คำสั่ง pip: install.packages("MASS")
ดาวน์โหลดสำหรับรายงาน
เหตุใดความถี่ของคำจึงดีกว่า TF-IDF สำหรับการจัดประเภทข้อความ
การจำแนกประเภท Naïve Bayes สำหรับชุดข้อมูลกลุ่มข่าว 20 ชุด
วิเคราะห์ความถี่คำและเอกสาร: tf-idf
การประมวลผลภาษาธรรมชาติ
K เพื่อนบ้านที่ใกล้ที่สุดใน R
แพ็คเกจ MLR
Text Mining Analyzer - รายงานโดยละเอียดเกี่ยวกับการวิเคราะห์
โคลนที่เก็บนี้:
โคลนคอมไพล์ https://github.com/iamsivab/Database-Management-System-for-Library.git
ตรวจสอบปัญหาใด ๆ จากที่นี่
ทำการเปลี่ยนแปลงและส่งคำขอดึง
โปรดติดต่อฉันได้ที่ @ [email protected]
MIT © Sivasubramanian