алгоритм вычисления сходства между текстами - PullRequest
7 голосов
/ 27 августа 2010

Я пытаюсь оценить сходство между постами в социальных сетях, но не нашел хороших алгоритмов для этого, мысли?

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

Спасибо

Ответы [ 3 ]

4 голосов
/ 27 августа 2010

Ааа ... но "Я действительно люблю собак" и "Я действительно ненавижу собак" абсолютно одинаковы;), оба обсуждают свои чувства к собакам.Похоже, что вам не хватает шага:

  1. Запустите ваш алгоритм и получите общие тематические группы (то есть "чувства к собакам").
  2. Запустите ваш алгоритм снова,но на этот раз для каждой ранее «обнаруженной» группы, и пусть ваш алгоритм далее классифицирует их по подгруппам (т.е. «я ненавижу собак» / «я люблю собак»).

Если ваш алгоритм настраивается на основеего опыт (т. е. некоторое обучение). Затем убедитесь, что вы запускаете отдельные экземпляры алгоритма для первой классификации и новый экземпляр алгоритма для каждой подклассификации ... если вы этого не сделаете, вы можете закончитьнапример, вы обнаружите несколько групп, и каждый раз, когда вы запускаете свой алгоритм в тех же группах, результаты почти совпадают и / или ничего не меняется вообще.

Обновление

Apache Mahout предоставляет множество полезных алгоритмов и примеров кластеризации, классификации, генетического программирования, леса решений, разработки рекомендаций.Вот некоторые примеры классификации текста из mahout:

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

2 голосов
/ 30 августа 2010

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

http://dtminredis.housing.salle.url.edu:8080/EmoLib/

Приведенные выше предложения хорошо работают;)

1 голос
/ 27 августа 2010

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

Краткий ответ: для этого нет «хороших алгоритмов», только посредственные. И это очень сложная проблема. Удачи.

...