0

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

表帖,示例:

+----+---------+-----------------------------+
| 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 的“热门话题”以获取我网站的帖子。

4

2 回答 2

3

您正在寻找的是term extract,它不是 MySQL 本身提供的。

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

或者,您可以使用Yahoo! 的 Term Extraction API 之类的东西。

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

于 2009-07-15T15:28:09.927 回答
0

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

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

于 2009-07-15T16:40:56.287 回答