有兩種簡單的方法可以找到與您的內容相關的推文。 首先將這視爲受監管的文檔分類任務,藉此您將訓練分類器以使用特定預定主題標籤集來標註推文。然後,您可以使用這些標籤選擇適合您將要增強的任何內容的推文。如果您不喜歡使用預先確定的主題集,則另一種方法是根據自己的內容根據它們的語義重疊對推文進行評分。然後,您可以顯示語義重疊最多的頂部n推文。
監督文檔分類
使用監督的文檔分類會要求你有標有一組您要使用的主題微博的訓練集。例如,
鳴叫: NBA總決賽震撼標籤:體育
鳴叫:的Google現在允許使用Ruby! 標籤:編程
鳴叫:吃午飯標籤:其他
如果你想收集的訓練數據,而不必與主題手動標記的鳴叫,你可以使用#標籤主題標籤分配給鳴叫。主題標籤可以與主題標籤相同,或者您可以編寫規則將具有某些主題標籤的推文映射到所需的標籤。例如,標記爲#NFL
或#NBA
的推文可以全部被分配標籤sports
。
一旦按主題標記了推文,您可以使用任意數量的現有軟件包來訓練將標籤分配給新推文的分類器。一些可用的軟件包包括:
語義重疊
使用與您內容的語義重疊來查找推文t避免了需要標註的訓練集。估計您的內容與您得分的推文之間的語義重疊的最簡單方法是使用vector space model。要做到這一點,請將您的文檔和每條推文表示爲與向量中的每個維度對應的單詞的向量。分配給每個矢量位置的值表示該單詞對文檔含義的重要性。估計這種方法的一種方法是簡單地使用單詞在文檔中出現的次數。不過,通過使用類似TF/IDF這樣的東西,您可能會獲得更好的結果,這些結果可以增加罕見項和減少更常見項的權重。
將內容和推文表示爲向量後,可以通過將內容的矢量的cosine similarity和每個推文的矢量進行比較,通過它們與內容的語義相似度對推文進行評分。
沒有必要自己編寫任何代碼。您可以使用Classifier4J之類的軟件包,其中包含使用向量空間模型對文檔相似性進行評分的類。
更好的語義重疊
一個你可能會使用每個維度一個詞向量空間模型碰到的問題是,他們不這樣做的處理意思大致相同事物的不同單詞的好工作。例如,這樣的模型會說The small automobile
和A little car
之間沒有相似性。
還有更復雜的建模框架,如latent semantic analysis (LSA)和latent dirichlet allocation (LDA),可用於構建文檔的更抽象表示被相互比較。這樣的模型可以被認爲是不基於簡單單詞重疊的評分文件,而是根據單詞的基本含義的重疊。
在軟件方面,軟件包Semantic Vectors爲文檔相似性提供了一個可擴展的類LSA框架。對於LDA,您可以使用David Blei's implementation或斯坦福主題建模工具箱。
也許你指的是文檔分類?http://en.wikipedia.org/wiki/Document_classification – tszming 2010-08-15 03:15:52