Выбор алгоритма для получения интеллекта из сообщений - PullRequest
2 голосов
/ 04 декабря 2010

Я пытаюсь найти алгоритм, который я могу реализовать, чтобы генерировать «интеллектуальные» предложения людям, сравнивая сообщения, которые они отправляют, с сообщениями, отправленными их коллегами.

Например, Лицо A отправляет сообщение Лицу B, в котором говорится об Obj1. Если Лицо C отправляет сообщение Лицу D о Obj1, оно заметит, что они говорят об одних и тех же вещах, и может предложить Лицу A разговаривать с Лицей C.

Я реализовал сбор статистики для сбора упоминаний, которые имеют общие люди, но не знаю, какой алгоритм использовать для анализа.

Есть предложения? (Надеюсь, в этом есть смысл)

Ответы [ 2 ]

0 голосов
/ 04 декабря 2010

взгляните на алгоритмы кластеризации

и k-означает или k-ближайших соседей для быстрого запуска

Сколько данных у вас есть?Чем больше, тем лучше.Есть много подходов к этой проблеме.Например, вы можете предположить, что все пользователи в некоторой степени похожи друг на друга, и вам нужно найти для каждого пользователя наиболее похожие. Векторное пространство, косинусное сходство даст вам быстрые результаты.Дайте больше информации о том, чего вы хотите достичь.

0 голосов
/ 04 декабря 2010

Это та же самая проблема, с которой борется Твиттер.Вы можете получить работу там, если взломаете ее;)

При возвращении серьезной заметки можно использовать некоторые грубые меры (например, на основе эвристики), чтобы сделать что-то подобное, но с большим процентом ошибок,Как сказал Делнан в комментарии.

НЛП - верная ставка.Обратите внимание, что при использовании NLP также есть некоторый процент ошибок, но он гораздо точнее, чем любая эвристика, которую вы бы использовали.Если вы используете python, я бы предложил этот инструментарий, я использую его время от времени - NLP .

Для других языков я уверен, что есть пакеты, которые помогут вам в этом отношении.

ОБНОВЛЕНИЕ1: Если у пользователей есть возможность пометить свои сообщения (как это делает stackoverflow), вы можете подойти к этой проблеме, исключая NLP.Затем вы можете просто взять пересечение тегов обоих сообщений, чтобы увидеть, есть ли какая-то общность, и предложить несколько главных пунктов для общих элементов.

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

ОБНОВЛЕНИЕ2: По мере обновления Q - Поскольку у вас есть только некоторые конкретные ключевые слова / фразы, которые вас интересуют. Этот вид упрощает это.Вам нужно будет получить каждое ваше сообщение, разбить его на слова, а затем stem каждое слово.После завершения, пересекайте этот набор с набором ключевых слов, которые у вас есть.Вы получите набор (S1).Сделайте то же самое со вторым сообщением, вы получите набор (S2).Пересечь S1, S2.Если вы найдете что-то общее, бинго!Некоторая тема является общей для message1, message2.иначе ничего.

...