Рубрика «Семантика» - 10

В продолжение статьи «Сравнение технологических подходов к решению задач по извлечению данных» рассмотрим технологии, наиболее часто упоминающиеся в связи с понятием «искусственный интеллект» в контексте поисковых задач. На habrahabr.ru опубликовано множество статей на эту тему, например, об использовании нейросетей в поиске Яндкса, в которой говорится что «Фактически, формулу ранжирования пишет машина (получалось около 300 мегабайт)», о глубоком обучении, о вероятностном программировании и т.д.

Хотелось бы рассмотреть данную тему с точки зрения философии логики, определить границы и проблемы применимости и немного порассуждать о возможности решения с помощью нейронных сетей задач машинного обучения?
В качестве основы для наших рассуждений мы можем выбрать любую из приведенных ниже технологий. Ввиду того, что наиболее часто упоминается нейронные сети, их и возьмем. Набрав что-то про нейросети в поисковой строке, мы получим огромную массу статей о «невообразимых» успехах, достигнутых нейронными сетями. Это и сообщения о новых аппаратных решениях, например, и спиновые электронные устройства, и заявления IBM, о том что нейронные сети по анализу слов смогут выявлять психические болезни, и «супергеройское» зрение, и множество других чудес науки. Поэтому, попробуем сделать краткий обзор текущего положения дел.
Читать полностью »

Что поправить в верстке перед выпуском в продакшн? - 1

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

Читать полностью »

В текущей статье я определю следующие термины: объект, состояние, событие, операция, функция. Я расскажу о том, как можно представить себе их. В качестве мета-метамодели для моделирования мы возьмем теорию множеств, а не MOF. Почему именно ее? Потому что это единственный на сегодняшний день известный способ моделирования, который имеет математическую основу, границы применимости которого нам хорошо известны, достаточно широки и обоснованы.

Строгое определение понятий: объект, состояние, событие, бизнес-операция и бизнес- функция - 1

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

При написании этой статьи я сделал все возможное, чтобы сделать ее простой для чтения. Однако, в ней содержится очень сложный и нетривиальный вывод — почему методы моделирования операций, которые мы встречаем почти в каждой нотации, не дают нам удовлетворения. Я не видел подобного анализа нигде, даже в книге Криса Партриджа, которую я очень люблю: Business Objects: Re-Engineering for Re-Use. Поэтому я надеюсь, что статья будет легка и полезна одновременно.

Трудности в моделировании операций стандартными способами. Моделирование 4-объектов, постановка задачи - 1

Все модели, которые мы строим, должны так или иначе моделировать 4-х мерное пространство-время, потому что именно так мы представляем себе окружающий нас мир.
Например, что такое болт? Это 4-х мерный объект, который ограничен в пространстве-времени определенными границами. Для моделирования болта существуют нотации, которые моделируют эти границы. Например, чертеж болта моделирует поверхность, которая ограничивает 3-х мерный объем. Добавив к этому чертежу еще 6 координат, зависящих от времени, мы получим модель поверхности 4-Д пространства — времени, которая моделирует болт.

Однако, что такое операция? Это — тоже 4-х мерный объект, который также, как и болт ограничен определенными границами в пространстве и во времени. Правда, представить себе операцию как 4-объект намного сложнее. Существуют три причины, по которым нам сложно это сделать.
Читать полностью »

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

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

  1. Эмпирический опыт – это множество (класс) ситуаций, которые расцениваются данным субъектом, как похожие друг на друга (субъект ронял предметы). Новые ситуации классифицируются субъектом как похожие на предыдущие и пополняют класс однотипных ситуаций.
  2. Паттерн ситуаций (тип ситуаций, или модель ситуаций), который присутствует в сознании у субъекта и в котором записано, что всякий раз, когда случится подобное, тело падает на землю. Паттерн связан с эмпирическим опытом, или с классом ситуаций.

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

Однако, для человека, родившегося в космосе и всю жизнь проведшего в невесомости, факт того, что камень падает на землю, не будет являться очевидным, и потребует объяснения.
Постановка задачи: Объекты учета и моделирование отношений между ними - 1
Читать полностью »

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

private double fBm(Vector2D v, int y)
{
    double result = 0f;
    double freq = Frequency;

    for (int i = 0; i < Octaves; ++i)
    {
        result += NoiseFn(permutation, v * freq) * Amplitude;
        freq *= Lacunarity;
        Amplitude *= Gain; // <-- Вот тут.
    }

    return result;
}

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

Читать полностью »

Для создания модели предметной области сначала строится модель наших представлений. Описание наших представлений содержится в метамодели (например, в нотации BPMN). Метамодели, в свою очередь, строятся на основе мета-метамодели. Однако, наши представления имеют очень непростую структуру, которая до сих пор не имеет формального описания. Поэтому построение метамодели и мета-метамодели сильно затруднено. Попытку описать эту структуру предприняли греки, когда придумали основы логики. Способы нашего мышления изучали математики, когда столкнулись с парадоксами, пытаясь построить основы своей науки. Казалось бы, прогресс есть, но по какой-то причине, остановившись на формальном описании инструментов логического вывода, математики не сделали попытку применить полученные наработки к моделированию нашего мира (наверно, потому что для них – это прикладная задача, не вызывающая интереса).

Трудности на пути создания «универсальной» метамодели для моделирования предметных областей - 1

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

Да, это пока не широко распространено. Обработка естественного языка еще недостаточно развита и не интегрирована с разработкой. Также, как нет и удобных способов интегрировать код с поиском или виртуальным помощником (таким как Siri). Голосовые команды имитируют GUI пути (щелчок-открыть-щелчок). Семантический Веб пытается познакомить приложения со смыслом, но все еще не может достигнуть широкой аудитории. Behavior-driven development (BDD) полагается на DSL (предметно-ориентированный язык), который близок к естественному, но этого все еще недостаточно, чтобы научить ваш код говорить.

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

  • который будет адаптирован к естественному языку
  • которому будет легко обучить широкий круг людей
  • который может выступать связующим звеном между естественным языком и компьютерными сущностями
  • который сможет создавать окружение в как можно большем количестве областей программной инженерии
    Читать полностью »

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

На сегодняшний день существует огромное количество материалов описывающий те или иные техники решения задач семантического анализа текстов. Это и латентно-семантический анализ, SVM-анализ, «перенос-свертка» и многое другое. Писать очередную статью про обзор и сравнение конкретных алгоритмов – это значит впустую потрать время.

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

В рамках нашего рассуждения я осознанно постараюсь уйти от каких-либо терминов и устоявшихся выражений, ибо как говорил У. Куайн – термины это всего лишь имена в рамках онтологий не имеющие никакого практического значения для решения задач логики и понимания чего-либо в частности.[1] Поэтому, с его позволения, будем опираться на единичные дескрипции Рассела, а проще говоря, давать полные описания в ущерб существующим устоявшимся терминам.

Читать полностью »

Все, кто работал с seo-продвижением ни раз слышал утверждения: “Сайту нужно семантическое ядро (СЯ)”, “Нет семантического ядра – нет и продвижения”, “СЯ – это основа сайта” и т.д. и т.п. Вскоре начали говорить, что СЯ – это, конечно, хорошо, но нужна ещё и “карта релевантности” (она же карта перелинковки, карта вхождения ключевых запросов). Но с определением этого понятия творится какая-то неразбериха. Даже подробные гайды по составлению карты релевантности от ведущих агентств ясности не добавляют. Сложно понять как с тем, что они показывают в примерах можно работать системно.

В статье мы поделимся нашим видением этого инструмента и опытом разработки.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js