2009-06-02 59 views
3

With your perfect help here我已經找到了如何計算熱門話題(標準分數+浮動平均值)。熱門話題:單詞條款與組合條款

我的下一個問題:我有我的數據庫中的術語(由1-3個字組成)與他們被提及的時間相關聯。但是熱門話題總是隻有1個字詞,因爲術語的一部分總是比整個術語提到的要多。例如:昨天有3篇新聞文章是關於「奧巴馬」,今天是148.然後「巴拉克奧巴馬」當然在上升。但是「Barack」也在不斷上升,因此這是熱門話題。

當我計算趨勢主題時,如何包含術語的長度?我不想使用另一種算法,我對上述算法非常滿意。我能將所有兩個單詞的分數乘以1.5嗎?

詳細示例:我最大的趨勢是:微軟,中國,希拉裏克林頓,達拉斯小牛。我想說,「希拉裏克林頓」和「達拉斯小牛隊」從來沒有排名第一或第二,因爲他們是兩個字的術語。 「微軟」和「中國」是一個單詞,所以它們總是排名更好。有沒有可能解決這個問題?

我希望你能幫助我。提前致謝!

回答

1

談論奧巴馬,是的,你可以。 :)

也許你可以測試你的高趨勢是否包含在較低的趨勢之前輸出它們。我會嘗試somehing這樣的:

例子:你有

  1. 奧巴馬
  2. 法國航空
  3. 奧巴馬
  4. A330
  5. 奧巴馬
  6. ...

如果你想輸出的列表不會太長(比如你只拿到100分最高分),那麼你只選擇那些不包含在其他列表中的列表,也許會給包含其他列表的列表添加50%的獎勵。 (你可能需要採取150個第一個值,然後做你的治療去除冗餘,可能會像110一樣,然後修剪最後10個值,以獲得100個值。)

「Barack Obama」contains這兩個 「奧巴馬」 和 「奧巴馬」,所以你可以給它100%的獎金,並且您的列表可能會成爲:

  1. 法國航空
  2. 奧巴馬
  3. A330
  4. ...

希望它不會改變你的算法太多,但實際上你可以在輸出之前在最後插入這個處理。

編輯:

否則,如果你真的不列出最好的成績,但只計算一個接一個,你可能分裂的趨勢來計算其組件的思考總和(如「奧巴馬」」奧巴馬「的+ 0.5 *」巴拉克「的+ 0.5 *」奧巴馬「)

+0

非常感謝!很簡單,但它的作品! :)不幸的是,它只包含一個案例。另一種情況是我的主要趨勢是:微軟,中國,希拉裏克林頓,達拉斯小牛隊。我想說,「希拉裏克林頓」和「達拉斯小牛隊」從來沒有排名第一或第二,因爲他們是兩個字的術語。 「微軟」和「中國」是一個單詞,所以它們總是排名更好。有沒有可能解決這個問題? – caw 2009-06-06 12:40:00

+0

我不知道這是爲什麼。用我給你的方法(從子組件中增加一部分趨勢),除了乘數取決於子組件的趨勢外,可以達到與常數乘數相同的效果。也許增加乘法器會做到這一點,但你應該小心,不要試圖彎曲太多的數據。你可能會誤以爲是錯誤的趨勢(愚蠢的例子:一個名字是麥克唐納的人從麥克唐納的破產者那裏受益太大,並且因爲他的名字而獲得更高的趨勢)。沒有空間在這裏說話,所以祝你好運。 – glmxndr 2009-06-06 18:54:26

0

建立在@ subtenante的答案,你應該尋找的公式應該基於事實上,「巴拉克奧巴馬」總是包含「巴拉克」,還有「奧巴馬」...
如此簡單的數學表明,它應該是:

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

......當然,假設您的部分詞語只存在於正確的語境中,無論是單獨使用還是與整個詞語相結合 - 即「Barack」將始終指「Barack Obama」(而非例如。 「Ehud Barack」)。