Обработка естественного языка (NLP) — это то, как мы заставляем машины изучать человеческий язык общения.
Это примечание, когда я просматриваю знания НЛП и помогаю мне очистить голову.
Предыстория проекта и основное содержание
Этот проект представляет собой простой проект классификации текста с использованием Наивного Байеса.
Содержание:
- Предварительная обработка данных: удаление лишнего содержимого из текста для улучшения качества данных с помощью регулярных выражений.
- Вектор текстовых данных.
- Применение Наивного Байеса для построения классификатора.
Описание данных
Данные взяты из Twitter на 6 языках: английском, французском, немецком, испанском, итальянском и голландском.
Хорошо! Присоединяемся к проекту!
Загрузить данные
Предварительная обработка данных
Во-первых, давайте разделим набор данных на обучающий и тестовый наборы.
Очистка данных
Векторное представление документа
Я использовал два метода: их можно использовать для преобразования удобочитаемого английского текста в язык, понятный машине.
- Счетчик векторизатора()
- TfidfVectorizer()
Постройте наивную байесовскую модель
MultinomialNB(alpha=1.0, class_prior=None, fit_prior=True)
classifier.score(vec.transform(X_test), y_test)
0.9907366563740626
Приведите пример для проверки классификатора:
classifier.predict(vec.transform(["my name is MaxMa"]))
array(['en'], dtype='<U2')
Собираем их вместе и упаковываем для последующего использования:
Давайте вызовем функции, чтобы проверить их.
language_detector = LanguageDetector() language_detector.fit(list(X_train), y_train) print(language_detector.predict('This is an English sentence')) print(language_detector.score(list(X_test), y_test))
Результат:['en'] 0.992501102779003
Сохранение модели и загрузка
Сохранить модель:
model_path = "my_model/language_detector.model" language_detector.save_model(model_path)
Модель нагрузки:
new_language_detector = LanguageDetector() new_language_detector.load_model(model_path) # using model to predict new_language_detector.predict("10 der welt sind bei")
Результат:array(['de'], dtype='<U2')