Gartner изчислява, че до 2020 г. чатботовете ще обработват 85 процента от взаимодействията с клиентите; Те вече обработват около 30 процента от транзакциите.

изграждане

Сигурен съм, че сте чували за Дуолинго - популярно приложение за изучаване на езици, което помага в процеса на изучаване на нов език. Този инструмент е доста популярен поради своите иновативни системи за преподаване на нов език. Концепцията е проста: пет до десет минути интерактивно обучение на ден са достатъчни за изучаване на език.

Въпреки това, въпреки че Duolingo позволява на хората да научат нов език, практикуващите са загрижени. Хората чувстваха, че пропускат да научат ценни разговорни умения, докато се учат сами. Хората също се тревожеха, че ще бъдат сдвоени с изучаващи други езици поради страх от срам. Това се оказа голямо пречка в плановете на Дуолинго. .

Така неговият екип реши този проблем, като създаде роден чатбот в приложението си, за да помогне на потребителите да усвоят разговорни умения и да практикуват наученото.

Тъй като ботовете са създадени да бъдат бъбриви и приятелски настроени, учениците на Duolingo могат да практикуват говорене по всяко време на деня, използвайки избраните от тях герои, докато не се почувстват достатъчно смели да практикуват новия си език с други говорители. Това реши проблем за потребителя и направи обучението чрез приложението много по-забавно.

Чат бот Това е софтуер с изкуствен интелект в устройство (Siri, Alexa, Google Assistant и др.), Приложение, уебсайт или други мрежи, които се опитват да измерват нуждите на потребителите и след това да им помогнат да изпълнят определена задача като например бизнес сделка. Хотелски резервации, подаване на формуляри и др. Днес почти всички компании разполагат с чатбот за взаимодействие с потребителите. Някои от начините, по които компаниите използват чат ботове, са:

За предоставяне на информация за полета.

· За да свържете клиентите и техните финанси.

Като поддръжка на клиенти.

Възможностите са почти неограничени.

Историята на чатботовете датира от 1966 г., когато Weizenbaum изобретява компютърна програма, наречена ELIZA. Имитирах езика на психотерапевт от само 200 реда код. Все още можете да разговаряте с него тук: Елиза .

Най-общо казано, има два варианта на chatbots: базирани на правила и самообучение.

1. В подход базирано на правила, бот отговаря на въпроси, базирани на някои правила, които преди това са били обучени. Дефинираните правила могат да бъдат много прости или много сложни. Ботовете могат да обработват прости заявки, но не успяват да се справят със сложни.

2. Самообучаващи се роботи Те са тези, които използват някои подходи, базирани на машинно обучение и определено са по-ефективни от роботи, базирани на правила. Тези ботове могат да бъдат от два други типа: базирани на възстановяване или генеративи.

i) В модели, базирани при възстановяване, chatbot използва определени евристики, за да избере отговор от библиотека с предварително дефинирани отговори. Chatbot използва съобщението и контекста на разговора, за да избере най-добрия отговор от предварително дефиниран списък със съобщения, които да даде. Контекстът може да включва текуща позиция в диалоговото дърво, всички предишни съобщения в разговора, предварително запазени променливи (например потребителско име). Евристиката за избор на отговор може да бъде проектирана по много различни начини, от условната логика, на която се основават правилата, или класификаторите на машинното обучение.

ii) Генеративни ботове те могат да генерират отговорите и не винаги отговарят с един от отговорите от набор от отговори. Това ги прави по-умни, тъй като те вземат дума по дума от заявката и генерират отговорите.

Предишни изисквания

Приема се работещо познание на scikit библиотека и NLTK. Ако обаче сте нов в NLP, пак можете да прочетете статията и след това да проверите ресурсите отново.

Областта на изследване, която се фокусира върху взаимодействията между човешкия език и компютрите, се нарича обработка на естествен език или накратко NLP. Той е на пресечната точка на компютърните науки, изкуствения интелект и изчислителната лингвистика [Wikipedia].

NLP е начин, по който компютрите анализират, разбират и извличат значение от човешкия език по интелигентен и полезен начин. Използвайки NLP, разработчиците могат да организират и структурират знания за изпълнение на задачи като автоматично обобщение, превод, разпознаване на име на обект, извличане на взаимоотношения, анализ на настроението, разпознаване на реч и сегментиране на теми.

NLTK: Кратко въведение

NLTK (Natural Language Toolkit) е водеща платформа за създаване на програми на Python за работа с данни на човешки език. Осигурява лесни за използване интерфейси към над 50 основни и лексикални ресурси, като WordNet, заедно с набор от библиотеки за обработка на текст за класификация, токенизация, деривация, етикетиране, анализ и семантични разсъждения, обгръщащи библиотеки от НЛП с индустриална сила.

NLTK е наречен „прекрасен инструмент за преподаване и работа в компютърната лингвистика с Python“ и „невероятна библиотека за игра с естествен език“.

Обработка на естествен език с Python предоставя практическо въведение в програмирането за езикова обработка. Препоръчвам тази книга на хора, които са нови в NLP с Python.

Изтегляне и инсталиране на NLTK

  1. Инсталирайте NLTK: стартирайте pip install nltk
  2. Тестова инсталация: стартирайте и 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 и сходство на косинусите вижте документа по-долу.