【问题标题】:How to count words frequency in Teradata如何计算 Teradata 中的单词频率
【发布时间】:2015-06-06 09:15:57
【问题描述】:

例如,如果我有 1000 行数据,其中包含客户 ID(例如 123)及其在我们产品上的 cmets(例如易于使用的出色产品)

如何使用 Teradata(版本 15)进行词频计数,以便输出有两列,一列包含单词,另一列包含频率,例如(伟大:20,产品:10)?

谢谢

【问题讨论】:

  • 最后的输出是一个词云,词的大小是基于频率的。

标签: sql teradata word-cloud


【解决方案1】:

您可以使用strtok_split_to_table 来完成此操作。

类似于以下内容:

SELECT d.token, SUM(d.outkey)
FROM TABLE (strtok_split_to_table(1, <yourtable>.<yourcommentsfield>, ' ')
        RETURNS (outkey integer, tokennum integer, token varchar(20)character set unicode) ) as d 
GROUP BY 1

这会将 cmets 字段中的每个单词拆分为单独的记录,然后计算每个单词的出现次数。只需将您自己的&lt;yourtable&gt;.&lt;yourcommentsfield&gt; 粘贴在其中,您就可以开始了。

有关 strtok_split_to_table 的更多信息:http://www.info.teradata.com/HTMLPubs/DB_TTU_14_00/index.html#page/SQL_Reference/B035_1145_111A/String_Ops_Funcs.084.242.html

这是在我的系统上测试的 SQL 和结果:

CREATE SET TABLE db.testcloud ,NO FALLBACK ,
     NO BEFORE JOURNAL,
     NO AFTER JOURNAL,
     CHECKSUM = DEFAULT,
     DEFAULT MERGEBLOCKRATIO
     (
      customer VARCHAR(10) CHARACTER SET LATIN NOT CASESPECIFIC,
      comments VARCHAR(1000) CHARACTER SET LATIN NOT CASESPECIFIC)
PRIMARY INDEX ( customer );


INSERT INTO testcloud (1, 'This is a test comment');
INSERT INTO testcloud (2, 'This is also comment of something');

SELECT d.token, SUM(d.outkey)
FROM TABLE (TD_SYSFNLIB.strtok_split_to_table(1, testcloud.comments, ' -/')
        RETURNS (outkey integer, tokennum integer, token varchar(20)character set unicode) ) as d 
GROUP BY 1

--token Sum(outkey)
--is    2
--also  1
--This  2
--of    1
--test  1
--a 1
--comment   2
--something 1

【讨论】:

  • SELECT d.token, SUM(d.outkey) FROM TABLE (strtok_split_to_table(1,., ' ') RETURNS (outkey integer, tokennum integer, token varchar( 20)character set unicode) ) as d GROUP BY 1 非常感谢,但我收到一个 3707 错误,说应该是 '.'在单词 strtok_split.. 和 (
  • 实际上不要将表和字段名称放在&lt;&gt; 符号中。我只是用那些标记它们。此外,如果您遇到更多问题,请使用 TD_SYSFNLIB.strtok_split_to_table 作为函数名称,如果它仍然犹豫不决。最后,我从我自己的系统中添加了一些用于快速测试的位。
猜你喜欢
  • 2015-01-07
  • 1970-01-01
  • 2019-01-27
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2020-04-06
相关资源
最近更新 更多