在SAP HANA Express Edition裡進行文字分析

i042416發表於2020-03-19

這個練習會使用SAP HANA Express Edition的文字語義分析引擎對JSON格式的documents進行語義分析。


首先建立一個column table,對其index開啟fuzzy text search(模糊搜尋)功能。


上述描述的操作可以用下面的SQL語句來完成:


create column table food_analysis

(

name nvarchar(64),

description text FAST PREPROCESS ON FUZZY SEARCH INDEX ON

);


其中description欄位開啟了模糊搜尋功能。


將儲存於名為doc_store的document store collection裡的json key-value鍵值對拷貝到剛剛建立的資料庫表裡:

insert into food_analysis with doc_store as (select "name", "description" from food_collection) select doc_store."name" as name, doc_store."description" as description from doc_store;


執行上述的sql語句,確保資料全部拷貝到資料庫表food_analysis中:


在SAP HANA Express Edition裡進行文字分析



使用下列的sql語句對description欄位進行模糊搜尋:

select name, score() as similarity, TO_VARCHAR(description) from food_analysis where contains(description, 'nuts', fuzzy(0.5,'textsearch=compare')) order by similarity desc


執行結果:


在SAP HANA Express Edition裡進行文字分析


HANA Express Edition裡的linguistic 文字分析步驟也比較簡單。


首先還是建立一個資料庫表:

create column table food_sentiment ( name nvarchar(64) primary key, description nvarchar(2048) );


將document store裡的json資料拷貝到資料庫表裡:

insert into food_sentiment with doc_store as (select "name", "description" from food_collection) select doc_store."name" as name, doc_store."description" as description from doc_store;


針對description欄位建立一個新的index:


CREATE FULLTEXT INDEX FOOD_SENTIMENT_INDEX ON "FOOD_SENTIMENT" ("DESCRIPTION") CONFIGURATION 'GRAMMATICAL_ROLE_ANALYSIS' LANGUAGE DETECTION ('EN') SEARCH ONLY OFF FAST PREPROCESS OFF TEXT MINING OFF TOKEN SEPARATORS '' TEXT ANALYSIS ON;


上述SQL語句會自動建立一個名為$TA_FOOD_SENTIMENT_INDEX的文字分析表:

該表裡的內容:


在SAP HANA Express Edition裡進行文字分析


由此可以發現,之前我們匯入到資料庫表裡的英文句子,被HANA text engine拆解成單詞,並且每個單詞的詞性也自動被HANA解析出來了。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2681265/,如需轉載,請註明出處,否則將追究法律責任。

相關文章