gpt4 book ai didi

mysql - 计算mysql表中的单词出现次数

转载 作者:行者123 更新时间:2023-11-29 13:03:54 28 4
gpt4 key购买 nike

我从不同的网站获取评论并将其存储到表中。对于每条评论,我都会在单独的列中列出形容词名词列表。

因此,对于每条评论,这里都有 3 个主要值。

评论、adjective_list、评分

现在我想计算形容词重复的次数。之后,仅推荐那些具有重复最多时间的形容词且具有 4-5 条评论的评论。

哪种方法是正确的?

我对此的想法:

创建触发器,在有插入审核操作时执行操作。此触发器将读取包含形容词的列,计算出现次数(不知道如何?)并存储最常见的形容词及其出现次数。

在推荐时选择出现次数最多的形容词,并查看 4-5 个评分的评论。

我不确定什么是正确的方法。任何帮助都是值得赞赏的

主表如下所示:

enter image description here

最佳答案

未经测试,但如果我正确理解您的要求,您应该能够基于类似的查询来完成这项工作:-

SELECT id, SUBSTRING_INDEX(SUBSTRING_INDEX(adj_noun, ',', aCnt + 1), ',', -1), COUNT(*)
FROM Main_Table
INNER JOIN
(
SELECT Units.i + Tends.i * 10 + Hundreds.i * 100 AS aCnt
(SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) Units
(SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) Tens
(SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) Hundreds
) Integers_Query
ON aCnt <= (LENGTH(adj_noun) - LENGTH(REPLACE(adj_noun, ',', '')))
GROUP BY id, SUBSTRING_INDEX(SUBSTRING_INDEX(adj_noun, ',', aCnt + 1), ',', -1)

这使用子查询来获取一定范围的数字(0 到 999),并将其与表进行联接,其中数字小于或等于逗号出现在 adj_noun 列中的次数(即,减去 adj_noun 的长度(从 adj_noun 的完整长度中删除所有逗号)。然后使用 SUBSTRING_INDEX 获取到 aCnt 逗号的字符串,再次使用 SUBSTRING_INDEX 获取从该逗号到前一个逗号的字符串(从结果中排除逗号)。

COUNT/GROUP BY 应该可以让您获得每个单词在每个项目的结果列表中出现的次数。

可能效率相当低。只能处理 1000 个逗号分隔的单词(很容易扩展,但会比较慢)。

关于mysql - 计算mysql表中的单词出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22986022/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com