#Library
#PHP
#SQL
#Database System
#MYSQLi
#Management Systems
Ce projet est le prototype d'un système simple de gestion de bibliothèque. Le bibliothécaire a la possibilité d'ajouter des détails sur le livre tels que le numéro ISBN, le titre du livre, le nom de l'auteur, les détails de l'édition et de la publication via la page Web. En plus de cela, le bibliothécaire ou tout utilisateur a la possibilité de rechercher les livres disponibles dans la bibliothèque par le nom du livre. Si les détails du livre sont présents dans la base de données, les détails de la recherche sont affichés sur la page Web.
La classification de texte ou la catégorisation de texte est une activité consistant à étiqueter des textes en langage naturel avec des catégories prédéfinies pertinentes. L'idée est d'organiser automatiquement le texte en différentes classes. Cela peut considérablement simplifier et accélérer votre recherche dans les documents ou les textes !
3 étapes majeures dans le code Database-Management-System-for-Library
:
Lors de la formation et de la construction d'un modèle, gardez à l'esprit que le premier modèle n'est jamais le meilleur, la meilleure pratique est donc la méthode « essais et erreurs ». Pour simplifier ce processus, vous devez créer une fonction de formation et, à chaque tentative, enregistrer les résultats et les précisions.
J'ai décidé de trier le processus EDA en deux catégories : les étapes générales de pré-traitement qui étaient communes à tous les vectoriseurs et modèles et certaines étapes de pré-traitement que j'ai proposées en options pour mesurer les performances du modèle avec ou sans elles.
La précision a été choisie comme mesure de comparaison entre les modèles car plus la précision est grande, meilleures sont les performances du modèle sur les données de test.
Tout d’abord, j’ai créé un fichier Bag of Words . Ce fichier clean_data.R
contient toutes les méthodes pour prétraiter et générer un sac de mots. Nous utilisons la bibliothèque Corpus
pour gérer le prétraitement et générer Bag of Words .
Les étapes générales de prétraitement suivantes ont été effectuées puisque tout document entrant dans un modèle devrait être dans un certain format :
Conversion en minuscules
Suppression des mots vides
Supprimer des caractères alphanumériques
Suppression des ponctuations
Vectorisation : TfVectorizer a été utilisé. La précision du modèle a été comparée à celle de ceux utilisant TfIDFVectorizer. Dans tous les cas, lorsque TfVectorizer était utilisé, il donnait de meilleurs résultats et a donc été choisi comme Vectorizer par défaut.
Les étapes suivantes ont été ajoutées aux étapes de pré-traitement comme facultatives pour voir comment les performances du modèle ont changé avec et sans ces étapes : 1. Stemming
2. Lemmatization
3. Using Unigrams/Bigrams
Matrice de confusion pour la machine à vecteurs de support utilisant un sac de mots généré à l'aide de clean_data.r
> confusionMatrix(table(predsvm,data.test$folder_class))Matrice de confusion et statistiques predsvm 1 2 3 4 1 31 0 0 0 2 0 29 6 0 3 0 3 28 0 4 0 0 0 23Statistiques globales Précision : 0.925 IC à 95 % : (0,8624, 0,9651) Taux d'absence d'information : 0,2833 Valeur P [Acc > NIR] : < 2,2e-16 Kappa : 0,8994 Valeur P du test de Mcnemar : NA Statistiques par classe : Classe : 1 Classe : 2 Classe : 3 Classe : 4
-La déduction la plus intéressante est que plus le sujet du groupe de discussion est spécifique , plus le classificateur Naïve Bayes peut déterminer avec précision à quel groupe de discussion appartient un document et l'inverse est également vrai où moins le groupe de discussion est spécifique, le taux de précision chute.
-Nous pouvons le voir dans Accuracy où chaque groupe de discussion qui n'est pas un groupe divers aura toujours un taux de précision d'au moins 50 %. Les groupes de discussion les moins performants en termes de taux d'exactitude sont tous misc, ce qui inclut un taux d'exactitude de 0,25 % pour talk.politics.misc.
-Une des raisons à cela est que les messages écrits dans divers groupes de discussion sont rarement liés à la racine réelle du groupe de discussion. La section divers s'adresse à d'autres sujets de discussion autres que le « groupe de discussion racine », ce qui signifie qu'il est beaucoup plus facile pour le classificateur de confondre un document d'un groupe de discussion divers avec un autre groupe de discussion et beaucoup plus difficile pour le classificateur de considérer même le groupe de discussion racine puisque les sujets concernant le groupe de discussion racine publié à la place.
-Par exemple, un article sur les armes à feu publié dans talk.religion.misc peut être facilement classé comme étant talk.politics.guns car il devrait utiliser des mots similaires trouvés dans les articles trouvés dans talk.politics.guns. De même, les publications sur la politique dans talk.politics.misc sont moins probables parce que vous êtes plus susceptible de publier dans ou sur talk.politics.guns (où le caractère générique est la section pertinente pour le type de politique à discuter).
Installez randomForest à l'aide de la commande pip : install.packages("randomForest")
Installez caret à l'aide de la commande pip : install.packages("caret")
Installez mlr à l'aide de la commande pip : install.packages("mlr")
Installez MASS à l'aide de la commande pip : install.packages("MASS")
Téléchargez le rapport.
Pourquoi la fréquence des termes est meilleure que TF-IDF pour la classification de texte
Classification naïve de Bayes pour 20 ensembles de données de groupes d'actualités
Analyser la fréquence des mots et des documents : tf-idf
Traitement du langage naturel
K Voisin le plus proche dans R
Forfait MLR
Analyseur d'exploration de texte - Un rapport détaillé sur l'analyse
Clonez ce dépôt :
clone git https://github.com/iamsivab/Database-Management-System-for-Library.git
Consultez n’importe quel problème à partir d’ici.
Apportez des modifications et envoyez une demande de tirage.
N'hésitez pas à me contacter @ [email protected]
MIT © Sivasubramanian