【问题标题】:SQL CODE to do: Trending topics equals a twitter要做的 SQL 代码:热门话题等于推特
【发布时间】:2010-11-11 01:09:26
【问题描述】:

如果我想计算两个表的行中的匹配词,有数百万行,示例:

表帖,示例:

+----+---------+-----------------------------+
| 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 个字符的单词,以及一个短语的单词,那么我需要这样:

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

我需要 mysql 中的代码来回复 twitter 的“热门话题”以获取我网站的帖子。

【问题讨论】:

    标签: php mysql twitter ranking trending


    【解决方案1】:

    您要查找的是term extraction,它不是 MySQL 本身提供的。

    其他一些平台提供了该功能,但它被视为企业功能,因此您必须为此付出高昂的代价。

    或者,您可以使用 Yahoo!'s Term Extraction API 之类的名称。

    Here 是一篇关于从 PHP5 使用 Yahoo! 服务的博文。

    【讨论】:

      【解决方案2】:

      在插入时分解句子,根据黑名单过滤单词,使用计数(或可能与引用)存储不同的单词。使用 count() 计数 :)

      这会产生大量数据,我不知道速度和存储影响是什么。

      【讨论】:

        猜你喜欢
        • 2011-08-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-08
        • 2015-09-10
        • 1970-01-01
        • 2017-03-11
        相关资源
        最近更新 更多