Как устроен Чат-бот для анализа неструктурированных данных?

Что такое чат-бот?

Для начала определим, что такое бот! Бот – это некоторый программный комплекс для решения каких-либо задач, обладающий признаками искусственного интеллекта. К ним относятся: способность принимать решения на основе эмпирически полученных данных, понимать семантику данных, проводить анализ и выдавать оптимальное решение. Все слышали о ботах в компьютерных играх. Это небольшие библиотеки, встроенные (как в Stronghold) или настраиваемые (как в Counter Strike). Они анализируют математическую модель игры и получают решение, которое становится их стратегией. Другие боты – это виртуальные пользователи. Программа сама перемещает мышь по экрану, нажимает клавиши и выполняет прочие функции, присущие биологическому организму, сидящему перед монитором. Ещё одна разновидность ботов: чат-боты.

Чат-бот – это специальный бот, который позволяет вести диалог с человеком путём вычленения информации на основе определённых шаблонов поиска и приведения её к стандартизированному виду. При этом стандарт в каждом чат-боте задаётся по-разному. Семантический разбор естественного языка считается достаточно сложной задачей. Чтобы её облегчить, были придуманы шаблоны семантического анализа. Проще говоря, это некоторые алгоритмы, примененимые к тексту, которые возвращают наличие или отсутствие в нём определённого признака.

Чат-боты в основном используются для общёния с людьми в чатах, на форумах и пр. Однако некоторая их категория применяется для анализа текста и выявления в нём информации с последующим помещением её в реляционные БД.

Основные составляющие чат-бота

Любой чат-бот состоит из некоторых неизменных частей.

Во-первых, это блок разбивки текста. На данном этапе весь текст делится на смысловые единицы (модульные единицы). Каждая такая единица несёт определённую информацию, причём с остальным текстом она практически не пересекается. Единица разбивается на слова и полученный массив отправляется в следующий блок.

 

Во втором блоке разбор идёт уже внутри каждой модульной единицы. Происходит поиск по текстовым шаблонам, взятым из Базы Знаний (БЗ). Поочерёдно из БЗ читаются маски шаблонов и применяются к массиву слов. Если появляется совпадение, то запускается поиск значения найденного параметра. Если параметр найден, то он заносится в таблицу в реляционной базе данных.

В большинстве случаев для хранения Базы Знаний разбора используются иерархические хранилища информации. И на это есть веские причины. Во-первых, скорость выборка по определённым параметрам идёт быстрее в иерархических БД. Во-вторых, актуализацию информации намного удобнее производить через них. К тому же существует очень удобный формат XML, который умеет хранить данные о данных (метаданные) – как раз то, что нужно в базе знаний. Единственным недостатком XML является избыточность кода – плата за универсальность.

Обзор алгоритмов

Все алгоритмы чат-ботов для анализа неструктурированных данных можно классифицировать на следующие категории:

1. Алгоритмы выделения конкретной фразы

2. Алгоритмы поиска шаблонной информации

3. Алгоритмы полного семантического разбора текста

Первый тип алгоритмов наиболее популярен среди icq-ботов, mirc-ботов. В них на каждую введённую фразу пользователем имеется ответ в базе данных.

Второй тип алгоритмов уже подразумевает использование некоторого искусственного интеллекта. Анализируется не конкретные фразы, участки текста, а весь текст комплексно, при том достаточно гибко.

Третий тип – самый продвинутый. В настоящее время программ с полным семантическим анализом на российском рынке не существует. Эти программы “умеют” понимать суть дискуссии, учитывать предыдущие рекплики, имеют раздельные Базу Знаний естественного языка и концептуальную Базу Знаний внутреннего языка.

Предметной областью является универсальная иерархическая база данных (знаний), с помощью которой можно построить практически любую модели структуризации данных по данному тексту. Универсальная в данном контексте подразумевает возможность использования её для текста любой тематики. Логика разбора задаётся пользователем. Входной информацией является простой неформатированный текст. Выходной: таблица типа “Параметр-значение”.

Что представляет из себя анализ текста? В программе имеется иерархическая база знаний, которая задаёт правила семантического разбора текста. Чат-бот на её основе начинает выделять по специальным алгоритмам из неструктурированного текста значения для параметров предметной области и заносить их в таблицу типа «параметр»-«значение». Такие таблицы ещё называются ValueList’ы. Затем программа экспортирует полученные данные либо в Excel, либо в Access, либо в SQL-код для дальнейшего его введения в базу.

 

Комментарии закрыты.