#Library
#PHP
#SQL
#Database System
#MYSQLi
#Management Systems
Este projeto é o protótipo de um Sistema Simples de Gerenciamento de Bibliotecas. O bibliotecário pode adicionar detalhes do livro, como número ISBN, título do livro, nome do autor, edição e detalhes da publicação por meio da página da web. Além disso, o bibliotecário ou qualquer usuário pode pesquisar os livros disponíveis na biblioteca pelo nome do livro. Se os detalhes do livro estiverem presentes no banco de dados, os detalhes da pesquisa serão exibidos na página da web.
A classificação ou categorização de texto é uma atividade de rotular textos em linguagem natural com categorias predefinidas relevantes. A ideia é organizar automaticamente o texto em diferentes classes. Pode simplificar e agilizar drasticamente sua busca em documentos ou textos!
Três etapas principais no código Database-Management-System-for-Library
:
Ao treinar e construir um modelo, tenha em mente que o primeiro modelo nunca é o melhor, então a melhor prática é o método de “tentativa e erro”. Para tornar esse processo mais simples, você deve criar uma função para treinamento e a cada tentativa salvar resultados e precisões.
Decidi classificar o processo EDA em duas categorias: etapas gerais de pré-processamento que eram comuns a todos os vetorizadores e modelos e certas etapas de pré-processamento que coloquei como opções para medir o desempenho do modelo com ou sem eles
A acurácia foi escolhida como medida de comparação entre modelos, pois quanto maior a acurácia, melhor o desempenho do modelo nos dados de teste.
Primeiro de tudo, criei um arquivo Bag of Words . Este arquivo clean_data.R
contém todos os métodos para pré-processar e gerar um pacote de palavras. Usamos a biblioteca Corpus
para lidar com o pré-processamento e gerar o Bag of Words.
As seguintes etapas gerais de pré-processamento foram realizadas, uma vez que qualquer documento inserido em um modelo deveria estar em um determinado formato:
Convertendo para minúsculas
Remoção de palavras irrelevantes
Removendo caracteres alfanuméricos
Remoção de pontuações
Vetorização: foi utilizado o TfVectorizer. A precisão do modelo foi comparada com aqueles que utilizaram o TfIDFVectorizer. Em todos os casos, quando o TfVectorizer foi utilizado, ele deu melhores resultados e por isso foi escolhido como o Vectorizer padrão.
As etapas a seguir foram adicionadas às etapas de pré-processamento como opcionais para ver como o desempenho do modelo mudou com e sem essas etapas: 1. Stemming
2. Lemmatization
3. Using Unigrams/Bigrams
Matriz de confusão para máquina de vetores de suporte usando saco de palavras gerado usando clean_data.r
> confusãoMatrix(tabela(predsvm,data.test$folder_class))Matriz de confusão e estatí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 23Estatísticas gerais Precisão: 0,925 IC 95%: (0,8624, 0,9651) Taxa de ausência de informação: 0,2833 Valor P [Acc> NIR]: <2,2e-16 Kappa: 0,8994 Valor P do teste de Mcnemar: Estatísticas de NA por classe: Classe: 1 Classe: 2 Classe: 3 Classe: 4
-A dedução mais interessante é que quanto mais específico for o tópico do grupo de notícias , mais preciso será o classificador Naïve Bayes para determinar a que grupo de notícias um documento pertence e o inverso também é verdadeiro quando quanto menos específico for o grupo de notícias, a taxa de precisão despenca.
-Podemos ver isso em Precisão, onde cada grupo de notícias que não seja diverso sempre terá uma taxa de precisão de pelo menos 50%. Os grupos de notícias inferiores em termos de taxa de precisão são todos diversos, o que inclui uma taxa de precisão de 0,25% para talk.politics.misc.
-Uma razão para isso é que as postagens escritas em grupos de notícias diversos raramente estão relacionadas à raiz real do grupo de notícias. A seção misc atende a outros tópicos de discussão além do “grupo de notícias raiz”, o que significa que é muito mais fácil para o classificador confundir um documento de um grupo de notícias diverso com outro grupo de notícias e muito mais difícil para o classificador considerar o grupo de notícias raiz, já que os tópicos em relação ao grupo de notícias raiz postado lá.
-Por exemplo, uma postagem sobre armas postada em talk.religion.misc pode ser facilmente classificada como talk.politics.guns porque teria que usar palavras semelhantes encontradas nas postagens encontradas em talk.politics.guns. Da mesma forma, postagens sobre política em talk.politics.misc são menos prováveis porque é mais provável que você poste em ou talk.politics.guns (onde o curinga é a seção relevante para o tipo de política a ser discutida).
Instale randomForest usando o comando pip: install.packages("randomForest")
Instale o cursor usando o comando pip: install.packages("caret")
Instale o mlr usando o comando pip: install.packages("mlr")
Instale o MASS usando o comando pip: install.packages("MASS")
Baixe para o relatório.
Por que a frequência dos termos é melhor que o TF-IDF para classificação de texto
Classificação Naïve Bayes para conjunto de dados de 20 grupos de notícias
Analisando a frequência de palavras e documentos: tf-idf
Processamento de Linguagem Natural
K Vizinho mais próximo em R
Pacote MLR
Analisador de Mineração de Texto – Um Relatório Detalhado sobre a Análise
Clone este repositório:
clone do git https://github.com/iamsivab/Database-Management-System-for-Library.git
Confira qualquer problema aqui.
Faça alterações e envie Pull Request.
Sinta-se à vontade para entrar em contato comigo @ [email protected]
MIT © Sivasubramanian