Введение в синонимайзинг текста

Здравствуйте и вновь добро пожаловать на занятия по теме «Обработка данных: обработка естественных языков на языке Python».

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

Синонимайзинг текстов – это нечто вроде святого Грааля для интернет-маркетологов.

Почему так? Интернет-предприниматели часто желают настолько автоматизировать бизнес, насколько это возможно, а для этого им необходимо найти способ заставить компьютер выполнять работу за них. Одной же из наиболее трудоёмких задач является создание контента, хотя в идеале, конечно, создавать контент должны люди, как, например, я создавал этот курс.

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

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

Хотя, конечно, в действительности синонимайзеры не всегда работают так хорошо, как это виделось в теории. Возьмём для примера описание сайта Udemy. Оно гласит: «Udemy.com является платформой, или рынком, для онлайн-обучения». Заменим теперь подчёркнутые слова найденными мною синонимами. Получится: «Udemy.com является подиумом, или форумом, для онлайн-исследований» – что, конечно, не имеет никакого смысла.

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

Триграммная модель

Итак, как же мы можем смоделировать вероятность возникновения слова через окружающие его слова?

Предположим, мы взяли цельный документ и промаркировали все имеющиеся слова w(1), w(2), …, w(N). Мы можем смоделировать вероятность любого слова w(i) в зависимости от окружающих его слов. В терминах теории вероятности это можно записать как P{w(i)|w(1), …, w(i-1), w(i+1), …, w(N)}. Конечно же, так никто не делает, поскольку если мы будем рассматривать каждое слово в документе, что лишь весь этот документ будет соответствовать этой вероятности.

Поэтому мы делаем нечто, похожее на то, что мы делали с марковскими моделями, где учитывались лишь ближайшие слова. В этом и заключается суть триграммной модели – мы будем создавать тройки слов, являющиеся комбинациями трёх последовательных слов в документе. Таким образом, мы будем использовать предыдущее и последующее слова, чтобы предсказать значение текущего. В математической терминологии это значит, что мы рассчитываем P{w(i)|w(i-1), w(i+1)}. Для этого создаётся словарь с предыдущим и последующим словами в качестве ключа, а затем случайным образом выбирается среднее слово. Это похоже на марковскую модель, только в марковских моделях и марковском предположении мы обычно рассчитываем P{w(i)|w(i-1)}, поэтому мы не будем называть триграммную модель марковской.

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

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

В следующей лекции мы уже приступим к написанию синонимайзера текста на языке Python!

Понравилась статья? Поделить с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: