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

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

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 votes)

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

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

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
pomodor

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

Ваша оценка: Нет Средняя оценка: 5 (2 votes)

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

Ваша оценка: Нет
pomodor

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

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

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

Ваша оценка: Нет Средняя оценка: 5 (3 votes)

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

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
pomodor

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

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

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

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

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

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

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

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

Ваша оценка: Нет Средняя оценка: 5 (2 votes)

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

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
pomodor

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

Ваша оценка: Нет Средняя оценка: 5 (2 votes)
Отправить комментарий
КАПЧА
Вы человек? Подсказка: зарегистрируйтесь, чтобы этот вопрос больше никогда не возникал. Кстати, анонимные ссылки запрещены.
CAPTCHA на основе изображений
Enter the characters shown in the image.