2010-08-14 54 views
3

我正在考慮一個項目,在該項目中,出版物的內容通過相關的公開可用的來自該區域人員的推文增強。但我怎麼能以編程方式找到相關的推文?我知道生成一個代表自然語言意義的結構幾乎是NLP的聖盃,但也許有一些工具可以用來至少縮小它的範圍?從Twitter狀態獲取意圖的工具?

或者,我可以使用井號標籤。但是這需要代表用戶做更多的工作。我對Twitter並不是很熟悉 - 大多數人是否使用hashtags(即使是小規模問題),還是依靠他們來切斷大量數據?

我也很想抓住Facebook的狀態(當然還有獲得海報的許可),並且在Facebook上hashtag的使用非常少見。

我可以使用簡單的關鍵字搜索來粗略地縮小字段,但這很可能需要人爲干預來確定哪些tweets應該實際上與內容一起發佈。

想法?這是否做過?

+0

也許你指的是文檔分類?http://en.wikipedia.org/wiki/Document_classification – tszming 2010-08-15 03:15:52

回答

0

偉大的問題。我認爲對於twitter來說,最好的辦法是使用主題標籤,因爲否則您需要創建算法或找到現有的算法來進行語言分析,並根據用戶輸入/反饋隨時間推移而改進。

對於Facebook,你可以做一些什麼bing實施一段時間回來。正如我在本文中所述: http://www.socialtimes.com/2010/06/bing-adds-facebook-and-twitter-features-steps-up-social-services/

我寫道:例如,搜索「NBA總決賽」將返回來自Facebook的粉絲頁內容,包括來自本地電視臺的帖子。所以如果你想增加與NBA相關的內容,你可以做一個與Bing提供的類似的搜索功能 - 以蜘蛛爲搜索引擎索引它們的方式搜索公共可用的粉絲頁內容。我不是一名開發人員,所以我不確定錯綜複雜,但我知道可以完成。

此外,您還可以顯示來自發布到「所有人」的用戶的熱門共享鏈接,該鏈接將彙總爲所有非粉絲頁面內容。我不確定這是否僅限於發佈到「所有人」和/或「流行」,儘管我會這樣認爲 - 但是您可以仔細檢查一下。

希望這有助於

0

與NLP的問題不是算法(雖然這是一個問題)問題是資源。有一些開源的淺析解析工具(這就是你需要獲得的意圖),你可以使用它,但解析數千或數百萬條推文在計算機時間將花費大量財富。

另一方面,就像你說的,並非所有的推文都有標籤,並且沒有任何承諾,它們將是相關的。

也許您可以使用關鍵字搜索的混合來過濾出一些可能性(具有最高關鍵字密度的可能性),然後使用更深入的數據分析選擇最高的1或2.這將使計算機資源保持最低你應該可以得到相關的推文。

5

有兩種簡單的方法可以找到與您的內容相關的推文。 首先將這視爲受監管的文檔分類任務,藉此您將訓練分類器以使用特定預定主題標籤集來標註推文。然後,您可以使用這些標籤選擇適合您將要增強的任何內容的推文。如果您不喜歡使用預先確定的主題集,則另一種方法是根據自己的內容根據它們的語義重疊對推文進行評分。然後,您可以顯示語義重疊最多的頂部n推文。

監督文檔分類

使用監督的文檔分類會要求你有標有一組您要使用的主題微博的訓練集。例如,

鳴叫: NBA總決賽震撼標籤:體育
鳴叫:的Google現在允許使用Ruby! 標籤:編程
鳴叫:吃午飯標籤:其他

如果你想收集的訓練數據,而不必與主題手動標記的鳴叫,你可以使用#標籤主題標籤分配給鳴叫。主題標籤可以與主題標籤相同,或者您可以編寫規則將具有某些主題標籤的推文映射到所需的標籤。例如,標記爲#NFL#NBA的推文可以全部被分配標籤sports

一旦按主題標記了推文,您可以使用任意數量的現有軟件包來訓練將標籤分配給新推文的分類器。一些可用的軟件包包括:

語義重疊

使用與您內容的語義重疊來查找推文t避免了需要標註的訓練集。估計您的內容與您得分的推文之間的語義重疊的最簡單方法是使用vector space model。要做到這一點,請將您的文檔和每條推文表示爲與向量中的每個維度對應的單詞的向量。分配給每個矢量位置的值表示該單詞對文檔含義的重要性。估計這種方法的一種方法是簡單地使用單詞在文檔中出現的次數。不過,通過使用類似TF/IDF這樣的東西,您可能會獲得更好的結果,這些結果可以增加罕見項和減少更常見項的權重。

將內容和推文表示爲向量後,可以通過將內容的矢量的cosine similarity和每個推文的矢量進行比較,通過它們與內容的語義相似度對推文進行評分。

沒有必要自己編寫任何代碼。您可以使用Classifier4J之類的軟件包,其中包含使用向量空間模型對文檔相似性進行評分的類。

更好的語義重疊

一個你可能會使用每個維度一個詞向量空間模型碰到的問題是,他們不這樣做的處理意思大致相同事物的不同單詞的好工作。例如,這樣的模型會說The small automobileA little car之間沒有相似性。

還有更復雜的建模框架,如latent semantic analysis (LSA)latent dirichlet allocation (LDA),可用於構建文檔的更抽象表示被相互比較。這樣的模型可以被認爲是不基於簡單單詞重疊的評分文件,而是根據單詞的基本含義的重疊。

在軟件方面,軟件包Semantic Vectors爲文檔相似性提供了一個可擴展的類LSA框架。對於LDA,您可以使用David Blei's implementation或斯坦福主題建模工具箱。

+0

非常全面和完整的答案。做得好。 – 2010-09-20 20:20:12