Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CodeFest 2018. Артур Бекеров (IBM) — Knowledge-based Chatbots

CodeFest 2018. Артур Бекеров (IBM) — Knowledge-based Chatbots

Посмотрите выступление Артура: https://2018.codefest.ru/lecture/1370/

Knowledge-based виртуальные ассистенты способны обращаться в корпоративные источники данных для извлечения требуемой информации. Ценность таких ассистентов в том, что они предоставляют актуальную и полную информацию в различных отраслях (банковская, ритейл, страхование, нефтегазовая) В презентации будет рассмотрен опыт создания виртуального ассистента, который использует графовую базу Neo4j для хранения знаний о пациенте и онтологии болезней, извлеченных из документов. Документы содержат информацию о течении болезни, характеристиках и областях проявления. Будет рассмотрен процесс сбора и разметки данных, обучения модели на keras для извлечения именованных сущностей и интеграции с чат-бот платформой IBM на python.

CodeFest

April 09, 2018
Tweet

More Decks by CodeFest

Other Decks in Programming

Transcript

  1. CodeFest / 31 марта 2018 / © 2018 IBM Corporation

    Knowledge- based chatbots — Artur Bekerov Application architect [email protected]
  2. Содержание CodeFest / 31 марта 2018 / © 2018 IBM

    Corporation Задача 3 Архитектура 9 Подготовка данных 11 Обучение модели 12 Наполнение базы знаний 14 Развертывание 18 Развитие 21 2
  3. Задача CodeFest / 31 марта 2018 / © 2018 IBM

    Corporation Построить lifetime виртуальный ассистент, способный, с помощью уточняющих вопросов, выделить симптомы и определить наиболее подходящее заболевание, а также в дальнейшем записать к врачу. 3
  4. 4 CodeFest / 31 марта 2018 / © 2018 IBM

    Corporation By 2020, 25% of customer service and support operations will integrate virtual customer assistant technology across engagement channels, up from less than 2% in 2017. (Gartner)
  5. Актуальность CodeFest / 31 марта 2018 / © 2018 IBM

    Corporation On-premise Ценные и конфиденциальные данные не передаются Информация быстро меняется Здравоохранение, банковская, экологическая, юридическая отрасль - большие объемы неструктурированной информации, которая часто меняется Отсутствие онтологии медицинских знаний на русском языке (заболевания и симптомы) Отсутствие готовых систем моделирования для автоматизации диагностирования заболеваний в режиме диалога на русском 5
  6. Онтология 6 CodeFest / 31 марта 2018 / © 2018

    IBM Corporation Формализация знаний с помощью концептуальной схемы
  7. Графовая БД 7 CodeFest / 31 марта 2018 / ©

    2018 IBM Corporation Графы ориентированы на связи между объектами, и эти связи могут иметь разные характеристики. Можно хранить : • реляционные данные • документарные данные • сложные семантические данные • онтологию Пациент - [Имеет] -> Заболевание Заболевание - [Имеет] -> Симптом Заболевание - [Имеет] -> Лечение Симптом - [Наблюдается] -> Часть тела Доктор - [Специализируется] -> Заболевание Симптом - [Имеет] -> Характеристики
  8. Сложности при построении полной онтологии 8 CodeFest / 31 марта

    2018 / © 2018 IBM Corporation • Заболеваний более 5 тысяч • Симптомов, характеристик, областей проявления, а также их сочетаний еще больше • Симптомы разные в зависимости от времени течения
  9. Сервер приложений CodeFest / 31 марта 2018 / © 2018

    IBM Corporation Архитектура виртуального ассистента 9 Хранилище контекста Natural Language Understanding Чатбот платформа Извлечение именованных сущностей Классификация тематик Построение дерева диалогов Контроллер Интерфейс Голос Текст Запрос Ответ База знаний Онтология Интеграция с источниками Retrieve & Rank
  10. Pipeline обучения модели 10 CodeFest / 31 марта 2018 /

    © 2018 IBM Corporation Препроцессинг Word 2vec BiLSTM Классы Во время ходьбы может наблюдаться боль в X суставе . Документы
  11. CodeFest / 31 марта 2018 / © 2018 IBM Corporation

    Подготовка данных для обучения модели 11 Список симптомов: Воспаление горла Резкая боль в ухе Боль в стопе во время ходьбы Боль в тазобедренном суставе Обозначения цветов: Симптом Характеристика Часть тела Процесс или в результате действия Размеченные симптомы (Воспаление, SYMP), (горла, BODP) (Резкая, CHR) (боль, SYMP) (в, O) (ухе, BODP) (Боль, SYMP) (в, O) (стопе, BODP) (во время ходьбы, PROC) (Боль, SYMP) (в, O) (тазобедренном суставе, BODP)
  12. Обучение 12 CodeFest / 31 марта 2018 / © 2018

    IBM Corporation Двунаправленная LSTM позволяет заполнять пробелы, получая информацию не только по предыдущим словам, но и получая следующие слова.
  13. Результат работы модели 13 CodeFest / 31 марта 2018 /

    © 2018 IBM Corporation зуд перед употреблением еды Зуд B-SYMPTOM перед B-PROCESS употребление I-PROCESS еда I-PROCESS боль при кашле в левом мизинце ноги боль B-SYMPTOM при B-PROCESS кашель B-PROCESS в O левый B-BODYPART мизинец B-BODYPART нога B-BODYPART
  14. Наполнение базы знаний 14 CodeFest / 31 марта 2018 /

    © 2018 IBM Corporation USING PERIODIC COMMIT 500 LOAD CSV FROM ‘diseases.csv' AS line FIELDTERMINATOR ‘;' CREATE (:Disease {name: line[1]}) USING PERIODIC COMMIT LOAD CSV WITH HEADERS FROM "edges.tsv" AS csvLine FIELDTERMINATOR ‘;' MERGE (d:Disease {name: csvLine. disease}) WITH csvLine, d MATCH (s:Symptom {name: csvLine.symptom}) MERGE (s)-[:HAVE]->(d); disease.csv disease_id; disease 1; Дисбактериоз у новорождённых 2; Нервный срыв 3; Интоксикация 4; Печеночная энцефалопатия symptoms.csv symptom_id; symptom 1; агрессивность 3; агрессия 7; аллергический реакция edges.csv disease_id symptom_id bodypart_id 3 0 0 8 0 2 29 3 14 30 0 0
  15. Запросы для рекомендации симптома/заболевания 17 CodeFest / 31 марта 2018

    / © 2018 IBM Corporation Список заболеваний, у которых проявляется симптом MATCH result=(n:Symptom)<-[r:HAVE]->(d:Disease) WITH COLLECT(LOWER(n.name)) as symptoms, d, result WHERE ALL(part in ['кашель'] WHERE part IN symptoms) RETURN d MATCH result=(d:Disease)--(s:Symptom) WHERE d.name in ['Увулит', 'Фиброма'] RETURN DISTINCT result Список симптомов, проявляющиеся в заболеваниях
  16. CodeFest / 31 марта 2018 / © 2018 IBM Corporation

    Развертывание и запуск 18 Сервер приложений Контроллер Pytelegrambot Conversation graph Natasha NER Хранилище контекста Bolt Сервер моделей
  17. Выводы 20 CodeFest / 31 марта 2018 / © 2018

    IBM Corporation • Запустить и развернуть виртуального ассистента достаточно просто • Графовая БД подходит для хранения онтологии • Такой бот может работать в облаке так и на инфраструктуре заказчика • Выделение существенных фактов в русском тексте (договора, новости, анамнез) • Выделение новых, отсутствовавших ранее сущностей и характеристик
  18. Дальнейшее развитие 21 CodeFest / 31 марта 2018 / ©

    2018 IBM Corporation • Код на githubе • Механизм дообучения • Интеграция с speech-to-text, text-to-speech • Вебхуки для интеграции с корпоративными источниками
  19. 22 CodeFest / 31 марта 2018 / © 2018 IBM

    Corporation Knowledge- based chatbots — Artur Bekerov Application architect [email protected] IBM Cloud Промо-код на 6 месяцев http://ibm.biz/ibmcloudcoupon