Обсуждение идеи: Семантическая машина или умный бот

Добрый день!

Хочу спросить у вас вашего мнения. :)

Идея: Написать программу которая позволяет анализировать текст и потом хранить этот текст в виде машинных знаний.

Простым языком — вы скармливаете семантической машине текст, например:

Вася — футболист. Ему 20 лет. Спортом он заниматся 10 лет. Он чемпион Украины (2015 году) в составе команды «Динамо».

И потом вы сможете задавать вопросы боту типа:

* Кто Вася по профессии?
* В какой команде играл Вася?
* Сколько лет Вася заниматся спортом?
и т.д.

Отличительная особенность данной машины от ботов NanoSemantic, Siry, Eugeny. В том, что:
1. Она принимает для обучения абсолютно производные тексты написанные человеком. Не используя лексические токены(как мне показалось Наносемантик по такому принципу работет).
2. Программа будет поставляется в виде скомпилированных приложений (первые версии только под Linux), и устанавливаться на машины клиентов.

Вопросы:
1. Будет ли данный продукт кому интересен?
2. Какой «степенью ума» должен обладать бот, что-бы вы были готовы за него платить деньги?
3. Имеет ли Ваш бизнес задачи, для решения которых подошла бы данная система?

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Лет 40 назад Марвин Минский, один из корифеев искусственного интеллекта, один из авторов идеи персептрона да и вообще искусственных нейронных сетей, основатель лаборатории Информатики и Искусственного интеллекта Массачусетском технологическом институте и пр.пр.пр. написал вот такую книгу: «Фреймы для представления знаний» (www.litmir.me/br/?b=134682) в которой очень подробно рассмотрел подход, который присутствует в заглавном сообщении данной темы. Причем с элементами реализации, глубоким анализов, в нескольких вариантах и пр. Потом с этой идеей еще лет 20 носились десятки лабораторий в США и не только, было много шуму и публикаций, а потом .... тема заглохла. Я бы прежде чем заниматься темой, попытался бы хотя-бы разобраться, а почему собственно? В чем были причины, при том, что другие проекты взлетели. А то может оказаться, что вы ломитесь в дверь, за которой тупик.
Ну или увериться, что у вас есть такие знания. умения и навыки, которые позволят преодолеть те проблемы, которые возникли у предшественников.

Собственно сейчас пилю свой небольшой продукт. Связанный с ботами которые могут поддержать диалог. Нужно собрать несколько тысяч желающих пообщаться с ботами (пока они еще глупые).

Если у кого есть желание поговорить с будующими жильцами нашей планеты то прошу подписаться на бета тест.

asterai.com/...​mpaign=gather_subscribers

Также буду очень рад возможности пообщаться 15-20 минут с людьми — управлецами сервисов на которых могут быть задействованы разговорные боты.

Да, этот продукт безусловно будет интересен. Прямо сейчас призовой фонд соревнования с примерно таким смыслом — $80к: www.kaggle.com/...llen-ai-science-challenge
И лучший результат там пока очень далек от уровня человека (54% правильных ответов для тестов с 4мя вариантами ответов). Правда, в этом конкретном соревновании есть ряд ограничений — но эта задача в целом не решена совсем, любой прогресс в ней будет оценен.

А вообще, если хотите продавать ваше решение, то нужно сузить тематику. Слишком универсальное решение трудно доносить до людей, если только вы не в Ентерпрайзе впариваете солянку из баззвордов.

Например, virtual site assistant: по заданной базе товаров и их описаний построить бота, который отвечает на вопросы о наличии товара и их характеристиках.

Например, virtual site assistant: по заданной базе товаров и их описаний построить бота, который отвечает на вопросы о наличии товара и их характеристиках.

Что то подобное мы и хотим реализовать. Только что бы брало не только по базе. Но еще и по отзывам, описаниям товаров, и просто статей на сайте. :)

Поищите готовые решения. Я уверен что видел на Хабре обзор готового продукта, который разбирал документы на естественном языке, и было это года 3-4 назад. Не уверен, что они предоставляли «человеческий» язык запросов.

Если есть живые конкуренты, которые предлагают очень близкий функционал, и работают над ним несколько лет — я бы не стал играть в догонялки. Если есть пересечение по части идеи, и рабочее уникальное решение по другой — возможно, стоит объединиться.

Рекомендую ознакомиться поближе с материалами вот этого чувака: karpathy.github.io

А вы учли сколько времени и денег вы на это потратите?
Да. Времени уйдет много :(
Такую задачку группой в 1-3 человека не потянуть в приемлемые сроки (хотя бы лет за 5).
Я это понимаю, у нас уже был проект с глобально поставленой задачей. И мы на своем опыте узнал что значит делать «подобные вещи».
Поэтому сейчас мы страемся максимально упростить задачу. Что бы добится результата за 6-8 месяцев. И при этом результат имел комерческую ценность.
1. Будет ли данный продукт кому интересен?
буде
2. Какой “степенью ума” должен обладать бот, что-бы вы были готовы за него платить деньги?
Це не рівень семантичної машини. Потрібно робити синтаксичний аналізатор. Семантика це проста статистика коренів слів.
3. Имеет ли Ваш бизнес задачи, для решения которых подошла бы данная система?
має, якщо ви таке зробите для топ 50 мов світу.
Потрібно робити синтаксичний аналізатор
У подобных задач лексический разбор и графопостроение — не самая сложная задача. При условии что:
1. пользователь пишет текст без ошибок, растсавляет более менее правильно точки с запятыми.
2. Исходный текст поступает только 1 раз и не меняеется по ходу работы программо
Куда сложнее делать “умные” запросы в полученный граф (а он не маленький).
У подобных задач лексический разбор и графопостроение — не самая сложная задача.
Для англійської мови так, ну може ще для кількох мов це реалізовано, а далі? А арабська, китайська і т.д.?

А в чем отличие граматтического разбора? О_о
Насколько я знаю в каждом языке есть глаголы, существительные, предлоги, прилагательные?
В чем проблема то?

Ведь подобные программы пишутся на основе семантических правил. А не «хардкода».

ви жартуєте? Це проблема, навіть якщо ви будете мати орфографічні словники для різних мов із зазначенням частини мови для кожного слова, але насправді і того немає.

Машина не може розрізнити, «figure» це іменник, що означає діаграма, чи це дієслово, що означає зображати. В російській мові «голубой» це прикметник — колір, чи іменник — гомосексуаліст?

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

Семантичні правила, це коли ви маєте багато статтей де слово Вася часто зустрічається зі словом футбол, м’яч, Шевченко, ворота, пенальті, то машина може визначити, що Вася футболіст.

Так понимаю, это нужно для полноценного логического осмысления?
А зачем это программе? Программа анализирует структуру данных, и на основе построенного графа дает ответы. Если ответ не лежит в пространстве описуемым графом. То программа говорит «я не знаю решения.».

Поймите у меня нет ресурсов что бы пилить такой продукт на более чем 1 языке. С полноценным осмыслением естественного текста.
И даже на одном языке, нет возможности сделать полный разбор(всей «картины мира»).

Только узкие предметные области.

Ок, нехай для однієї мови. Що ви маєте на увазі під графом?

Що ви маєте на увазі під графом?
Проанализированные данные. Граф — описывает зависимости, между объектами.

"

зависимости, между объектами
це визначення де підмет, присудок, додаток, означення, обставина?

Можно сказать и так. На самом деле граф (который строим мы ), это большая неоднородная сущность со большим количеством вариантов реализации. Это только назвается граф. Физически это компонент состоящий из множества узлов каждый узел имеет свою реализацию, но все узлы обладают единым интерфеймсом. Но это уже ньюансы реализации а не обсуждение идеи.

Идея: Написать программу которая позволяет анализировать текст и потом хранить этот текст в виде машинных знаний.
Насколько я понял идею, вам нужно создать семантическую сеть. Насколько я помню из универа, у нас были пару работ на эту тему. Посмотреть стоит на реализацию Word Net.
Вася — футболист. Ему 20 лет. Спортом он заниматся 10 лет. Он чемпион Украины (2015 году) в составе команды «Динамо»
Над такой сетью можно делать множество манипуляций. И из предложенного текста уже имея широкую сеть можно много чего еще узнать, например что «Вася — человек», «Какие были чемпионаты в Украине в 2015 году», «Кто играл с Васей в футбол», «Какая фамилия у Васи и где он живет», и т.д.

Идеи ничего не стоят.

Задача представления семантических онтологий для отдельно взятого естественного языка крайне сложна. Если у тебя есть что-то готовое и нетривиальное в этом направлении, то предмет обсуждения есть; нет — нет. ABBYY Compreno, скажем, пишут уже 4 года,- имея готовую команду лингвистов и программистов с лингвистическим бэкграундом.

Касательно твоего вопроса — библиотеку расчёта семантического расстояния я бы у тебя купил прямо сейчас.

А что конкретно должна делать такая библиотека? Может уже есть готовые решения.

Делать текст language agnostic, т.е. синонимы, переводы и переводы синонимов должны быть близки к исходному слову. Чтобы, например, «math, mathematics, математика» означали одно и то же и трактовались одинаковым образом.

Примеры практического применения — теги постов на форуме, жанры музыки на last.fm, скиллы на linked.in.

Могу разработать такое на заказ, но мне кажется, ты ищешь недорогое решение.

Для конкретного домена, например, «музыка», решается легко. Для универсального варианта — не вполне ясны границы возможных доменов.

Я предпочёл бы готовое решение: цена лицензии смущает меньше, чем стоимость разработки. И я предпочёл бы его прямо сейчас: потратить время я могу и своё.

Что касается доменов, то, к сожалению, приходится работать с огромной онтологией без внятных ограничений (опять же, рассмотрим многословные теги постов).

видел гдето похожий проект для универов. описание курсов расклыдваются на рдф- триплеты, триплеты складываются в хранилище, потом к выбранному курсу из хранилища по кейвордам (или как то по другому) выбираются рекомендации или ответы на вопросы.

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

проблема экспоненциального роста сложности
Она не только в прологе у нас до этого был другой проект (пробный). Мы на нем набили кучу шишек. И только тогда когда я понял что сложность стала приростать экспоненциально, когда мы стали транслировать предлоги в «логические связи».
Теперь мы
1. Продумываем абсолютно новую архитектуру (ни как не похожую на старую)
2. Вот этот пост, топик, я создал для того что ответить на вопрос, «а стоит ли так рисковать?».
Ведь не факт что новый проект стартанет...

Стоит или не стоит, это зависит от того сработает ваш метод или нет.

Есть язык Пролог

Язык Prolog — это примитивный алгоритм унификации и встроенный поиск в глубину. И всё.

Проблема решаемая с применением императивной парадигмы

Парадигмы не решают проблем вычислительной сложности. Не надо писать чушь.

Не стоит чепушить если не совсем в теме. Экспоненциальный рост дает рост вариантов перебора. Вычисление понятия типа «следующий» императивно может здорово сократить перебор.. И вообще любую функцию от параметра X с целым значением можно прочитать как высказывание «для любого X существует целое значение...». На практике некоторые ветви принципиально исключаются программистом

Для начала, Prolog Тьюринг-полон, потому сокращение перебора на нём, очевидно, не менее реализуемо, чем на любом императивном языке; поиск с отсечением, в частности, в него встроен на уровне базовой семантики.

любую функцию от параметра X с целым значением можно прочитать как высказывание «для любого X существует целое значение...»

Можно. Это называется изоморфизмом Карри-Говарда. Для того, чтобы интегрировать в язык логику сильней логики высказываний (т.е. ввести кванторы) система типов языка должна поддерживать зависимые типы. Это уже не про Prolog, а про Agda, Coq, Epigram, Idris, и иже с ними.

Вважаю, що в контексті даного обговорення можна розмістити ще посилання на проект IBM Watson: en.wikipedia.org/wiki/Watson_(computer (в інетренті ще можна знайти їхні публікації з описами алгоритмів та моделей)

Да. Я слышал/читал про Ватсон, вот только позволяет ли он подключаться к сервисам. И давай ответы на «бытовые» вопрос? Которые волнуют людей в контектсте конкретно сервиса?

да :) - только сначала нужно его натренировать, что не такое уже и тривиальное занятие (если интересно получить что-то полезное). А ответ на вопрос — попробуй, но я бы советовал написать что-то «простое» для начала , например просто штуку которая сможет сказать какие документы похожи между собой, желательно с вероятностью > 99% (ведь никому не нужен бот который будет часто говорить белеберду). В теории это должно быть чуть проще чем поставленная в начале.

Правильный совет, попробую его переформулировать (надеюсь, будет полезно еще и в таком ключе его высказать). Поставленная задача действительно глобальна и пэтому даже трудно понять, в каком именно виде ее можно продать, будь она реализована. Вот товарищ предложил вполне себе конкретную задачу, которая не так глобальна, но весьма полезна практически. При этом, если ее решать «правильно», то и исследования будут идти в правильном направлении — приближать разработчиков к решению глобальной задачи.

сравнение похожих документов делается с помощью Алгоритма Шинглов.
Там всё просто.

Там все не просто :). Мы говорим не о похожих последовательностях, а о похожих смыслах. Т.е. (очень грубо) нужно понимать что «я работаю в И.Т», «я программист», «моя работа писать код», «пишу на джава», «программирую на бейсике» — это все очень близкие, симантически, вещи. Шинглов он не про то.

Это лексика, а надо семантика.

Только один вопрос: а как программа собирается отличать правду, ложь, наглую ложь и статистику? Собственно говоря, это и людям-то не по зубам. Если осилишь — будешь самым богатым человеком на планете.

Как-то так

Только один вопрос: а как программа собирается отличать правду, ложь, наглую ложь и статистику?
Это не задача для семантической машины. Это задача для «детоктора лжи».

Ну тогда мир создал Пyтин, а ты фашист. Но если задать вопрос Пyтин — кто...

А если серьёзно, то врут все. Притом врут даже в технической документации. Выловить информацию — это задача понимания целостной картины мира, связи между объектами, притом связи вероятностной. Иными словами, без искусственного интеллекта к вопросу даже не подходи.

Если же брать поисковую машину, она использует естественный интеллект. Но и она врёт как сивый мерин, предоставляя пользователю выполнить окончательную фильтрацию результата.

PS. Примерно такую штуку поставили на Prom.ua — и теперь продавцам выставляются счета на сотни тысяч «релевантных» показов, но живому человеку найти там товар уже нереально.

Алексей, ты берешь какие-то крайности...
Не ужели ты в своем интренет магазине(или другом сервисе) будешь пытатся напискать машину ложными данными?

В посте указано. Что машина обучается человеком. А данные она получает в виде обычных статей.

Как раз наоборот. Добыть инфу без ложных данных у тебя не выйдет, её нет. А значит что твоя машина, не имея к ним даже примитивного иммунитета — как примитивные люди, начнёт верить в бога, в её случае — в связь между данными. Хотя единственная связь — это человеческая модель, которая принята модной на момент обучения.

Простой пример: Солнце встаёт на востоке — это правда?
Правильный ответ: И да, и нет. Если мы говорим о планировке помещений, то да. Если о предсказании погоды, то нет.
Если даже в столь простом вопросе нельзя провести грань между абсолютно разными ответами «да» и «нет», то кому же принесёт пользу твоя машина?

И вот ответ на вопросы «кому» и «насколько ценную» — будет ответом стоит ли создавать ещё одну семантическую машину. Или лучше взять удочку и пойти на рыбалку.

Алекс — это наверное твой псевдоним, а настоящее имя Тони Старк.
Потому что только в фантастических фильмах — один человек может сотворить чудо технологию. Задача крайне интересная, как только сделаешь прототип с рабочим ядром- считай- жизнь удалась.
Анализ неструктурированных данных, извлечение знаний из текста, natural language processing and extract information- это часть науки ИИ. Есть множество иследований и (полу)готовых решений.

Будет ли данный продукт кому интересен?
Само по себе ядро- думаю будет интересно IT гигантам — вроде гугла, IBM
Для Saas модели- нужно движок запросов к данным- что то наподобии sql to knowledge base.
Тогда — я бы с удовольствием- воспользовался бы продуктом.
Какой «степенью ума» должен обладать бот, что-бы вы были готовы за него платить деньги?
Степенью ума- средненького аналитика данных. Для начала- этого будет достаточно- чтобы выйти на рынок.

Спасибо! За ответ! Дельно...

Посмотрите WolframAlfa. Например
www.wolframalpha.com/...ge country over the world
(или даже так: www.wolframalpha.com/...at is the meaning of life )
Там же на сайте вольфрама есть несколько подсказок на тему того, кому и для каких задач может быть интересно подобное решение...

Спасибо! Интересный контент.

Підписатись на коментарі