Tsearch2分词函数
来源:互联网 发布:snmp trap 软件 编辑:程序博客网 时间:2024/06/07 07:27
这是网上已有的分词函数,先转过来了解了解。
基础的分字程序
下面是 Carrie (感谢 Carrie!:D )写的一个基础的分字程序,在很大程度上可以满足相当多应用的需要:
--
-- a basic Chinese word segment function
-- author: Carrie
--
create or replace function CarrieCharSeg( input text ) returns text as $$
declare
retVal text;
i int;
j int;
begin
i:= char_length(input);
j:= 0;
retVal:= '';
LOOP
retVal:= retVal || substring(input from j for 1) || ' ';
j:= j+1;
EXIT WHEN j=i+1;
END LOOP;
return retVal;
end;
$$language plpgsql;
下面是一个重载的分词程序,区分了单词和汉字,对单词单独进行分词:
--
-- a basic Chinese word segment function
-- author: Carrie
--
create or replace function CarrieCharSeg(input text,int) returns text as $Q$
declare
query text:= '';
retVal text:= '';
thisVal text:= '';
lastVal text:= '';
i integer:= 0;
j integer:= 0;
begin
query:= lower(regexp_replace(input,'[[:punct:]]',' ','g'));
--raise notice '123: %',query;
i:= char_length(query);
LOOP
thisVal:= substring(query from j for 1);
IF ((thisVal <> ' ')AND(thisVal <> ' ')) THEN
IF (((lastVal >= 'a') AND (lastVal <= 'z'))
OR((lastVal >= 'A')AND(lastVal <= 'Z'))) AND
(((thisVal >= 'a') AND (thisVal <= 'z')) OR
((thisVal >= 'A')AND(thisVal <= 'Z'))) THEN
retVal:= retVal || thisVal;
ELSE
retVal:= retVal || ' ' || thisVal;
END IF;
END IF;
lastVal:= thisVal;
j:= j+1;
EXIT WHEN j > i;
END LOOP;
RETURN trim(retVal);
end
$Q$language plpgsql;
使用感受:
最近用过了这两个自定义的分词函数,简单的说就是将汉字分割开来,例如:
“我来自地球",通过上面的分词函数后就变成“我 来 自 地 球”,会在每个字之间加入空格,这种方式比较适合标题式的检索,因为标题本身的内容不多,这样输入一个字,也是能查找出来相关的标题信息的。
如果应用的场景需要很精确的查询,那么可以使用这种方式,在调用之前做一次转换。
- Tsearch2分词函数
- strtok函数 字符串分词
- c++ split 分词函数
- 分词
- 分词
- 分词
- 分词
- 分词
- 分词
- 分词
- c: stringtoken_s分词函数 ,strftime时间函数,clock计时函数
- 分词算法学习笔记之fscanf函数以及EOF
- 关于中文分词系统里的isChineseNumber()函数
- strtok, _strtok_l, wcstok, _wcstok_l, _mbstok, _mbstok_l分词函数
- How to Fix “ERROR : Could not find tsearch2.sql file” While Starting the PostgreSQL Database
- 分词:分词词典CIPP_JS
- lucene分词器分词
- 本人写的SEO的几个函数,分词,优化(吐血放松)
- 操作系统里的生产者、消费者问题
- 程序员面试题精选100题(06)-判断整数序列是不是二元查找树的后序遍历结果
- android下PDF格式的地图数据的显示------超大PDF页面显示策略(一)
- matlab的数据如何保存成文件被VS调用
- qt4.3.3在VC6中使用gb2312编码的bug
- Tsearch2分词函数
- ANSI C/C++基本数据类型:
- seo外链查询和分析
- 强烈推荐的技术网站推荐——看了才不后悔
- 一个很简单的过滤下拉框
- 使用ubuntu 配置 tftp 服务器
- php面向对象编程思想
- 机器学习 9 强化学习
- CListCtrl使用技巧