#Library
#PHP
#SQL
#Database System
#MYSQLi
#Management Systems
Este proyecto es el prototipo de un Sistema Simple de Gestión de Bibliotecas. El bibliotecario tiene una disposición para agregar detalles del libro como el número ISBN, el título del libro, el nombre del autor, la edición y los detalles de la publicación a través de la página web. Además de esto, el bibliotecario o cualquier usuario tiene la posibilidad de buscar los libros disponibles en la biblioteca por el nombre del libro. Si los detalles del libro están presentes en la base de datos, los detalles de la búsqueda se muestran en la página web.
La clasificación de texto o categorización de texto es una actividad de etiquetar textos en lenguaje natural con categorías predefinidas relevantes. La idea es organizar automáticamente el texto en diferentes clases. ¡Puede simplificar y acelerar drásticamente su búsqueda a través de documentos o textos!
3 pasos principales en el código Database-Management-System-for-Library
:
Mientras entrena y construye un modelo, tenga en cuenta que el primer modelo nunca es el mejor, por lo que la mejor práctica es el método de "prueba y error". Para simplificar ese proceso, debes crear una función para entrenamiento y en cada intento guardar resultados y precisiones.
Decidí clasificar el proceso EDA en dos categorías: pasos generales de preprocesamiento que eran comunes en todos los vectorizadores y modelos y ciertos pasos de preprocesamiento que puse como opciones para medir el rendimiento del modelo con o sin ellos.
Se eligió la precisión como medida de comparación entre modelos, ya que cuanto mayor sea la precisión, mejor será el rendimiento del modelo en los datos de prueba.
En primer lugar, he creado un archivo Bag of Words . Este archivo clean_data.R
contiene todos los métodos para preprocesar y generar una bolsa de palabras. Usamos la biblioteca Corpus
para manejar el preprocesamiento y generar Bag of Words.
Se llevaron a cabo los siguientes pasos generales de preprocesamiento, ya que cualquier documento que se ingrese a un modelo deberá tener un formato determinado:
Convirtiendo a minúsculas
Eliminación de palabras vacías
Eliminar caracteres alfanuméricos
Eliminación de puntuaciones
Vectorización: Se utilizó TfVectorizer. La precisión del modelo se comparó con aquellos que utilizaron TfIDFVectorizer. En todos los casos, cuando se utilizó TfVectorizer, dio mejores resultados y, por lo tanto, se eligió como el vectorizador predeterminado.
Los siguientes pasos se agregaron a los pasos de preprocesamiento como opcionales para ver cómo cambió el rendimiento del modelo con y sin estos pasos: 1. Stemming
2. Lemmatization
3. Using Unigrams/Bigrams
Matriz de confusión para máquina de vectores de soporte usando bolsa de palabras generada usando clean_data.r
> confusionMatrix(table(predsvm,data.test$folder_class))Matriz de confusión y estadísticas predsvm 1 2 3 4 1 31 0 0 0 2 0 29 6 0 3 0 3 28 0 4 0 0 0 23Estadísticas generales Precisión: 0,925 IC del 95%: (0,8624, 0,9651) Tasa sin información: 0,2833 Valor P [Acc > NIR] : < 2,2e-16 Kappa: 0,8994 Valor P de la prueba de Mcnemar: NA Estadísticas por clase: Clase: 1 Clase: 2 Clase: 3 Clase: 4
-La deducción más interesante es que cuanto más específico es el tema del grupo de noticias , más preciso será el clasificador Naïve Bayes para determinar a qué grupo de noticias pertenece un documento y lo contrario también es cierto: cuanto menos específico es el grupo de noticias, la tasa de precisión cae en picado.
-Podemos ver esto en Precisión, donde cada grupo de noticias que no sea misceláneo siempre tendrá una tasa de precisión de al menos el 50%. Los grupos de noticias inferiores en términos de tasa de precisión son todos misceláneos, lo que incluye una tasa de precisión del 0,25% para talk.politics.misc.
-Una razón para esto es que las publicaciones que se escriben en grupos de noticias varios rara vez están relacionadas con la raíz real del grupo de noticias. La sección miscelánea atiende a otros temas de discusión además del “grupo de noticias raíz”, lo que significa que es mucho más fácil para el clasificador confundir un documento de un grupo de noticias misceláneo con otro grupo de noticias y mucho más difícil para el clasificador siquiera considerar el grupo de noticias raíz desde los temas. con respecto al grupo de noticias raíz publicado allí.
-Por ejemplo, una publicación sobre armas publicada en talk.religion.misc puede clasificarse fácilmente como talk.politics.guns porque tendría que usar palabras similares que se encuentran en las publicaciones que se encuentran en talk.politics.guns. Del mismo modo, es menos probable que publiques sobre política en talk.politics.misc porque es más probable que publiques en talk.politics.guns (donde el comodín es la sección relevante para el tipo de política que se va a discutir).
Instale randomForest usando el comando pip: install.packages("randomForest")
Instale caret usando el comando pip: install.packages("caret")
Instale mlr usando el comando pip: install.packages("mlr")
Instale MASS usando el comando pip: install.packages("MASS")
Descargar para el informe.
Por qué Term Frequency es mejor que TF-IDF para la clasificación de texto
Clasificación ingenua de Bayes para un conjunto de datos de 20 grupos de noticias
Analizando la frecuencia de palabras y documentos: tf-idf
Procesamiento del lenguaje natural
K Vecino más cercano en R
Paquete MLR
Analizador de minería de textos: un informe detallado sobre el análisis
Clona este repositorio:
clon de git https://github.com/iamsivab/Database-Management-System-for-Library.git
Consulta cualquier incidencia desde aquí.
Realice cambios y envíe Pull Request.
No dudes en contactarme @ [email protected]
MIT © Sivasubramanian