SSIS高级转换任务—关键词查找

和关键词提取一样,关键词查找使用相同的算法和统计模型将输入流中的字符串按照名词或者名词词组进行统计,不同的是它参照一个已经存在的词汇表,输出的统计结果也仅限于这个词汇表中的关键词。关键词提取和关键词查找可以搭配使用。定期地使用关键词提取来产生关键词词汇表,也可以在这个词汇表中人为删除或添加想要统计的关键词,最后使用关键词查找来产生最终的统计结果。

在上一个章节中我们将统计结果中的“model”从统计结果中删除,然后我们可以将他们整理出来,然后删除重复的,添加一些对有统计价值的关键词。这里假设我们想统计有哪些模型招致客户的不满以致留言评价,但是我们想只保留模型的名称,而不是类似“model XX-Z1”这样,model和模型名称连接在一起,最后我们整理得到的表[TermResults]内容如下:

term
------------
dent
door
freezer
ice
ice maker
maker
XX-1
XX-YY3
XX-Z1

新建一个package,命名为TermLookUpExample,这个package的内容和上面一个例子类似,我们只要将Term Exetraction替换成Term LookUp,将OLE Destination的目标新建一个表[TermReport]。打开Term LookUp的编辑界面,如图1

SSIS高级转换任务—关键词查找

图1

  • Reference Table:这个标签用来设置参照表,Term LookUp将会依照这个表中的词汇生成统计结果
  • Term Lookup:这里设置输入字符串要参照表中的那个字段来进行统计
  • Advanced:这个标签中可以统计是否大小写敏感

运行这个package得到的结果,下面是其中的6行,我们可以看到这里没有统计数字,只是每个关键词在输入流中出现的次数的简单描述,没有他们在全部文本中的统计结果。

Term          Frequency   ConvCustSvcNote

------------- --------- --------------------------------------------------

freezer          1       ice maker in freezer stopped working model XX-YY3

ice maker        1       ice maker in freezer stopped working model XX-YY3

XX-YY3           1       ice maker in freezer stopped working model XX-YY3

door             1       door to refrigerator is coming off model XX-1

XX-1             1       door to refrigerator is coming off model XX-1

ice maker        1       ice maker is making a funny noise XX-YY3

(Only first six rows of resultset are displayed)

为得到最终的结果,在Term Lookup和OLE DB Destination之间添加一个Aggregate Transform,在Aggregate Transform中忽略ConvCustSvcNote列,按照Term列分组,在Frequency列上进行求和计算。将Aggregate Transform和OLE DB Transform连接起来。

尽管这是一个非常简单的例子,但是它在短时间内从文本输入流中产生一个统计结果。

作者:Tyler Ning
出处:http://www.cnblogs.com/tylerdonet/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过以下邮箱地址williamningdong@gmail.com  联系我,非常感谢。

上一篇:盛大的软件Bug


下一篇:建一个杀毒软件查不到的文件夹