如果我想计算两个表的行中匹配的单词,数百万行,样本:
表格帖子,样本:
+----+---------+-----------------------------+
| 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热门话题。
答案 0 :(得分:3)
您正在寻找的是term extraction,这在MySQL中并非原生提供。
其他一些平台提供了这种功能,但它被认为是一种企业功能,所以你必须为此付出代价。
或者,您可以使用类似Yahoo!'s Term Extraction API的内容。
Here是一篇博文,讲述了从PHP5使用Yahoo!的服务。
答案 1 :(得分:0)
在插入时打破句子,对黑名单过滤单词,用计数(或可能带参考)存储不同的单词。使用count()计数:)
这会产生很多数据,我不知道速度和存储的含义是什么。