Pull to refresh

Comments 21

Сразу интересно — а у вас еще никакой поисковик не спрашивал технологию, чтобы ее в своем поисковом движке применять?
Эта информация была бы слишком избыточной для поисковиков. Но главная проблема состоит в производительности: Compreno занимается полным разбором каждого предложения, что очень накладно с вычислительной точки зрения. Сегодня применять подобные решения в поисковиках общего назначения выйдет слишком дорого (или долго). У специализированных поисковых машин, при этом, нет нужды в огромной онтологии.
>> главная проблема состоит в производительности
Вот интересно, как зависит время выполнения разбора от увеличения количества правил?
И не растет ли то же время в зависимости от пополнения онтологии Компрено?
От увеличения количества правил особенно не зависит, потому что все довольно неплохо проиндексировано и отлажено (система извлечения информации разрабатывается не первый год). То есть теоретически можно написать очень неэффективную библиотеку правил, но практически а) есть некоторые механизмы защиты от этого и б) онтоинженеры стараются так не делать.

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

При правильной реализации, время анализа предложения в значительной мере зависит от количества слов в нём, но такие решения всё равно не работают быстро: полный разбор документа тяжело распараллеливается из-за явления кореферентности. Бывают задачи, где время не так критично: системы общения, системы понимания текста, а есть задачи, где каждая миллисекунда на счету.
А поиск по уже разобранному тоже долго? Разбор интернета ведь фоном идет, и тут скорость не так важна.…

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

На мой взгляд, гораздо важнее уловить профиль пользователя и угадать его сиюминутную потребность, чем тратить память и процессорное время на полный разбор документов. В качестве подтверждения можно посмотреть тематику пленарных докладов на ведущих конференциях последних лет по информационному поиску: ECIR 2014, ECIR 2015.

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

Облака — всего лишь способ предоставления ресурсов. В соседнем комментарии я писал, что процесс такой обработки сложно распараллелить, а значит, горизонтальное масштабирование вряд ли поможет делу.
Я в шоке! Что значит, «как они повысят полезность поиска?»??? Искать ровно то что нужно, а не то, что содержит слова из запроса — это то, что нужно людям от интернета. Пока приходится мириться с недоразвитостью поиска, и придумывать как бы селективнее ключевые слова подобрать, а потом все равно перелопачивать горы шлака в выдаче.

Угадать потребность — это помощь в вводе запроса. Тоже важно, но малоперспективно чисто по сути, ибо в голову не залезть пока. Но, положим, угадали. А дальше что? Именно семантические сведения из документов нужны, чтоб именно это угаданное вернуть пользователю.

Хоть nigma.ru пытается что-то такое делать, но там все ещё детский сад, а не классификаторы.

Про чувства компьютеров насмешили.

А параллелить анализ относительно легко, ибо каждая новая фраза приносит новое дерево связей фактов, которое нужно интегрировать в ранее сложившуюся картинку, другое дерево связей фактов. Ничего не мешает складывать деревья побольше, после того как они понаделаны параллельно по разным частям текста. Или сложены из деревьев поменьше.
Страшные штуки с помощью таких технологий делают: анализ настроений, манипуляция мнениями…
Вы написали:

Описанная выше система по сути представляет собой фабрику создания различных онтологий и соответствующих им моделей извлечения фактов и сущностей.


Насколько я понимаю технологию, из Compreno нельзя выделить онтологию под какую-то конкретную предметную область. И даже занимаясь парсингом технических документов всё равно приходится иметь в базе такие артефакты как «ковёр самолёт» и «иванушка дурачок».

Система извлечения фактов — да, согласен. Примерно как Томита-парсер, но с достаточно успешным снятием омнимии за счёт онтологий.
Примерно как Томита-парсер, но с достаточно успешным снятием омонимии за счёт онтологий — Да, но это далеко не единственное преимущество.

Еще есть гораздо более гибкая работа с вариативностью языка, свободой и богатством формулировок. Например, извлечение фактов из фраз типа «Вася купил ноутбук», «Вася, сняв деньги, купил ноутбук», «Вася, сняв деньги с карты Сбербанка, купил себе ноутбук» и «Вася снял денег с карты. Потом купил ноутбук», потребует довольно громоздких и хитрых томита-грамматик из-за линейности парсера. Да и написать их так, чтобы не зацепить лишнего, будет непросто. У нас же нужное поддерево будет неизменным.

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

Еще есть извлечение одних объектов с опорой на уже извлеченные другие.

Конечно, Томита — штука легкая, гибкая и удобная, но на преобразование естественного языка в некоторую машиночитаемую формальную структуру, хранящую смысл высказывания, она нисколько не претендует. А мы претендуем.
на преобразование естественного языка в некоторую машиночитаемую формальную структуру, хранящую смысл высказывания, она нисколько не претендует. А мы претендуем.


Построение простого синтаксического дерева также снимает омнимию и хранит смысл высказывания в машиночитаемом виде. Кстати, приведённые примеры как раз на синтаксическую разметку.

Можно привести пример, где синтаксический парсер спасует, а онтология позволит снять неоднозначность? мне на ум приходит только что-то вроде «он в дрова» и подобный сленг. А в нормальных текстах (технических, к примеру) есть эффект?

презентацию, где вы парсили отрывки технического текста для ТехИнвестЛаб — видел, но как раз онтологии там явно не проявлены.
Насколько я понимаю технологию, из Compreno нельзя выделить онтологию под какую-то конкретную предметную область

В Compreno есть универсальная семантическая иерархия, которая действительно цельная и единая (хотя и там есть отдельные прагматические классы по областям). Но это в самом парсере Compreno. А в нашей надстройке для извлечения информации, где мы моделируем онтологии и пишем правила, как раз можно выделить. Хотим – подключаем персон, хотим, не подключаем.

Т.е. во фразе «Иванушка-дурачок купил ковер-самолет» дерево с узлом-агентом с семантическим классом IVAN (потомок HUMAN_BY_NAME) из иерархии Compreno будет в любом случае, это правда. А вот персона с именем «Иванушка» из нашей онтологии, хранящей базовые сущности, может быть, а может не быть. И в факт покупки мы ее можем класть, а можем не класть. Это уже наш слой абстракции, на котором живут не классы из иерархии Compreno, а привязанные к деревьям информационные объекты.
Надо библию распасить, чтобы можно было искать по запросам типа «сколько людей истребил бог/сатана?», «сколько раз евреи полностью побеждали/геноцидили такой-то народ?»
Мы как-то пробовали немножко парсить древнегреческие мифы (на русском). Особенно весело было с преданием об Эдипе, где факты родства очень необычно выделялись, т.к. царь Эдип, как известно, женился на собственной матери.

чтобы можно было искать по запросам типа «сколько людей истребил бог/сатана?» — Да, и потом сделать крутое цифровое издание Библии в TEI с семантической разметкой и хорошим запросным интерфейсом. А что, неплохой проект в духе современных Digital Humanities.
Да, должен получиться отличный инструмент для анализа, думаю он породит много аналитических статей, для написания которых в былые времена требовась очень много усилий.
Следующий шаг будет анализ личностей по текстам, собираем все высказывания и поступки персонажа и создаём его характеристику (типа: молод, холост, придерживается радикальных анархических и фашистских взглядов), ну и биографию разной степени детализации.
У бога есть эпизод с потопом, сатану кажись переплюнет, если из рассмотрения не исключить.
В свое время американцы потратили немало денег на разработку языка описания онтологии IDEF5, который после публикации его спецификации в 1994 году стал доступен для свободного использования. Похоже, в Compreno он не использован. Не подошел?
Ну, все-таки выбранный нами OWL является современным стандартом W3C для описания онтологий, этот язык живет, развивается и поддерживается силами Консорциума. А про IDEF5 не очень понятно, в каком он состоянии, поддерживается ли кем-то и насколько вообще используется… То есть наверняка в мрачных подземельях Пентагона с ним что-нибудь делают, но это не тянет на отркрытое сообщество разработчиков и пользователей.

Просто сравните OWL Overview и сайт IDEF. Что выглядит более живым?
Не всё более живое — лучшее. Вы б по сути сравнили. Вдруг там такое, гениальное и непонятое массами?
Sign up to leave a comment.