Oracle 中文分词CHINESE_VGRAM_LEXER与CHINESE_LEXER比较
准备工作:
CREATE TABLE issues (
ID NUMBER,
summary VARCHAR(120),
description CLOB,
author VARCHAR(80),
ot_version VARCHAR(10)
);
INSERT INTO issues
VALUES (1, 'Jane', 'Text does not make tea',
'Oracle Text is unable to make morning tea', 1);
INSERT INTO issues
VALUES (2, 'John', 'It comes in the wrong color',
'I want to have Text in pink', 1);
INSERT INTO issues
VALUES (3, 'Mike', 'I come from china', '所以我讲中文', 1);
--下面两句话很难解析的
INSERT INTO issues
VALUES (4, 'Mike', 'I come from china', '吉林省长春市的人民', 1);
INSERT INTO issues
VALUES (5, 'Mike', 'I come from china',
'我们要积极地主动作好计划生育工作', 1);
-- define datastore preference for issues
BEGIN
--ctx_ddl.drop_preference ('issue_lexer');
ctx_ddl.set_attribute ('issue_store', 'output_type', 'CLOB');
ctx_ddl.create_preference ('issue_lexer', 'CHINESE_LEXER');
END;
/
-- index issues 没有指定任何lexer
CREATE INDEX issue_index ON issues(author) INDEXTYPE IS ctxsys.CONTEXT;
--进行查询
SELECT *
FROM issues
WHERE contains (author, '中文', 1) > 0;
会返回no rows selected。
说明:不使用lexer参数,oracle Text无法对中文进行有效检索。
接下来我们 使用oracle和网上各位仁兄推荐的CHINESE_LEXER看看,执行下列语句:
DROP INDEX issue_index;
-- index issues
CREATE INDEX issue_index ON issues(author) INDEXTYPE IS ctxsys.CONTEXT
PARAMETERS ('lexer issue_lexer');
SELECT *
FROM issues
WHERE contains (author, '中文', 1) > 0;
会 返回一条记录。
再执行下列查询语句:
SELECT *
FROM issues
WHERE contains (author, '作好', 1) > 0;
SELECT *
FROM issues
WHERE contains (author, '吉林', 1) > 0;
都没有任何返回结果。
执行下列语句:
SELECT *
FROM issues
WHERE contains (author, '中文', 1) > 0;
有一个返回结果。
说明:CHINESE_LEXER对中文分词进行了优化,能够识别大部分中文单 词,但是毕竟有很多单词难以区分。比如说,‘我们要积极地主动作好计划生育工作’被oracle 解释为:“我们要 积极 地主 动作 好 计划生育 工作”;'吉林省长春市的人民'解释为:“吉林省 长春市 的 人民”。不过效率方面自然很高。
再看看 CHINESE_VGRAM_LEXER:
执行下列语句
BEGIN
ctx_ddl.drop_preference ('issue_lexer');
ctx_ddl.set_attribute ('issue_store', 'output_type', 'CLOB');
ctx_ddl.create_preference ('issue_lexer', 'CHINESE_VGRAM_LEXER');
END;
/
-- index issues 没有指定任何lexer
CREATE INDEX issue_index ON issues(author) INDEXTYPE IS ctxsys.CONTEXT
PARAMETERS ('lexer issue_lexer');
--进行查询
SELECT *
FROM issues
WHERE contains (author, '中文', 1) > 0;
SELECT *
FROM issues
WHERE contains (author, '作好', 1) > 0;
SELECT *
FROM issues
WHERE contains (author, '吉林', 1) > 0;
SELECT *
FROM issues
WHERE contains (author, '计划生育', 1) > 0;
SELECT *
FROM issues
WHERE contains (author, '地主', 1) > 0;
都 有返回结果。
说明:CHINESE_VGRAM_LEXER使用的保守分词方法,不求有功但求无过。对所有的词都可以查询到。不过效 率方面就有不足了。
所有的分词结果都可以在表DR$ISSUE_INDEX$I中看到。
例子中 CHINESE_VGRAM_LEXER会创建39行数据,而CHINESE_LEXER只创建23行数据。
结 论:oracle Text进行中文搜索必须指定lexer 参数。如果追求效率那么使用CHINESE_LEXER,如果追求准确度那么使用CHINESE_VGRAM_LEXER。
Oracle 中文分词CHINESE_VGRAM_LEXER与CHINESE_LEXER比较相关推荐
- oracle 分词函数,Oracle 中文分词
转自:http://ddtlby.blog.sohu.com/100086259.html 准备工作: CREATE TABLE issues ( ID NUMBER, summa ...
- oracle创建分词,Oracle 中文分词
转自:http://ddtlby.blog.sohu.com/100086259.html 准备工作: CREATE TABLE issues ( ID NUMBER, summa ...
- oracle 分词函数,Oracle 汉语言分词
当前位置:我的异常网» 数据库 » Oracle 汉语言分词 Oracle 汉语言分词 www.myexceptions.net 网友分享于:2013-09-28 浏览:14次 Oracle 中文 ...
- solr5 导入oracle,Solr7使用Oracle数据源导入+中文分词
oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@192.168.2.218:1521:product" u ...
- 基于 HanLP 的 ES 中文分词插件
一.分词插件 1.分词器概念 在 ES 中,分词器的作用是从文本中提取出若干词元(token)来支持索引的存储和搜索,分词器(Analyzer)由一个分解器(Tokenizer).零个或多个词元过滤器 ...
- Laravel5.4中文分词搜索-使用 Laravel Scout,Elasticsearch,ik 分词(一)
elasticsearch需要的环境搭建 简介: 使用elasticsearch的前提是你的主机必须安装了java的JDK,而且版本必须是1.8以上,并设置JAVA_HOME环境变量 java的jdk ...
- php+中文分词scws+sphinx+mysql打造千万级数据全文搜索
Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎.意图为其他应用提供高速.低空间占用.高结果 相关度的全文搜索功能.Sphinx可以非常容易的与SQL数据库和脚本语言集成 ...
- Elasticsearch07:ES中文分词插件(es-ik)安装部署
一.ES中文分词插件(es-ik) 在中文数据检索场景中,为了提供更好的检索效果,需要在ES中集成中文分词器,因为ES默认是按照英文的分词规则进行分词的,基本上可以认为是单字分词,对中文分词效果不理想 ...
- PyTorch 高级实战教程:基于 BI-LSTM CRF 实现命名实体识别和中文分词
20210607 https://blog.csdn.net/u011828281/article/details/81171066 前言:译者实测 PyTorch 代码非常简洁易懂,只需要将中文分词 ...
最新文章
- NXP智能驾驶软件系统
- 根据矩阵变化实现基于 HTML5 的 WebGL 3D 自动布局
- 基于用例点来度量软件规模并管理进度 之三
- Tensorflow 错误总结:NameError: name 'core' is not defined
- python词云的简单使用
- jQuery使用(八):运动方法
- json.hpp参数错误
- 阿里云专属数据库,重新定义云数据库新形态
- python脚本自动消除安卓版_python脚本中appium的自启动自关闭
- Flash游戏开发技术分析(下)
- 简单用BT3破解无线网络WEP, WPA密码
- 小米路由器r2d_小米路由器二代R2D怎样设置无线中继模式
- c语言6月份考试时间,六级几点考试 考试时间明细
- android 仿微信demo————注册功能实现(移动端)
- 打造高效研发团队 (3) —— 绩效考核篇
- 软件设计师刷题与知识点总结 笔记
- 计算机组成原理相关话题,“计算机组成原理”教学改革研究
- 面试姊妹篇4:常见的Java多线程面试题
- I2C的基础概念和框架
- 声音四要素:音强、音调、音色和波形包络
热门文章
- 积跬步以至千里_《荀子》名句76则:不积跬步,无以至千里;不积小流,无以成江海...
- aspose java_Aspose.Cells for Java
- mysql怎么模糊查询名字_mysql中模糊查询的四种用法:
- ubuntu修改mongodb的数据库储存位置
- 51nod1429 巧克力
- 4 weekend110的hdfs下载数据源码跟踪铺垫 + hdfs下载数据源码分析-getFileSystem(值得反复推敲和打断点源码)...
- Verilog inout 双向口使用和仿真
- 【Mac软件推荐】Alfred:Mac下最好的快速启动工具
- Eclipse 自动注释的设置
- 实习技术员的基本功(四)