Skip to Content
Author's profile photo Former Member

SAP HANA中的文本挖掘

     在SAP HANA中,除了基本的分词等文本分析任务外,从SPS09开始增加了文本挖掘(Text Mining)的功能。具体来说,具体来说包括文本关键词提取,文本分类,相似文本查找,相似单词查找等功能,在SPS09中,文本挖掘接口以XS接口的形式提供,在SPS10中,提供了SQL形式的接口,这对于文本挖掘的任务,真是非常cool, 有了这个神器,文本分类不再需要整合R,直接在HANA中就可以实现文本分类的功能,具体来说,在HANA内部,在建立全文索引之后,维护了一个term-document矩阵,基于此,可以计算TF,IDF,TF-IDF等词项权重,以欧几里得距离为基础,实现K近邻分类。

      废话不多说,下面直接见例子,本文只是介绍最基本用法为主,更多参数及原理请读者自行查找相关资料。


- 准备数据


SET SCHEMA TMTEST;
DROP TABLE MYTEST CASCADE;
CREATE COLUMN TABLE MYTEST(ID INTEGER primary key,CONTENT NCLOB,LANG VARCHAR(32),CLASS VARCHAR(64));
INSERT INTO MYTEST VALUES('1','I am a chinese, I live in beijing','en','china');
INSERT INTO MYTEST VALUES('2','I like fish,especially big fish','en','fish');
INSERT INTO MYTEST VALUES('3','fish is an animal,live in water','en','fish');
INSERT INTO MYTEST VALUES('4','fish is delicous, I like it','en','fish');
INSERT INTO MYTEST VALUES('5','Chinese is great, I like chinese','en','china');
INSERT INTO MYTEST VALUES('6','China and Chinese','en','china');

我们插入6条记录,属于俩个大类,‘china’跟’fish’.


二 建立全文索引


DROP FULLTEXT INDEX ftidx;
CREATE FULLTEXT INDEX ftidx ON MYTEST (CONTENT)
ASYNC
FAST PREPROCESS OFF
SEARCH ONLY OFF
TEXT ANALYSIS ON
CONFIGURATION 'LINGANALYSIS_FULL'
TEXT MINING ON
TEXT MINING CONFIGURATION 'DEFAULT.textminingconfig'
LANGUAGE DETECTION ('EN')


具体参数意义请参考相关文档,我就不一个一个解释了,主要是关闭FAST PREPROCESS,关闭SEARCH ONLY,打开TEXT ANALYSIS跟TEXT MINING,文本挖掘配置参数文件用默认的。


三 Delta Merge


MERGE DELTA OF MYTEST;

记住,这一步非常重要!!!!!


四 相关功能函数


(1) 输入一个单词,找出相关的单词。

例如找出fish的相关单词

/wp-content/uploads/2015/08/relatedterm_765058.jpg

(2) 输入一篇文章,找出文章中重要的单词

例如,找出ID=3的文章中的重要单词

/wp-content/uploads/2015/08/relevent_term_765096.jpg


(3) 输入字符开头,找出推荐的单词

例如找出C开通的单词

/wp-content/uploads/2015/08/sugguest_765098.jpg

(4) 以文找文,输入一篇文章,找出相似文章

/wp-content/uploads/2015/08/relate_doc_765099.jpg

(5) 以词找文

/wp-content/uploads/2015/08/relevent_doc8_765100.jpg


(6) kNN分类算法

kNN.jpg

在上例子中,我们的训练集合中就两类,fish跟china。然后我们想看看water是哪个类别,在结果的CATEGORY_VALUE中看到是fish这一类的。


全部SQL代码参考附件textmining.sql

参考资料:

1 http://help.sap.com/hana/SAP_HANA_Text_Mining_Developer_Guide_en.pdf

2 http://help.sap.com/hana/SAP_HANA_SQL_and_System_Views_Reference_en.pdf

[本文的测试案例所使用的SAP HANA版本为SAP HANA SPS10]

想获取更多SAP HANA学习资料或有任何疑问,请关注新浪微博@HANAGeek!我们欢迎你的加入!

转载本文章请注明作者和出处http://scn.sap.com/community/chinese/hana/blog/2015/08/07/sap-hana%E4%B8%AD%E7%9A%84%E6%96%87%E6%9C%AC%E6%8C%96%E6%8E%98

请勿用于任何商业用途。

Assigned Tags

      3 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Yin Zhang
      Yin Zhang

      请问该示例,在SP09中能实现吗?如能实现,需做哪些调整?

      Author's profile photo Former Member
      Former Member
      Blog Post Author

      SP09已经开始支持text mining了,不过接口形式不是SQL函数,而且需要通过XSJS的接口,具体参考text mining develop guide

      Author's profile photo Yin Zhang
      Yin Zhang

      多谢