Cybercortex. Система расширенного восприятия и мышления

Добрый день!

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

Ниже представлено описание первого модуля алгоритма Cybermean, «ядра» Cybercortex. Если описанная ниже логика будет представляться хабравчанам адекватной, то можно было бы продолжить описание и обсуждение модулей Cybermean и Cybercortex в целом. Также, в конце поста, помимо логики первого модуля, приводится изображение связи интерфейсов в рамках Cybercortex, в качестве дополнительного наглядного материала, характеризующего тематику проекта.

image



image

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

Так, мы делаем выборку синонимов и определений для текста 1. Затем делаем то же для текста 2 (далее оба текста, так как их может быть любое количество, обозначаются как текст N).

Затем мы можем сравнить полученные выборки.

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

Формирование выборок

Мы можем выполнить операцию поиска синонимов для каждого релевантного исходного слова текста N сперва в словарях синонимов того же языка (проведя соответствующие операции нормализации текста; в первую очередь, стемминга; на схеме 2 это отдельный столбец блоков с одинаковым окончанием L_number). Так же мы можем выполнить операцию поиска определений для каждого слова текста N. И затем провести операцию поиска синонимов для ключевых слов определений (ключевые слова вычленяются с помощью частотного [например, подобного LSA], морфологического и лексического анализа максимально возможного количества определений, представленных в словарях; ключевые слова и синонимы ключевых слов представлены на схеме 3.1 и 3.2).

При этом, мы можем перевести каждое релевантное слово на иностранный язык (с языка 1 на язык 2(N)) и только затем последовательно произвести те же операции, а также можем осуществлять перевод на иностранный язык (на язык 2(N)) слов, которые будут появляться в процессе операций с языком 1. Дополняя операции над языком 2 (N) самим по себе. То есть осуществлять перевод ключевых слов и их синонимов c языка 1 на иностранный язык (язык 2(N)) и затем, если некоторых слов там не оказалось бы без этой операции, выстраивать деятельность с учетом этих слов (данная логика представлена на схеме 4).

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

— *нерелевантными можно считать предлоги и подобные образования; «слова» далее в значении «релевантные слова»

image

image

image

image

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

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

image

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

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

image

image

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

image

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

При этом, если бы мы применили операцию нахождения ключевых слов к синонимам ключевых слов (т. е. в качестве итерации нового уровня), то мы бы увидели, что ребенок, мужчина и женщина — люди. А котёнок — животное.

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

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

Заключение

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

Данный принцип представляет собой первый модуль алгоритма Cybermean. На базе этого принципа возможна работа второго и третьего модуля Cybermean.

***

Изображение из материала, посвященного интерфейсам:

image

Сайт: www.cybercortex.org
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 6

    0
    А я таки пару «мужчина прыгает с мячом» и «женщина тренируется с мячом» отнёс тоже к «похожим». Вот только тут абстракция — и тот, и другая занимаются спортом.
      0
      Да, действительно, спасибо. Не обратил внимания и постольку этот [на самом деле очень важный] аспект примера не упоминается в посте. Сам же аспект «абстракции» учитывается логикой алгоритма. Что упомянуто как итерация нового уровня, когда будет выявлено, что мужчина, женщина, ребенок — люди. В принципе, можно сказать, что даже на итерации первого уровня мы имеем дело с абстракцией, обращаясь к категории «детеныш».

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

      Вероятно, здесь будет ситуация похожая на прочтение «мужчина прыгает с мячом» как «мужчина играет с мячом» [упомянутое в конце поста].

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

      Модуль 2 и 3 названного алгоритма направлен на более полноценное выявление категорий анализируемого текста. В них, помимо прочего, итерации модуля 1 применяются в значительном большем количестве, по возрастающей. Что, осуществляемое по определенным правилам (вся информация по логике их работе размещена на сайте проекта), как представляется, и позволяет выявлять используемые категории на достаточном уровне точности. И, соответственно, их общность или различность.

      Иначе говоря, в результате их работы можно будет выявлять не просто процентную степень близости текстов, но и видеть ее категориальное содержание. То есть, можно будет получить результат: они похожи, потому что «спорт» — объединяющая их категория.
        0
        *разумеется «резвящегося ребенка» и «играющего котенка»
        0
        Демо-то где?
          0
          Весьма любопытно. Пара замечаний.

          1. лучше не делать стемминг, а полноценную лемматизацию со снятием омнимии. Благо доступные синтаксические анализаторы позволяют это делать (Томито парсер, к примеру)
          2. Если взять выборку текстов на двух языках, но с одинаковым смыслом — например — художественные произведения оригиналы и переводы, и прогнать их Word2Vec, то слова, обладающие близким смыслом в разных языках, будут иметь близкие расстояния в метрике Word2Vec.

          А в целом, мне интересно узнать о проекте подробнее. где почитать?
            0
            Спасибо за предметные замечания.

            1) С одной стороны, да, можно сперва убирать омонимию [по поводу лемматизации — да, как раз это имеется в виду под «нормализацей», но как более контекстный процесс приведения слов к словарной форме]. Но не очевидно — нужно ли это делать? С точки зрения производительности — вероятно. Но с точки зрения результата?

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

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

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

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

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

            2) Да, очень интересный инструмент. Не исключено, что его можно [и может быть нужно] встроить в логику модуля 2 или 3 как дополнительный (параллельный) фактор анализа.

            Информация о проекте размещена на сайте www.cybercortex.org Но Вы вероятно уже и так увидели это в конце поста.)

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

          Самое читаемое