我试图找到一些文章,帮助我的工作,我必须做的。我有一个表的问题和答案的客户服务在一个网站上,我想创建之间的因果关系,无论投诉和问题的答案,我们的想法是使用一个直方图,您可以为客户在STR_COMPLAINTS列中的投诉中使用最多的词语以及在STR_COMPLAINTS处理中使用最多的词语指明方向在答案列中输入ANSWERS。如下例所示:
| 识别码|STR_投诉|字符串_答案|
| - -|- -|- -|
| 一个|我的披萨冷了|我们将在上比萨饼之前创建温度控制|
| :-----------------------|- ---------------------------------|- ---------------------------|
| 2个|我的汉堡都凉了|我们会在上汉堡前设置温度控制|
预期成果:
| 字|问题|答案|
| - -|- -|- -|
| 我的|2个|第0页|
| 比萨饼|2个|2个|
| 来了|2个|第0页|
| 冷的|2个|第0页|
| 我们|第0页|2个|
| 遗嘱|第0页|2个|
| 创造了|第0页|2个|
| 一种|第0页|2个|
| 温度,温度|第0页|2个|
| 控制器|第0页|2个|
| 之前|第0页|2个|
| 上菜|第0页|2个|
| 的|第0页|2个|
| 汉堡包|2个|2个|
2条答案
按热度按时间sg3maiej1#
你可以标记每一个抱怨和每一个答案来得到所有的单个单词,从中得到所有的唯一单词,然后计数每个单词出现了多少次。
这种方法使用正则表达式对字符串进行标记化,这可能很慢而且开销很大,但是您可以根据需要修改该部分。
每一列都在它自己的递归CTE中处理,然后第三个CTE获得唯一的单词。第三个CTE,以及单词列表,然后与前两个CTE进行外部连接,并计算匹配的ID。(如果不想多次计算重复的单词,您 * 可能 * 想计算非重复的ID。)
| 字|问题|答案|
| - -|- -|- -|
| 创造了|第0页|2个|
| 之前|第0页|2个|
| 控制器|第0页|2个|
| 温度,温度|第0页|2个|
| 的|第0页|2个|
| 冷的|2个|第0页|
| 一种|第0页|2个|
| 比萨饼|一个|一个|
| 我的|2个|第0页|
| 来了|2个|第0页|
| 我们|第0页|2个|
| 遗嘱|第0页|2个|
| 汉堡包|一个|一个|
| 上菜|第0页|2个|
fiddle,其示出了一些中间数据。
hs1ihplo2#
如果你没有/知道/想要regexp -你可以使用用户定义的函数,我用它来分割csv或任何其他文本。函数使用sql建模,可以通过分隔符分割任何字符串,分隔符也可以是空格(“”)。所以,它可以分割单词。返回类型也是用户定义的。
使用您的示例数据:
......你可以收集问题和答案中的所有单词--使用split()函数创建一个cte(我将其命名为all_words),如下所示:
主sql:
结果应该是:
| 字|问题|答案|
| - -|- -|- -|
| 我的|2个|第0页|
| 冷的|2个|第0页|
| 来了|2个|第0页|
| 汉堡包|一个|一个|
| 比萨饼|一个|一个|
| 上菜|第0页|2个|
| 我们|第0页|2个|
| 遗嘱|第0页|2个|
| 的|第0页|2个|
| 温度,温度|第0页|2个|
| 控制器|第0页|2个|
| 之前|第0页|2个|
| 创造了|第0页|2个|
| 一种|第0页|2个|
此致。
“附言”
你应该考虑在计数前把所有的单词都小写/大写,因为单词“My”和“my”将被分开计数,因为一个在句子的开头,另一个不在。