#Library
#PHP
#SQL
#Database System
#MYSQLi
#Management Systems
Dieses Projekt ist der Prototyp eines einfachen Bibliotheksverwaltungssystems. Der Bibliothekar hat die Möglichkeit, über die Webseite Buchdetails wie ISBN-Nummer, Buchtitel, Name des Autors, Ausgabe und Veröffentlichungsdetails hinzuzufügen. Darüber hinaus hat der Bibliothekar oder jeder andere Benutzer die Möglichkeit, anhand des Buchnamens nach verfügbaren Büchern in der Bibliothek zu suchen. Wenn Buchdetails in der Datenbank vorhanden sind, werden die Suchdetails auf der Webseite angezeigt.
Bei der Textklassifizierung oder Textkategorisierung handelt es sich um eine Aktivität zur Kennzeichnung natürlichsprachlicher Texte mit relevanten vordefinierten Kategorien. Die Idee besteht darin, Text automatisch in verschiedenen Klassen zu organisieren. Es kann Ihre Suche in den Dokumenten oder Texten drastisch vereinfachen und beschleunigen!
3 Hauptschritte im Database-Management-System-for-Library
Code:
Denken Sie beim Training und Aufbau eines Modells daran, dass das erste Modell nie das beste ist. Die beste Vorgehensweise ist daher die „Versuch-und-Irrtum“-Methode. Um diesen Prozess zu vereinfachen, sollten Sie eine Funktion für das Training erstellen und bei jedem Versuch Ergebnisse und Genauigkeiten speichern.
Ich habe beschlossen, den EDA-Prozess in zwei Kategorien einzuteilen: allgemeine Vorverarbeitungsschritte, die allen Vektorisierern und Modellen gemeinsam waren, und bestimmte Vorverarbeitungsschritte, die ich als Optionen zur Messung der Modellleistung mit oder ohne sie angegeben habe
Als Maß für den Vergleich zwischen Modellen wurde die Genauigkeit gewählt, da je höher die Genauigkeit, desto besser die Modellleistung bei Testdaten.
Zunächst habe ich eine Bag of Words- Datei erstellt. Diese Datei clean_data.R
enthält alle Methoden zur Vorverarbeitung und Generierung einer Wortmenge. Wir verwenden Corpus
-Bibliothek, um die Vorverarbeitung durchzuführen und Bag of Words zu generieren.
Die folgenden allgemeinen Vorverarbeitungsschritte wurden durchgeführt, da jedes in ein Modell eingegebene Dokument in einem bestimmten Format vorliegen muss:
Konvertieren in Kleinbuchstaben
Entfernung von Stoppwörtern
Entfernen alphanumerischer Zeichen
Entfernung von Satzzeichen
Vektorisierung: TfVectorizer wurde verwendet. Die Modellgenauigkeit wurde mit denen verglichen, die TfIDFVectorizer verwendeten. In allen Fällen lieferte TfVectorizer bei Verwendung bessere Ergebnisse und wurde daher als Standard-Vectorizer ausgewählt.
Die folgenden Schritte wurden optional zu den Vorverarbeitungsschritten hinzugefügt, um zu sehen, wie sich die Modellleistung mit und ohne diese Schritte verändert hat: 1. Stemming
2. Lemmatization
3. Using Unigrams/Bigrams
Verwirrungsmatrix für Support Vector Machine unter Verwendung von Bag of Words, generiert mit clean_data.r
> confusionMatrix(table(predsvm,data.test$folder_class))Confusion Matrix and Statistics predsvm 1 2 3 4 1 31 0 0 0 2 0 29 6 0 3 0 3 28 0 4 0 0 0 23Gesamtstatistik Genauigkeit: 0,925 95 %-KI: (0,8624, 0,9651) Keine Informationsrate: 0,2833 P-Wert [Acc > NIR]: < 2,2e-16 Kappa: 0,8994 P-Wert des Mcnemar-Tests: NA-Statistiken nach Klasse: Klasse: 1 Klasse: 2 Klasse: 3 Klasse: 4
-Die interessanteste Schlussfolgerung ist, dass der Naive-Bayes-Klassifikator umso genauer bestimmen kann, zu welcher Newsgroup ein Dokument gehört, je spezifischer das Newsgroup-Thema ist , und umgekehrt gilt auch, dass die Genauigkeitsrate sinkt, je weniger spezifisch die Newsgroup ist.
-Wir können dies in der Genauigkeit sehen, wo jede Newsgroup, die keine Sonstige ist, immer eine Genauigkeitsrate von mindestens 50 % hat. Die schlechtesten Newsgroups hinsichtlich der Genauigkeitsrate sind alle „Misc“, einschließlich einer Genauigkeitsrate von 0,25 % für „talk.politics.misc“.
-Ein Grund dafür ist, dass die Beiträge, die in verschiedenen Newsgroups geschrieben werden, selten einen Bezug zum eigentlichen Stammverzeichnis der Newsgroup haben. Der Abschnitt „Verschiedenes“ befasst sich mit anderen Diskussionsthemen als der „Root-Newsgroup“, was bedeutet , dass es für den Klassifikator viel einfacher ist, ein Dokument aus einer Misc-Newsgroup mit einer anderen Newsgroup zu verwechseln, und es für den Klassifikator viel schwieriger ist, die Root-Newsgroup überhaupt als Themen zu berücksichtigen bezüglich der Root-Newsgroup, die stattdessen dort gepostet wurde.
- Beispielsweise kann ein Beitrag über Waffen, der in talk.religion.misc veröffentlicht wurde, leicht als talk.politics.guns klassifiziert werden , da er ähnliche Wörter verwenden müsste, die in den Beiträgen in talk.politics.guns gefunden wurden. Ebenso sind Beiträge über Politik in talk.politics.misc weniger wahrscheinlich , da Sie eher in oder talk.politics.guns posten (wobei Platzhalter der relevante Abschnitt für die Art der zu diskutierenden Politik ist).
Installieren Sie randomForest mit dem Pip-Befehl: install.packages("randomForest")
Installieren Sie Caret mit dem Pip-Befehl: install.packages("caret")
Installieren Sie mlr mit dem Pip-Befehl: install.packages("mlr")
Installieren Sie MASS mit dem Pip-Befehl: install.packages("MASS")
Zum Bericht herunterladen.
Warum die Begriffshäufigkeit für die Textklassifizierung besser ist als TF-IDF
Naive Bayes-Klassifizierung für 20 News Group-Datensätze
Analyse der Wort- und Dokumenthäufigkeit: tf-idf
Verarbeitung natürlicher Sprache
K Nächster Nachbar in R
MLR-Paket
Text Mining Analyzer – Ein detaillierter Bericht zur Analyse
Klonen Sie dieses Repository:
Git-Klon https://github.com/iamsivab/Database-Management-System-for-Library.git
Schauen Sie sich hier alle Probleme an.
Nehmen Sie Änderungen vor und senden Sie eine Pull-Anfrage.
Kontaktieren Sie mich gerne unter [email protected]
MIT © Sivasubramanian