Все сводится к тому, чтобы создать ассоциации между определенными характеристиками ваших сообщений и определенными тегами, а затем, когда вы нажимаете кнопку «опубликовать», проанализировать новое сообщение и предложить все теги, соответствующие характеристикам вашего сообщения.
Это можно сделать несколькими способами: от «полностью жестко закодированной» ассоциации до некоего «обучающего ИИ» ... и всего, что между ними.
жестко закодированные решения
Это самые простые алгоритмы для реализации.Сначала вы должны решить, какие характеристики вашего поста имеют отношение к тегированию (например: его длина, если вы пометите их «короткий» или «длинный», наличие фотографий или видео, если вы пометите их как «мультимедийный контент» и т. Д.).Однако самое очевидное - сосредоточиться на том, какие слова используются в сообщениях.Например, вы можете построить отображение следующим образом:
tag_hint_words = {'code-development' : ['programming',
'language', 'python', 'function',
'object', 'method'],
'family' : ['Theresa', 'kids',
'uncle Ben', 'holidays']}
Затем вы проверите свой пост на наличие слов в списке (код между [
и ]
) и предложите тег(слово перед :
) в качестве возможного кандидата.
Обычный подход состоит в том, чтобы давать «оценки», или, другими словами, ставить число, которое указывает на вероятность того, что данный тег является правильным.Например: если ваш пост будет содержать предложение ...
После месяцев программирования мы наконец-то уехали на летние каникулы в домик дяди Бена.Тереза и дети были в восторге!
... несмотря на наличие слова "программирование", программа должна указать семейство в качестве наиболее вероятного тега для использования, так как естьнамекает еще много слов.
Изучение ИИ
Одно из очевидных ограничений описанного выше метода заключается в том, что - скажем, однажды вы берете Java рядом с Python - вам, вероятно, придется изменить свой код ивключите такие слова, как "Java" или "оракул" тоже.То же самое применимо, если вы создаете новые теги.
Чтобы обойти это ограничение (и повеселиться!), Вы можете попытаться реализовать алгоритм обучения.Алгоритмы обучения - это те, кто совершенствует свой результат по мере того, как вы их используете (так что они действительно ... учатся!).Некоторые алгоритмы требуют начального обучения (многим спам-фильтрам и программам распознавания голоса требуется этот начальный «учебник»).Некоторые этого не делают.
Я абсолютно не эксперт по этому вопросу, но есть два распространенных ИИ: Наивный байесовский классификатор и некоторая разновидность Нейронная сеть .
Хотя страницы WP могут выглядеть пугающе, их удивительно легко реализовать (по крайней мере, в Python).Вот запись лекции на PyCon 2009 на тему « Простой ИИ с Python ».Я нашел это очень информативным и даже как-то вдохновляющим!:)
HTH!