Искусственный интеллект оценивает интерес к статье еще до ее написания

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

SEO и искусственный интеллект

  1. Экспортировал все заголовки с Liberatum за 8 лет. Там их больше 25 тыс.
  2. Высчитал среднее количество просмотров в день для каждого.
  3. Построил частотный словарь слов из всех заголовков.
  4. Отфильтровал мусор (стоп-слова и низкочастотные).
  5. Использовал библиотеку FANN и обертку ruby-fann для создания нейронной сети. Каждое ключевое слово — это отдельный input. 1 — слово присутствует, 0 — отсутствует. На выходе популярность (точнее, ее логарифм, отмасштабированный в [0,1]).
  6. Далее сетка обучалась и тестировалась.
  7. PROFIT!

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

Круто? Нет! Я не хочу перебирать варианты заголовка в поисках удачного. Я хочу, чтобы искусственный разум сам предлагал мне темы дня написания статей (в идеале пускай бы он сам и писал их, но пока это недостижимо по техническим причинам). Интуиция подсказывает, что можно подавать случайным образом слова и простым перебором отыскивать комбинации с высоким выходом. Но тут есть две проблемы: 1) заголовок не будет связанным (скорее это ключевые слова, которые рекомендуется включить в заголовок); 2) пространство вариантов достаточно большое. Если размер словаря n, а заголовок состоит всего из трех слов, то вариантов для перебора будет n*(n-1)*(n-2). При скромном размере словаря в 1000 слов, вариантов будет чуть меньше миллиарда. Работать с такими объемами невозможно. И тут пора вспомнить о марковских цепях. Дело в том, что слово не может быть вставлено в контекст случайным образом. Мы всегда можем вычислить вероятность появления одного слова по его соседу или цепочке соседей. И можем заранее сказать, какие слова никогда не соседствуют друг с другом, поэтому и нет необходимости эту комбинацию проверять через нейронную сеть. Говоря проще, человек оперирует не словами, а устойчивыми словосочетаниями. Вот их-то и нужно помещать в словарь вместо отдельных слов и подавать на вход сети. Количество вариантов для перебора сильно сокращается за счет сокращения словаря.

Готовлюсь реализовать эту идею и обязательно поделюсь результатами. Web-приложение для желающих поиграться тоже, скорее всего, будет.

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

Оценка: 
5
Средняя: 5 (5 оценки)

Комментарии

Использовал библиотеку FANN и обертку ruby-fann для создания нейронной сети

а под питоном есть что то похожее, не в курсе?

Оценка: 
Средняя: 5 (1 оценка)

Этого добра полно под любой язык. Под Python куча оберток. Есть даже родная на сайте FANN.

Оценка: 
Средняя: 5 (2 оценки)

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

Оценка: 
Пока без оценки

Эх, парсер атаковал своего же хозяина. Хотел написать вместо пайтона и пасер выпилил камент. :)

Спасибо jQuery за возможность оставаться матерщинником. ;)

jQuery для обхода матерного фильтра

Оценка: 
Средняя: 5 (3 оценки)

Приветсвую ! Очень нравится Ваш ресурс.Только недавно начал использовать свободное по и ОС то есть — полный нуб ) Будте добры пояснить -откуда столько ненависти к питону ? Если разложите по полочкам — буду очень благодарен) а обоснование преимуществ руби перед питоном — вообще вызовет восторг. Подскажите нубу с какого языка начинать ...

Оценка: 
Средняя: 5 (1 оценка)

откуда столько ненависти к питону

Столько — это сколько? Что-то я не замечал за собой никаких эмоций по отношению к этому языку, которым не пользуюсь.

а обоснование преимуществ руби перед питоном

Нету таких. PHP, Python и Ruby — одного поля ягоды. Если выбирать между ними, то никакой разницы нет. Есть высшая лига: C++, Java, C#. Преимущества любого из них перед Ruby могу описать весьма детально.

Подскажите нубу с какого языка начинать

Смотря какие цели. Программировать для себя и в свое удовольствие — Ruby или Python. Что больше понравится. В перспективе зарабатывать? Тогда лучше начинать сразу с тяжелых языков, но приучающих мыслить и писать правильно. Java хорошо подойдет. Осилите сначала Джаву, ООП и паттерны — будете неплохим программистом на любом языке.

Очень нравится Ваш ресурс.

Спасибо! Приятно это слышать! :)

Оценка: 
Средняя: 5 (2 оценки)

если ии получит над человеком власть то человек станет просто букашкой в мире!

Оценка: 
Средняя: 5 (1 оценка)

Почему "если"? Рано или поздно ИИ превзойдет человека. Почти все профессии окажутся ненужными. А без труда начнется процесс обратного превращения в обезьяну. С ИИ нужно быть аккуратным.

Оценка: 
Средняя: 5 (2 оценки)

Комментировать

Filtered HTML

  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <strike> <code> <h2> <h3> <h4> <h5> <del> <img>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.