如何使用中文分词和自定义中文分词词典
1个回答
展开全部
如何使用中文分词和自定义中文分词词典
可以使用下面的命令,启用中文分词。
1. CREATE EXTENSION zhparser;
2.
3. CREATE TEXT SEARCH CONFIGURATION testzhcfg (PARSER = zhparser);
4.
5. ALTER TEXT SEARCH CONFIGURATION testzhcfg ADD MAPPING FOR n,v,a,i,e,l WITH simple;
6.
7. --可选的参数设定
8. alter role all set zhparser.multi_short=on;
9.
10. --简单测试
11. SELECT * FROM ts_parse('zhparser','hello world! 2010年保障房建设在全国范围内获全面启动,从中央到地方纷纷加大了保障房的建设和投入力度。2011年,保障房进入了更大规模的建设阶段。住房城乡建设部党组书记、部长姜伟新去年底在全国住房城乡建设工作会议上表示,要继续推进保障性安居工程建设。');
12.
13. SELECT to_tsvector('testzhcfg','“今年保障房新开工数量虽然有所下调,但实际的年度在建规模以及竣工规模会超以往年份,相对应的对资金的需求也会创历史纪录。”陈国强说。在他看来,与2011年相比,2012年的保障房建设在资金配套上的压力将更为严峻。');
14.
15. SELECT to_tsquery('testzhcfg','保障房资金压力');
利用分词进行全文索引的方法如下。
1. --为T1表的name字段创建全文索引
2. create index idx_t1 on t1 using gin (to_tsvector('zhcfg',upper(name)));
3.
4. --使用全文索引
5. select*from t1 where to_tsvector('zhcfg',upper(t1.name))@@ to_tsquery('zhcfg','(防火)');
还可以使用自定义的中文分词词典,使用方法如下,注意自定义中文分词词典在内核小版本20160801和之后的版本才支持。
1. --确实的分词结果
2. SELECT to_tsquery('testzhcfg','保障房资金压力');
3.
4. --往自定义分词词典里面插入新的分词
5. insert into pg_ts_custom_word values ('保障房资');
6.
7. --使新的分词生效
8. select zhprs_sync_dict_xdb();
9.
10. --退出此连接
11. \c
12.
13. --重新查询,可以得到新的分词结果
14. SELECT to_tsquery('testzhcfg','保障房资金压力');
使用自定义分词的注意事项如下。
1. 最多支持1000000条自定义分词,超出部分不做处理,用户必须保证分词数量在这个范围之内。自定义分词与缺省的分词词典将共同产生作用。
2. 每个词的最大长度为128字节,超出部分将会截取。
3. 通过增删改分词之后必须执行selectzhprs_sync_dict_xdb();并且重新建立连接才会生效。
可以使用下面的命令,启用中文分词。
1. CREATE EXTENSION zhparser;
2.
3. CREATE TEXT SEARCH CONFIGURATION testzhcfg (PARSER = zhparser);
4.
5. ALTER TEXT SEARCH CONFIGURATION testzhcfg ADD MAPPING FOR n,v,a,i,e,l WITH simple;
6.
7. --可选的参数设定
8. alter role all set zhparser.multi_short=on;
9.
10. --简单测试
11. SELECT * FROM ts_parse('zhparser','hello world! 2010年保障房建设在全国范围内获全面启动,从中央到地方纷纷加大了保障房的建设和投入力度。2011年,保障房进入了更大规模的建设阶段。住房城乡建设部党组书记、部长姜伟新去年底在全国住房城乡建设工作会议上表示,要继续推进保障性安居工程建设。');
12.
13. SELECT to_tsvector('testzhcfg','“今年保障房新开工数量虽然有所下调,但实际的年度在建规模以及竣工规模会超以往年份,相对应的对资金的需求也会创历史纪录。”陈国强说。在他看来,与2011年相比,2012年的保障房建设在资金配套上的压力将更为严峻。');
14.
15. SELECT to_tsquery('testzhcfg','保障房资金压力');
利用分词进行全文索引的方法如下。
1. --为T1表的name字段创建全文索引
2. create index idx_t1 on t1 using gin (to_tsvector('zhcfg',upper(name)));
3.
4. --使用全文索引
5. select*from t1 where to_tsvector('zhcfg',upper(t1.name))@@ to_tsquery('zhcfg','(防火)');
还可以使用自定义的中文分词词典,使用方法如下,注意自定义中文分词词典在内核小版本20160801和之后的版本才支持。
1. --确实的分词结果
2. SELECT to_tsquery('testzhcfg','保障房资金压力');
3.
4. --往自定义分词词典里面插入新的分词
5. insert into pg_ts_custom_word values ('保障房资');
6.
7. --使新的分词生效
8. select zhprs_sync_dict_xdb();
9.
10. --退出此连接
11. \c
12.
13. --重新查询,可以得到新的分词结果
14. SELECT to_tsquery('testzhcfg','保障房资金压力');
使用自定义分词的注意事项如下。
1. 最多支持1000000条自定义分词,超出部分不做处理,用户必须保证分词数量在这个范围之内。自定义分词与缺省的分词词典将共同产生作用。
2. 每个词的最大长度为128字节,超出部分将会截取。
3. 通过增删改分词之后必须执行selectzhprs_sync_dict_xdb();并且重新建立连接才会生效。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询