#Library
#PHP
#SQL
#Database System
#MYSQLi
#Management Systems
Этот проект является прототипом простой системы управления библиотекой. Библиотекарь имеет возможность добавлять на веб-страницу такие сведения о книге, как номер ISBN, название книги, имя автора, издание и сведения о публикации. В дополнение к этому библиотекарь или любой пользователь имеет возможность искать доступные книги в библиотеке по названию книги. Если сведения о книге присутствуют в базе данных, сведения о поиске отображаются на веб-странице.
Классификация текста или категоризация текста — это деятельность по маркировке текстов на естественном языке соответствующими предопределенными категориями. Идея состоит в том, чтобы автоматически организовать текст по разным классам. Это может значительно упростить и ускорить поиск по документам или текстам!
3 основных шага в коде Database-Management-System-for-Library
:
При обучении и построении модели имейте в виду, что первая модель никогда не бывает лучшей, поэтому лучше всего использовать метод «проб и ошибок». Чтобы упростить этот процесс, вам следует создать функцию для обучения и при каждой попытке сохранять результаты и точность.
Я решил разделить процесс EDA на две категории: общие этапы предварительной обработки, которые являются общими для всех векторизаторов и моделей, и определенные этапы предварительной обработки, которые я включил в качестве вариантов для измерения производительности модели с ними или без них.
Точность была выбрана в качестве меры сравнения моделей, поскольку чем выше точность, тем выше производительность модели на тестовых данных.
Прежде всего, я создал файл «Мешок слов» . Этот файл clean_data.R
содержит все методы предварительной обработки и генерации набора слов. Мы используем библиотеку Corpus
для предварительной обработки и создания Bag of Words.
Были выполнены следующие общие этапы предварительной обработки , поскольку любой документ, вводимый в модель, должен был быть в определенном формате:
Преобразование в нижний регистр
Удаление стоп-слов
Удаление буквенно-цифровых символов
Удаление знаков препинания
Векторизация: использовался TfVectorizer. Точность модели сравнивалась с той, что использовала TfIDFVectorizer. Во всех случаях, когда использовался TfVectorizer, он давал лучшие результаты и поэтому был выбран в качестве векторизатора по умолчанию.
Следующие шаги были добавлены к шагам предварительной обработки как необязательные, чтобы увидеть, как производительность модели изменилась с этими шагами и без них: 1. Stemming
2. Lemmatization
3. Using Unigrams/Bigrams
Матрица путаницы для машины опорных векторов с использованием пакета слов, созданная с помощью clean_data.r
> путаницаMatrix(table(predsvm,data.test$folder_class))Матрица путаницы и статистика 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% ДИ: (0,8624, 0,9651) Скорость отсутствия информации: 0,2833 P-значение [Acc > NIR]: < 2,2e-16 Каппа: 0,8994 P-значение теста Макнемара: NA Статистика по классу: Класс: 1 Класс: 2 Класс: 3 Класс: 4
- Самый интересный вывод заключается в том, что чем конкретнее тема телеконференции , тем точнее наивный байесовский классификатор может определить, к какой группе новостей принадлежит документ, и обратное также верно, когда чем менее конкретна группа новостей, уровень точности резко падает.
- Мы можем видеть это в «Точности», где каждая группа новостей, которая не является разной, всегда будет иметь уровень точности не менее 50%. Все группы новостей, расположенные ниже по уровню точности, являются разными, включая точность 0,25% для talk.politics.misc.
- Причина этого в том, что сообщения, написанные в разных группах новостей, редко связаны с фактическим корнем группы новостей. Раздел «Разное» обслуживает другие темы обсуждения, кроме «корневой группы новостей», а это означает , что классификатору гораздо легче спутать документ из другой группы новостей с другой группой новостей, и классификатору гораздо сложнее даже рассмотреть корневую группу новостей, поскольку темы вместо этого там размещено сообщение о корневой группе новостей.
-Например, сообщение об оружии , опубликованное в talk.religion.misc, можно легко классифицировать как talk.politics.guns , поскольку в нем придется использовать те же слова, что и в сообщениях, найденных в talk.politics.guns. Аналогично, сообщения о политике в talk.politics.misc менее вероятны , поскольку вы с большей вероятностью будете публиковать сообщения в talk.politics.guns (где подстановочный знак — это соответствующий раздел для обсуждаемого типа политики).
Установите randomForest с помощью команды pip: install.packages("randomForest")
Установите курсор с помощью команды pip: install.packages("caret")
Установите mlr с помощью команды pip: install.packages("mlr")
Установите MASS с помощью команды pip: install.packages("MASS")
Скачать для отчета.
Почему частота терминов лучше, чем TF-IDF для классификации текста
Наивная байесовская классификация для набора данных из 20 групп новостей
Анализ частоты слов и документов: tf-idf
Обработка естественного языка
K Ближайший сосед в R
Пакет MLR
Анализатор интеллектуального анализа текста — подробный отчет об анализе
Клонируйте этот репозиторий:
git-клон https://github.com/iamsivab/Database-Management-System-for-Library.git
Проверьте любую проблему здесь.
Внесите изменения и отправьте запрос на включение.
Не стесняйтесь обращаться ко мне @ [email protected]
MIT © Сивасубраманиан