-1

我正在研究一种系统/算法,它将检测推文流中的主题。

我要做的是删除停用词、表情符号、网址等,我正在考虑将推文表示如下:

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

然后在应用一些聚类算法时使用推文之间的一些相似性度量,结合这三个值。这会比这更复杂一些,因为我会处理回复(例如,当你回复一些推文时,大多数时候你会继续谈论相同的话题等)。

我不知道这是否可行,但到目前为止我看到的问题是我没有识别n-grams,所以Barack Obama大部分时间都在一起出现,在我的系统中它将是两个独立的条款(巴拉克奥巴马)。

我的问题是:

我怎样才能表示二元组?我的意思是,它通常是如何建模的?

我想过有类似以下的东西:

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

但我不知道这是否是正确的方法,如果我必须为每个可能的二元组都这样做,等等。

编辑

在我的数据库中,我将存储所有术语。我是否也应该像存储术语一样存储双元组?

4

1 回答 1

3

假设您的一份文件是“敏捷的棕色狐狸跳过了懒惰的狗”。

bi-gram 和 uni-gram 将是:

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 分数。

然后,您可以比较文档的相似性,或者对它们进行聚类或分类。

于 2013-03-16T19:57:32.250 回答