2010-12-03 2 views
4

Предположим, у меня был список слоганов (короткие, многословные фразы), и люди проголосовали за те, которые им больше всего нравятся, и я хотел бы оценить, какие слова, если таковые имеются, сделал некоторые лозунги более популярными, чем другие. Какой был бы лучший способ достичь этого? Моя первая мысль заключалась в том, чтобы просто найти все уникальные слова в наборе лозунгов и оценить каждое из них как среднее число голосов всех лозунгов, содержащих указанное слово, но частота должна также входить в игру некоторым образом, я думаю, так что должно быть справедливо следующее:Алгоритм определения того, какие слова делают фразу популярной

  • Если слово а происходит только лозунг, который получил наибольшее количество голосов, и Слово B происходит только в лозунге, который получил второе-самое, слово а является более «популярность приносящего»
  • Однако, если Word A встречается только в лозунге высшего ранга, а Word B встречается как в лозунгах второго, так и в третьем слове, Word B должен побеждать, поскольку он подталкивает больше лозунгов к вершине.
  • Однако одно из слов Word A в верхнем слогане должно по-прежнему превзойти три появления Word B в других лозунгах, если они, скажем, в средней или нижней половине пакета (то есть, в подсчете голосов должен быть баланс голосов и частота).

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

+0

Люди на http://metaoptimize.com/qa узнают об этом подробнее. – Frank 2010-12-04 00:48:53

ответ

2

Это вопрос машинного обучения. Вы пытаетесь изучить модель из контролируемых данных. Для этого вы можете запустить простой алгоритм, подобный Perceptron или SampleRank (pdf):

Сначала вы определяете функции, которые применяются к словам в слогане. Возможности могут быть разделены между словами, например. особенности слова "мир" может быть:

  • "мир",
  • "существительное",
  • "абстрактно-существительное",
  • "короткое существительное",
  • «начинается с р»,
  • "заканчивается «S'-звук",
  • ...

фИ Первая особенность «мир» - это уникальная функция, которая срабатывает только на «мир», тогда как другие функции могут срабатывать и по другим словам.

Каждая функция имеет вес (выше - лучше). Таким образом, у вас есть вектор-функция и вектор-вес. Это позволит вам назначить вес (оценка) любому слогану (просто сумма всех взвешенных объектов, которые срабатывают над словами в слогане). Все веса инициализируются до 0.0.

Теперь вы начинаете обучение:

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

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

Как правило, вы действительно не добавляете или не вычитаете 1.0, а eta times 1.0, где eta - скорость обучения, которую вы можете установить экспериментально. Как правило, он выше в начале обучения и постепенно снижается во время тренировки, так как ваши веса движутся в правильном направлении. (См. Также стохастический градиентный спуск.) Чтобы начать работу, вы можете просто установить его на 0,1 в качестве константы.

В этой процедуре учтены слова остановки («the», «of», ...), поскольку они должны встречаться одинаково часто в хороших и плохих лозунгах (и если они действительно этого не делают, вы также узнаете об этом).

После тренировки вы можете вычислить оценку для каждого слова в соответствии с узнанными характеристиками.

0

Как насчет Bayesian inference?

+0

У меня сложилось впечатление, что байесовский вывод в основном касается конкретных доказательств, подтверждающих или не подтверждающих гипотезу. Мой вопрос, здесь, не особенно да-или-нет, то есть, это не так много «это популярность-пропаганда или нет?» а скорее: «Каков рейтинг того, насколько эти слова способствуют популярности?» Вы все еще думаете, что байесовский анализ применим в этом контексте? – 2010-12-03 22:41:25

+0

Хм, теперь похоже, что вы смотрите на что-то вроде PageRank, которое Google использует (или использовал для использования?). Это в основном делает график терминов, связанных релевантностью. По сути, термины с большинством соединений имеют значение. Я согласен, что Байесян не дал бы вам релевантности терминов в этом случае. Вы могли бы использовать его, чтобы вывести отношения, о которых вы не знаете. – SRM 2010-12-03 23:29:25

0

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

  1. Устраняет стоп-слова (общие слова) (http://en.wikipedia.org/wiki/Stop_word)
  2. нормализуют и проистекают слова (http://en.wikipedia.org/wiki/Stemming)
  3. Вычислить частоты нормированы слово и голосов
  4. Order нормированных слов по голосам/частота
+0

Это близко, я думаю. Устранение стоп-слова немного сложно, потому что (и я должен был быть более ясным здесь), вероятно, это не просто прекратить слова, которые я хочу устранить, но, скорее, любые слова, которые больше не встречаются в этом наборе данных, чем они вообще. Это просто догадка, но я подозреваю, что результаты будут более интересными, если я сосредоточусь на статистически достоверных словах. Может быть, я мог бы сравнить этот набор данных с некоторым эталонным корпусом и в противном случае следовать вашему подходу? – 2010-12-03 22:44:52

Смежные вопросы

 Смежные вопросы