Кирилл "msado" Готовцев (msado) wrote,
Кирилл "msado" Готовцев
msado

Categories:

заметки про альтернативный поиск

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

Вот есть немного времени, расскажу, что собственно наваялось, глядишь кому интерено будет.

Вообще говоря, делали мы вовсе не поиск. Делали мы другое и то что делали в общем имеет степень готовности существенно более высокую чем поиск. Делали ту самую пресловутую неонку из стругацких. Пониматель.

Как оно устроено. У нас есть технология, которая преобразует википедию в таксонометрию. Если по-русски - в иерархические структуры понятий. Нет, это не тезариусы, это таксонометрии. Таксонометрии создают некоторую "матрицу понятий". Причем одно понятие, это упаси бог не слово, да?

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

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

Как это работает на практике?

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

Или

Вы можете загрузить в систему гору прессы и попросить разложить ее по странам. Система будет относить к России или там к Франции тексты, не имеющие в своем составе указания на страну, но имеющие указания на географическую привязку, относящуюся к стране. То бишь упоминание краснодарска или Голодрищенска достаточно, чтобы новость была отнесена к Российским.

Там есть еще всякие занятные вещи, типа "вот тебе текст, найди мне еще про это же" и всякое такое.

Довольно любопытные результаты система показывает на массиве текстов, которые невозможно в подавляющем большинстве отнести к ярковыраженной тематике. Это, как понятно, блоги, поток выдачи ЖЖ - это было практически первое, чем мы озаботились. 92% - это тексты условно не о чем, вернее из них сложно выделить классифицируемую составляющую. Однако и тут нам нашлось интересное, пусть в жж-шных постах мало конкретики, зато у разных групп блоггеров есть устойчивый язык. За несколько дней мы научили систему различать эмо, готов, падонкав и еще кого-то. Много не возились, в основном проверяли сможем ли в принципе. Смогли.

Поехали дальше.

Поразмыслив на тему написанного мы осознали, что по сути сделали до кучи и поисковую систему, но систему работающую в существенно другом режиме, чем существующие.

Систему, которая ищет по понятиям. :-)

Как оно устроено в чистом виде?

Берем запрос пользователя и ищем его в матрице. После того как оно найдено N раз в матрице, выдаем листинг документов, отнесенных к этому месту матрицы + дополняем его навигацией по матрице-же.

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

1. То что мы сделали НЕ СЕМАНТИКА. Более того, то что мы сделали демонстрирует, что семантика как таковая - тупиковая ветка развития смыслоанализа. Пример Ашманова про тезариус как раз подчеркивает, что пока мы остаемся в поиске в пространстве слов, а не смыслов, то любое усложнение набора уводит вас в глубокую жопу. Мы не работаем со словами, мы работаем со смыслами и, некоторым образом, со структурой знаний. Ага, они выражены в словах. Мы в курсе.

Это в частности объясняет, почему в анализе не используется частотный анализ. Нам не важно, сколько раз будет сказано слово "халва". Хоть один, хоть сто, текст от этого не станет более сладким. А вот упоминание соотнесенных с халвой слов и понятий, например про еду, про восток, про арахис, про вкус и проч - будут делать текст более "халвосообразным".

2. Основной фокус того что мы сделали лежит вне идеи "задай вопрос, получи ответ". Ну то есть эта идея лишь малая часть того, о чем мы думали. Мы же думали в первую очередь о ПРАКТИКЕ использования поисковой системы. А сейчас практика такова, что человек ткнувшийся в поиск первый раз и не получивший сразу необходимое оказывается "выброшен" из системы. Он может смотреть на выдачу и изобретать, как бы видоизменить запрос, чтобы получить что-то более подходящее в результатах, он пробует, снова и снова, а система в целом рассматривает его каждый новый запрос как новый.

Нет никакого шанса, что если вы спросите наш поиск чтото типа "кошка" - и он выдаст вам чудом именно то, что вы хотели получить. Потому что система - не телепат.

НО

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

Да, чем больше слов будет в запросе, тем лучше будет выдача.

НО

Да, в чистом виде это не позволит вам, например, найти конкретный документ в котором как вы точно помните было написано "я напишу тебе письмо, простое, но со смыслом". То есть поиск по понятиям, вообще говоря, не тождественен поиску по словам. Он не то чтобы точно лучше, он немного про другое.

Вот как-то так.

Что можно сделать из этой штуки?

Ну сам поиск, наверное мы его постепенно и сделаем, но это конечно существенно много работы, в том виде, как оно есть сейчас оно недотягивает.
Потом всякие автоматические классификаторы. Если у вас есть вагон контента, то мы можем его автоматически разкладывать на туеву хучу категорий. Можно своих, а можно приводить к вашему рубрикатору. Особенно занятно должно былть для СМИ, мы например различаем происшествие вообще, ДТП и ДТП со смертельным исходом. Это по глубине классификации, чтобы вы понимали. Библиотеки можно проструктурировать итп.
Потом можно делать сильно нелинейные вещи, которые изначально были за границами наших интересов. Например динамические семантические поля по тематикам. Да, динамические. Да, по 32 тысячам уже определенных тематик. Да, автоматом ;-). Наверное дальше будет больше, потому что инструменту в целом пофиг откуда жрать таксономии, лишь бы была структурно описана площадка анализа.

Ну и любимый вопрос всех-превсех. А где можно поюзать и посмотреть? Ответ простой: всем-вообще-всем - нигде. Ребята, оно живет на одном сервачке, на нем же строит матрицированный индекс, под нагрузку сотен любопытных экспериментаторов оно не расчитано. Если у вас есть как-то структурированный интерес к системе и вы можете объяснить зачем оно вам - напишите, мы дадим доступ. Остальным придется ждать, пока мы слегка заработаем денег на то, чтобы сделать из этого публичный сервис. пока же оно способно обслуживать только b-t-b сектор. Ну или у нас купят продукт на базе технологии. Итп.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 121 comments
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →