NLP класифікація позитивних та негативних відгуків про ресторани (модель сумки слів)

Привіт, науковці даних! Сьогодні ми збираємося побудувати модель обробки природної мови, щоб передбачити, чи є відгук про ресторан позитивним чи негативним.

модель

Це дуже загальна реалізація, тому ви можете легко використовувати її з власними наборами даних та діловими проблемами. Давайте розпочнемо!

Як завжди першим кроком є ​​імпорт необхідних бібліотек:

Існують стандартні бібліотеки для проектів машинного навчання, тому пояснювати їх немає потреби. Інші бібліотеки будуть роз’яснені пізніше.

Тепер ми повинні поглянути на наш набір даних.

Він представлений у форматі tsv. Це формат значень, розділених табуляцією, який дуже схожий на формат CSV (значення, розділені комами). Цей формат вважається кращим, ніж CSV для NLP, оскільки коми, швидше за все, будуть частиною речення, і файл CSV розпізнає їх як роздільники. І вкладки, швидше за все, не будуть частиною речення. Тож пам’ятайте про це і завжди використовуйте формат tsv.

Тут ми маємо лише дві колонки: Огляд та Сподобалось. Сподобалось - 1 за позитивні коментарі та 0 за негативні. Тепер ми повинні імпортувати його.

Ми використовуємо метод pandas read_csv, але зі спеціальним роздільником параметрів, який зараз є вкладкою. Після цього ми повинні очистити наші дані.

Ми імпортуємо бібліотеку re для регулярних виразів та бібліотеку nltk для роботи з мовними даними. Ми повинні завантажити стоп-слова та імпортувати їх, щоб прочитати непотрібні слова, такі як: «він», «увімкнено», «той» тощо. Вони не дають нам жодної розумної інформації. PorterStemmer отримує корінь слова. Наприклад, хтось може написати, тоді він «любить» це місце, інша людина «любить» це місце тощо. Тож PorterStemmer позбавляється закінчень "ed", "es", "ing" тощо і залишається лише любов'ю. Ми також позбавляємось від усіх знаків пунктуації, робимо всі слова малими.

У нас було “Ого ... Полюбив це місце”. і тепер у нас є "вау місце кохання", яке має лише важливу інформацію.

Тут ми створюємо модель Bag of Words. Ви можете знайти більше інформації про те, як працює ця модель, в Інтернеті. Тепер розділимо наші дані на набір тестів і тренувань:

Після цього ми будемо використовувати модель наївного Байєса для прогнозування.

Отже, ми побудували модель і зробили прогнози, тепер ми можемо перевірити точність.

Точність становить 73%, що є нормальним явищем.

Зараз я покажу вам, як передбачити власні нові коментарі. Я знайшов їх в Інтернеті.

Ви можете вибрати позитивний коментар вище або негативний коментар:

Або власний коментар та обробіть його:

Це той самий процес, що й раніше, але ми також повинні змінити свій коментар і отримати результат.

Спробуйте використати власні дані, щоб вирішити проблему. Будьте на зв’язку, дякую за прочитання, будь ласка, залиште плескання мені!