2013-03-16 54 views
-1

我正在研究將檢測推文流中的主題的系統/算法。如何表示生物克

我要做的是去掉停用詞,表情符號,網址等,我想代表鳴叫如下:

terms = (t1, t2, ..., tk) 
hashtags = (h1, h2, ..., hn) 
date = date of tweet 

,然後使用微博時的一些相似的措施應用一些聚類算法,結合這3個值。這會比這更復雜一點,因爲我會處理回覆(例如,當您回覆某條推文時,大部分時間您一直在討論相同的主題等)。

我不知道這是否會工作或沒有,但我看到到目前爲止的問題是,我不識別正克,所以奧巴馬出現的大部分時間在一起,在我的系統中它將是兩個單獨的條款(巴拉克奧巴馬)。

我的問題是:

我如何也代表雙克?我的意思是,它通常是如何建模的?

我想過有類似以下內容:

Tweet = `Some words here` 
terms = `[some, words, here, some words, words here]` 
... 

,但我不知道這是否是去正確的方式,如果我必須這樣做,對於每一個可能的雙字母等。

編輯

在我的數據庫,我會保存所有條款。我是否還應該將雙克存儲爲條件?

+0

什麼問題 - 如何生成bigrams(本網站已經回答了很多次),或者如何找到相關的bigrams? – 2013-03-16 19:37:25

+0

NLTK表示一個簡單的二元組元組。如果這是你的問題... – Jared 2013-03-16 19:39:09

+0

@larsmans **如何代表他們**。我也會對如何找到相關的東西感興趣,但這是另一個問題。我的問題是**如何表示bigrams?**好像它們是簡單的術語?看我的編輯。 – 2013-03-16 20:09:54

回答

3

假設你的一個文件是「快速的棕色狐狸跳過懶惰的狗」。

雙克和單克是:

the_quick 
quick_brown 
brown_fox 
fox_jumped 
jumped_over 
over_the 
the_lazy 
lazy_dog 
the 
quick 
brown 
fox 
jumped 
over 
lazy 
dog 

然後,您可以把您的所有文檔的所有唯一克的單詞矢量來分析,像這樣:

Document the_quick quick_brown ... lazy dog some_other_gram 

1  0.01  0.02    0.1 0.05 0.0 
2  0   0    0.12 0.0 0.1 
3  0.5  0.4    0  0  0 

其中單元格中的數字表示文檔中術語的計數,二進制計數,頻率或TFIDF分數。

然後,您可以比較文檔的相似性,或對它們進行聚類或分類。

+0

嗯..我已經知道雙克是什麼。它似乎不能幫助我太多。 – 2013-03-16 20:14:00

+1

你問過如何表示雙克,我給你看了。你在這兩個術語之間加了一個下劃線。 – 2013-03-16 20:25:25

+0

對不起,我只是以爲你是在提取文本的大對數。所以,我應該將'the_quick'存儲爲數據庫中的術語,並且在聚類等時將它包含在術語的向量中? – 2013-03-16 20:32:57