2009-06-02 4 views
3

With your perfect help here Я уже выяснил, как вычислить трендовые темы (стандартная оценка + плавающая средняя).Тематические термины: термины с одним словом vs слагаемые термины

Моя следующая проблема: у меня есть термины (состоящие из 1-3 слов) в моей базе данных, связанные со временем их упоминания. Но трендовые темы всегда состоят только из слов с 1 словом, поскольку одна часть термина ВСЕГДА упоминается чаще, чем полный термин. Пример: Вчера 3 статьи новостей были о «Бараке Обаме» и сегодня 148. Тогда «Барак Обама» растет, конечно. Но «Барак» также растет, и поэтому это тема.

Как включить длину слова при вычислении трендовых тем? Я не хочу использовать другой алгоритм, я полностью доволен алгоритмом выше. Могу ли я умножить счет всех двухсловных терминов с 1,5 или около того?

Подробный пример: Мои основные тенденции: Microsoft, Китай, Хиллари Клинтон, Даллас Маверикс. Я хотел сказать, что «Хиллари Клинтон» и «Даллас Маверикс» никогда не занимают ни одного или ни одного 2, потому что это термины с двумя словами. «Microsoft» и «Китай» - это слова с одним словом, поэтому они всегда оцениваются лучше. Есть ли возможность решить эту проблему?

Надеюсь, вы можете мне помочь. Заранее спасибо!

ответ

1

Говоря об Обаме, да, вы можете. :)

Возможно, вы можете проверить, находятся ли ваши высокие тренды в более низких тенденциях до вывода их. Я хотел бы попробовать somehing так:

Пример: у вас есть

  1. Обама
  2. Air France
  3. Бараку
  4. A330
  5. Барак Обама
  6. ...

Если список, который вы хотите вывести не слишком долго (например, вы принимаете только 100 лучших баллов), вы выбираете только те, которые не содержатся в других, возможно, добавив 50% бонус к той, которая содержит остальные. (Возможно, вам придется взять 150 первых значений, затем сделайте свое лечение, удалив избыточность, которая может прийти к чему-то вроде 110, затем обрезайте 10 последних значений, чтобы вернуть свои 100 значений.)

«Барак Обама» содержит как "Барак" и "Обама", чтобы вы могли дать ему бонус в размере 100%, и ваш список может стать:

  1. Air France
  2. Барак Обама
  3. A330
  4. ...

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

EDIT:

Или же, если вы действительно не перечислить лучшие результаты, но вычислить только один за другим, вы можете разделить вашу тенденцию вычислить обдумывал сумму его компонентов (например, «Барак Обама»» «Барак Обама» + 0,5 * «Барак» + 0,5 * «Обама»).

+0

спасибо! Очень просто, но это работает! :) К сожалению, он охватывает только один случай. В другом случае мои главные тенденции: Microsoft, Китай, Хиллари Клинтон, Даллас Маверикс. Я хотел сказать, что «Хиллари Клинтон» и «Даллас Маверикс» никогда не занимают ни одного или ни одного 2, потому что это термины с двумя словами. «Microsoft» и «Китай» - это слова с одним словом, поэтому они всегда оцениваются лучше. Есть ли возможность решить эту проблему? – caw

+0

Я не уверен, почему это так. С помощью метода, который я дал вам (добавив часть тренда из подкомпонентов), вы можете достичь такого же эффекта, как и постоянный мультипликатор, за исключением того, что мультипликатор зависит от тенденций субкомпонентов. Возможно, увеличение мультипликаторов будет делать трюк, но вы должны быть осторожны, чтобы не пытаться слишком сильно сгибать данные. Вы можете отдать должное неправильным тенденциям (глупый пример: кто-то, чье имя MacDonald выиграет слишком много от банкротства MacDonald's и получит более высокую тенденцию, чем просто из-за его имени). И здесь не осталось места для такой удачи. – glmxndr

+0

Недостаточно репутации, чтобы прокомментировать ответ AviD, поэтому я делаю это здесь: формула AviD (почти) правильная. Вы объясняете тенденцию (Барак Обама), потому что она содержится дважды: один раз в тренде (Барак) и один раз в тренде (Обама) (подсчет всех случаев «Барака» содержит все вхождения «Барака Обамы», то же самое для подсчета «Обамы», , поэтому дважды «Барак Обама»). Но, чтобы быть полностью точным, вы должны также вычесть все вхождения «Обамы Барак», который также содержится дважды. Проблема заключается в том, что AviD также учитывает тенденции от «Эхуда Барака» (неправильно использовавшиеся для примера) и «Мишель Обама». – glmxndr

0

Основываясь на ответе @ subtenante, формула, которую вы должны искать, должна основываться на факт, что «Барак Обама» всегда содержит «Барак», а также «Обаму» ...
так простая математика показала бы, что это должно быть:

"Barack"s + "Obama"s - "Barack Obama"s 

... предполагая, конечно, что ваши частичные условия присутствуют только в правильном контексте, индивидуально или объединены до полного срока, то есть «Барак» всегда будет ссылаться на «Барак Обама» (а не напр. «Эхуд Барак»).

+0

Спасибо! Почему вы вычтите значение «Барак Обама»? – caw

+0

Как объяснил @subtenante в своем комментарии к его собственному сообщению, я вычитаю «Барака Обаму», потому что он уже включен дважды - его подсчитывали один раз за тренд («Барак») и второй раз за «Обаму». Тем не менее, @subtenante также сделал хороший момент о редком «Обаме Бараке». Как я также отметил, суб-термины могут появляться и в других направлениях, помимо «Барака Обамы», которого вы ожидали. – AviD

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