要做的SQL代码:趋势主题等于推特

时间:2009-07-15 15:12:40

标签: php mysql twitter ranking trending

如果我想计算两个表的行中匹配的单词,数百万行,样本:

表格帖子,样本:

+----+---------+-----------------------------+
| ID | ID_user | text                        | 
+----+---------+-----------------------------+
| 1  | bruno   | michael jackson is dead     |
| 2  | thomasi | michael j. moonwalk is dead |
| 3  | userts  | michael jackson lives       |
+----+---------+-----------------------------+

我想查询表中最重复的单词,限制前10名,结果可能是这样:

+-------+------------+
| count | word       |
+-------+------------+
| 3     | michael    |
| 2     | dead       |
| 2     | jackson    |
| 1     | j.         |
| 1     | lives      |
| 1     | moonwalk   |
+-------+------------+

但我想只搜索重复10次以上的单词,在这种情况下会出现没有单词,但如果重复单词的标准为2,则只显示'michael'和'dead',但忽略'is',因为我不想要少于2个字符长度的单词,以及一个短语的单词,然后我需要apear这个:

+-------+-----------------+
| count | word            |
+-------+-----------------+
| 2     | michael jackson |
| 2     | dead            |
+-------+-----------------+

我需要一个mysql中的代码,用于回复我的网站帖子的Twitter热门话题。

2 个答案:

答案 0 :(得分:3)

您正在寻找的是term extraction,这在MySQL中并非原生提供。

其他一些平台提供了这种功能,但它被认为是一种企业功能,所以你必须为此付出代价。

或者,您可以使用类似Yahoo!'s Term Extraction API的内容。

Here是一篇博文,讲述了从PHP5使用Yahoo!的服务。

答案 1 :(得分:0)

在插入时打破句子,对黑名单过滤单词,用计数(或可能带参考)存储不同的单词。使用count()计数:)

这会产生很多数据,我不知道速度和存储的含义是什么。