马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
1. SAP HANA中文分词简单介绍 SAP HANA分词属于SAP HANA文本分析的一部分。我们可以通过创建全文索引的方式来实现SAP HANA分词功能。SAP HANA文本分析支持以下7种数据类型:TEXT, BINTEXT, NVARCHAR, VARCHAR, NCLOB, CLOB,and BLOB。你可以根据不同的应用需求选择不同的数据类型。 为了使用SAP HANA 实现中文分词,我们首先确认你安装的SAP HANA中是否有支持中文。如下图所示,看到有支持简体中文的一项则确认没有问题。 1. 测试 我们先创建一个用来测试的数据库表。
- CREATE COLUMN TABLE SEGMENTATION_TEST(
- URL VARCHAR(200) PRIMARY KEY,
- CONTENT NCLOB,
- LANGU VARCHAR(10)
- );
其中CONTENT列是存储需要分词的文本。而LANGU列则指定了分词所使用的语言集,默认为EN,我们这里需要设置为ZH。 然后我们在刚创建的表SEGMENTATION_TEST的CONTENT列上建立全文索引,如下所示:
- CREATE FULLTEXT INDEX FT_INDEX
- ON SEGMENTATION_TEST(CONTENT) TEXT ANALYSIS
- ON CONFIGURATION 'LINGANALYSIS_FULL'
- LANGUAGE COLUMN "LANGU";
注意需要创建全文索引的表必须含有主键,否则会报错,如下图所示: 创建全文索引后,SAP HANA会自动生成一张以$TA_<index_name>为名称的表。 我们向表SEGMENTATION_TEST插入一条数据:
- INSERT INTO SEGMENTATION_TEST(URL,CONTENT,LANGU)
- VALUES('http://xxx.xxx.xxx','想获取更多SAP HANA学习资料或有任何疑问,请关注新浪微博@HANAGeek!我们欢迎你的加入!','ZH');
然后就可以查看到分词的结果了:
分词表不仅将中文文章分解成一个个单词,并且还为每个单词标识了词性。例如“获取”标识了动词,HANA为未知词性,标识了未知。当然对于HANA和SAP这种系统词典没有的词,我们可以通过自定义词典的方式进行标注。分词表的每个列的具体含义请见 SAP HANA提供了多重配置方式:LINGANALYSIS_BASIC,LINGANALYSIS_BASIC,LINGANALYSIS_BASIC,EXTRACTION_CORE,EXTRACTION_CORE。 LINGANALYSIS_BASIC:只提供分词功能,没有对单词的词性标注。 LINGANALYSIS_STEMS:提供了分词和词干识别功能。 LINGANALYSIS_FULL:提供了分词、词干识别以及词性标注功能。 EXTRACTION_CORE:该配置负责抽取文本中的感兴趣实体部分,例如组织,场所等。 EXTRACTION_CORE_VOICEOFCUSTOMER:你可以使用它获取关于用户需求和理念的特殊信息,例如可以做文本情感分析。该配置项包括,复杂的语言分析和模式处理,包括拼写、句法模式、否定等处理。 我们可以根据不同的需求选取不同的配置项,本文选用的是LINGANALYSIS_FULL。 为了能够在删除原表数据的同时删除分词表,我们需要将两张表的主键关联起来。可以使用下面的SQL语句 :
- ALTER TABLE TEST."$TA_FT_INDEX" ADD CONSTRAINT R_KEY FOREIGN
- KEY(URL) REFERENCES TEST.SEGMENTATION_TEST(URL) ON DELETE CASCADE;
本文的测试案例所使用的SAP HANA版本为SAP HANA SP07 Revision 70.00。
|