Гартнер підрахував, що до 2020 року чат-боти будуть обробляти 85 відсотків взаємодії з клієнтами; Зараз вони обробляють близько 30 відсотків операцій.
Я впевнений, ви чули про Дуолінго - популярний додаток для вивчення мови, який допомагає в процесі вивчення нової мови. Цей інструмент досить популярний завдяки своїм інноваційним системам викладання нової мови. Концепція проста: п’яти-десяти хвилин інтерактивних тренувань на день достатньо для вивчення мови.
Однак, незважаючи на те, що Дуолінго дозволяє людям вивчати нову мову, практикуючих це турбує. Люди відчували, що втрачають навчання цінних навичок розмови, коли навчаються самостійно. Люди також переживали з приводу того, що їх поєднують з іншими, хто вивчає мову, через страх збентеження. Це виявилося головним вузьким місцем у планах Дуолінго. .
Тож його команда вирішила цю проблему, створивши власний чат-бот у своєму додатку, щоб допомогти користувачам засвоїти розмовні навички та практикувати те, що вони дізналися.
Оскільки боти створені для того, щоб бути балакучими та доброзичливими, студенти Duolingo можуть практикувати розмову в будь-який час доби, використовуючи обраних ними персонажів, поки вони не почуватимуться досить сміливими, щоб практикувати свою нову мову з іншими носіями мови. Це вирішило проблему для споживача та зробило навчання через додаток набагато цікавішим.
Чат-бот Це програмне забезпечення зі штучним інтелектом у пристрої (Siri, Alexa, Google Assistant тощо), додатку, веб-сайті чи інших мережах, які намагаються виміряти потреби споживачів, а потім допомогти їм виконати певне завдання, наприклад господарська операція. Бронювання готелів, подання бланків тощо. Сьогодні майже у всіх компаніях є чат-бот для взаємодії з користувачами. Деякі способи використання компаній чат-ботами:
Надати інформацію про рейс.
· Пов’язати клієнтів та їхні фінанси.
Як підтримка клієнтів.
Можливості майже необмежені.
Історія чат-ботів бере свій початок з 1966 року, коли Вайценбаум винайшов комп’ютерну програму під назвою ELIZA. Я імітував мову психотерапевта лише із 200 рядків коду. Ви все ще можете поспілкуватися з ним тут: Еліза .
Взагалі кажучи, існує два варіанти чат-ботів: заснований на правилах та самостійне навчання.
1. У підході заснований на правилах, бот відповідає на запитання на основі деяких правил, які були попередньо навчені. Визначені правила можуть бути дуже простими або дуже складними. Боти можуть обробляти прості запити, але не справляються зі складними.
2. Роботи, що самонавчаються Саме вони використовують деякі підходи, засновані на машинному навчанні, і, безумовно, ефективніші, ніж роботи на основі правил. Ці боти можуть бути двох інших типів: на основі відновлення або генеративи.
i) У моделях на основі при одужанні, чат-бот використовує певну евристику, щоб вибрати відповідь із бібліотеки заздалегідь визначених відповідей. Чат-бот використовує повідомлення та контекст розмови, щоб вибрати найкращу відповідь із заздалегідь визначеного списку повідомлень, які потрібно надіслати. Контекст може включати поточну позицію в дереві діалогових вікон, усі попередні повідомлення в бесіді, раніше збережені змінні (наприклад, ім'я користувача). Евристика вибору відповіді може бути розроблена різними способами: від умовної логіки, на якій базуються правила, або класифікаторів машинного навчання.
ii) Генеративні боти вони можуть генерувати відповіді і не завжди відповідають однією з відповідей із набору відповідей. Це робить їх розумнішими, оскільки вони беруть слово за словом із запиту та генерують відповіді.
Попередні вимоги
Передбачається робоче знання наукового знання бібліотека та НЛТК. Однак, якщо ви новачок у NLP, ви все одно можете прочитати статтю, а потім ще раз перевірити ресурси.
Напрямок дослідження, який зосереджується на взаємодії між людською мовою та комп’ютерами, називається „Обробка природної мови”, або коротше NLP. Він знаходиться на стику інформатики, штучного інтелекту та обчислювальної лінгвістики [Вікіпедія].
NLP - це спосіб, за допомогою якого комп’ютери аналізують, розуміють та виводять значення з людської мови розумним та корисним способом. Використовуючи NLP, розробники можуть організувати та структурувати знання для виконання таких завдань, як автоматичне підведення підсумків, переклад, розпізнавання іменованих сутностей, вилучення відносин, аналіз настроїв, розпізнавання мови та сегментація теми.
НЛТК: Короткий вступ
NLTK (Natural Language Toolkit) - це провідна платформа для створення програм Python для роботи з даними людською мовою. Забезпечує прості у використанні інтерфейси для понад 50 основних та лексичних ресурсів, таких як WordNet, а також набір бібліотек обробки текстів для класифікації, маркування, виведення, маркування, семантичних міркувань та аналізу, обгортки бібліотек NPP промислового рівня.
NLTK назвали "чудовим інструментом для викладання та роботи в обчислювальній лінгвістиці з Python" та "неймовірною бібліотекою для гри з природною мовою".
Обробка природної мови за допомогою Python надає практичний вступ до програмування для обробки мови. Я рекомендую цю книгу людям, що не знайомі з NLP з Python.
Завантаження та встановлення NLTK
- Встановити NLTK: запустити pip install nltk
- Тестове встановлення: запустіть і python, а потім напишіть import nltk
Щоб отримати конкретні інструкції на платформі, перейдіть за цим посиланням тут .
Встановлення пакетів NLTK
Імпортуйте NLTK та запустіть nltk.download (). Це відкриє завантажувач NLTK, звідки ви зможете вибрати корпус та моделі для завантаження. Ви також можете завантажити всі пакети одночасно.
Попередня обробка тексту за допомогою NLTK
Основна проблема з текстовими даними полягає в тому, що все в текстовому форматі (рядки). Однак для виконання завдання алгоритмам машинного навчання потрібен якийсь вектор числових характеристик. Отже, перед тим, як розпочати будь-який проект НЛП, нам потрібно попередньо обробити його, щоб зробити його ідеальним для роботи. Попередня обробка тексту основне включає:
- Перетворити весь текст у велику або малу, так що алгоритм не трактує однакові слова в різних випадках як різні.
- Токенізація: Токенізація - це просто термін, який використовується для опису процесу перетворення звичайних текстових рядків у список лексем, тобто слів, які ми справді хочемо. Токенізатор речень може бути використаний для пошуку списку речень, а слово маркера - для пошуку списку слів у рядках.
Пакет даних NLTK включає попередньо навчений токенізатор Punkt для англійської мови.
- Видаліть шум, тобто все, що не входить у стандартну цифру чи літеру.
- Виключення стоп-слів. Іноді деякі надзвичайно поширені слова, які, здається, не мають великої користі у виборі документів, що відповідають потребам користувача, повністю виключаються зі словникового запасу. Ці слова називаються стоп-словами.
- Генерація свинцю: деривація - це процес зведення сполучених (або інколи похідних) слів до їх основи, основи або основи, як правило, до письмової форми слова. Приклад, якби нам довелося зупинити такі слова: "Хліб", "пекар" та пекарня ", результатом було б одне слово" хліб ".
- Лемматизація: незначним варіантом деривації є лематизація. Головна відмінність між ними полягає в тому, що деривація часто може створювати неіснуючі слова, тоді як гасла - це справжні слова. Отже, його корінь, тобто слово, яким воно закінчується, - це не те, що ви можете шукати у словнику, але ви можете шукати девіз. Деякі приклади лемматизації полягають у тому, що "біг" є основною формою слів, як "біг" або "біг", або що слова "краще" та "добре" знаходяться в одному девізі, тому вони вважаються однаковими.
Мішок слів
Після початкової фази попередньої обробки нам потрібно перетворити текст на значущий вектор (або матрицю) чисел. Мішок слів - це подання тексту, що описує вигляд слів у документі. Це включає дві речі:
• Словник відомих слів.
• Міра присутності відомих слів.
Чому це називають «мішком» слів? Це пов’язано з тим, що будь-яка інформація про порядок чи структуру слів у документі відкидається, і модель стосується лише того, якщо відомі слова з’являються в документі, а не там, де вони з’являються в документі.
Інтуїція цієї сумки слів полягає в тому, що документи схожі, якщо вони мають подібний зміст. Крім того, ми можемо дізнатись щось про значення документа лише з його змісту.
Наприклад, якщо наш словник містить слова, і ми хочемо векторизувати текст “Навчання - це чудово”, ми мали б такий вектор: (1, 1, 0, 0, 1).
Підхід TF-IDF
Однією з проблем підходу «Сумка слів» є те, що слова з високою частотою починають домінувати в документі (наприклад, вища пунктуація), але не можуть містити стільки «інформаційного змісту». Крім того, це надасть більшої ваги довшим документам, ніж коротшим.
Одним із підходів є масштабування частоти слів, виходячи з того, наскільки часто вони з’являються у всіх документах, тим самим караючи оцінки за такі часті слова, як „the”, які також часто зустрічаються у всіх документах. Такий підхід до підрахунку називається Термінова зворотна частота Частота документа, або TF-IDF коротше, де:
Частота термінів: є оцінкою частоти слова у поточному документі.
Зворотна частота документа: це оцінка того, наскільки рідко зустрічається слово між документами.
Вага Tf-idf - це вага, який часто використовується при пошуку інформації та видобутку тексту. Ця вага є статистичним показником, що використовується для оцінки важливості слова для документа в колекції чи корпусі.
Розглянемо документ, що містить 100 слів, де слово «телефон» з’являється 5 разів.
Тоді частотний термін (тобто tf) для телефону становить (5/100) = 0,05. Тепер припустимо, що у нас є 10 мільйонів документів, і слово телефон є у тисячі з них. Потім частота зворотного документа (тобто IDF) обчислюється як log (10 000 000/1 000) = 4. Отже, вага Tf-IDF є добутком цих величин: 0,05 * 4 = 0,20.
Tf-IDF може бути реалізований в scikit learn як:
з sklearn.feature_extraction.text імпортувати TfidfVectorizer
Подібність косинусів
TF-IDF - це перетворення, що застосовується до текстів для отримання двох векторів дійсного значення у векторному просторі. Тоді ми можемо отримати подібність косинуса будь-якої пари векторів, взявши її точковий добуток і розділивши на добуток її норм. Це створює косинус кута між векторами. Подібність косинусів є мірою подібності двох ненульових векторів. Використовуючи цю формулу, ми можемо виявити подібність між двома документами d1 і d2.
Де d1, d2 - два вектори, які не дорівнюють нулю.
Детальне пояснення та практичний приклад TF-IDF та подібності косинусів див. У документі нижче.