文章列表
 
您正在查看 "Ponyse" 分类下的文章

2008年03月18日 星期二 17:38
PonySE采用目前被广泛接受的,应用效果较好的VSM(向量空间模型)来表示一篇文档的特征。

http://www.ponyse.com/?p=9
 
2008年03月14日 星期五 10:58
libponyse是PonySE项目unix\linux平台下的底层库, 使用纯C开发, 可应用于你的项目中.

见: http://www.ponyse.com/?p=7
 
2008年03月09日 星期日 15:27
PonySE(开源免费的小型搜索引擎)官方blog开通, PonySE分词器0.2.2版本发布.

http://www.ponyse.com/
 
2008年02月15日 星期五 18:15
最近静下心来开发PonySE了, 今天把网站先更新了一下, 马上放到外网.
libponyse的0.0.0版本也公布了, 包括kmp字符串匹配, cache_hash算法, 通用的bloom-filter, 文件的mmap, 配置文件的读取, URL解析等.
 
2007年12月24日 星期一 11:50
PonySE后台管理界面:
 
2007年11月11日 星期日 14:09
完成初稿. 欢迎下载http://ponyse.com/downloads/PonySE设计方案书.doc.
如果有意见和建议, 请联系我.
 
2007年11月02日 星期五 16:17
你了解PonySE吗? 如果不了解, 请查看http://www.ponyse.com吧; 如果你对PonySE感兴趣, 想参与这个项目, 请告诉我下面一道与搜索引擎技术相关的题的答案:

一台配置相当高的16位的80286机器, 硬盘上有一个1M的全部由整数构成(二进制形式保存)的文件, 这些数据并未进行排序, 现在允许使用的内存是256k.
请统计出:
(1)在这个文件中只出现过两次的整数一共有多少个?
(2)每个数字在这个文件中出现的次数是多少?
要求尽量达到运行速度最快, 使用内存最小, 请说明算法, 或是C程序.
例如对于序列:1,2,2,3,3,3,4,5,5,1 则答案是:
(1)1,2和5各出现了两次, 所以结果为3.
(2)1出现了2次; 2出现了2次; 3出现了3次; 4出现了1次; 5出现了2次.

我的邮箱: yeetoo2006#gmail.net, 请将符号#换成符号@.
 
2007年10月07日 星期日 14:46

图中的每一个块就表示一个文件.

关于图中的名词解释

文档: 所有被搜索引擎收录的文本, 可以是一个网页, 也可以是数据库中的一条记录. 文档需要进行转换, 转变为统一的格式.

文档编号: 每一篇文档在保存到文档基本信息表时, 会产生一个文档编号. 文档编号能够唯一标识该文档.

文档编号序列: 将多个文档编号排列到一起, 将这个序列称为文档编号序列.

关键字所在位置: 关键字在文档中第一次出现的位置

文档权重: 表示该文档的重要程度,, 0表示重要程度最低, 值越大表示重要程度越高.

关键字出现次数: 一个关键字在某一个文档中出现的次数.

文档块: 文档块是将多个文档的文本内容组成的一个文件.

文件结构说明

[关键字]

每个关键字都有一个编号, 编号唯一标识一个关键字.

[索引]

索引文件在检索时将加载到内存当中, 根据关键字关键字编号能定位到该关键字对应的文档编号序列偏移量”, 根据前一个关键字文档编号序列偏移量和后一个关键字文档序列偏移量可以计算出某一个关键字对应了多少个文档编号. 关键字关键字编号k, 则该关键字对应的文档编号序列在文档编号序列文件中的偏移量offset = *(index + k*sizeof(long))

[文档编号序列]

存放着文档编号序列的文件.

[位置序列][权重序列][关键字出现的次数序列]

文件结构与[文档编号序列]文件相同.

[文档基本信息]

文档基本信息包含文档的基本信息, 从图中可以看出, 这些基本信息都是定长的, 所以查询速度很快.只要知道文档编号, 就能直接映射到对应的记录中.

[文档块]

文档块文件是自描述的文件, 每次读取前三个整数, 就能知道跟在这三个整数后面的文档数据的文档URL长度, 标题及内容的长度.
 
2007年09月14日 星期五 14:34
欢迎大家批评指正.
 
2007年09月11日 星期二 9:16
1. WordSplitter COM component简介
WordSplitter COM component是我在PonySE WordSplitter v0.1.1版本的基础上进行的COM封装.
它是一个中文分词组件, 能对一段文本进行中文分词, 它可用于Windows平台下的COM环境, 如Asp, Asp.net等等. 其特点如下:
(1)分词速度快
(2)字典数据可以自己添加完善
(3)字典数据缓存, WordSplitter COM非常适合于Asp等脚本环境, 当WordSplitter第一次被加载到内存时, 会将所有的字典数据存放在内存当中, 以后再调用组件方法时, 将不再重新加载字典数据.

2. 如何安装WordSplitter COM组件
(1) 假设WordSplitter.dll位于d:\com\WordSplitter.dll, 则在命令提示符下输入:
regsvr32 d:\com\WordSplitter.dll
进行COM组件的注册.
(2) 由于组件需要dict.dat字典文件的支持, 所以当前系统必需存在dict.dat, 默认情况下它会到C盘根目录下去读取这个文件.
当然你也可以修改这个路径, 但这需要你做一些额外的工作: 设置两个系统环境变量PONYSE_DICT和PONYSE_KL
PONYSE_DICT的值表示字典文件的路径, PONYSE_KL的值表示字典文件中关键字的最大长度.
如果不存在这两个系统环境变量, WordSplitter组件将到c:\dict.dat去读取字典文件, 并且默认的关键字最大长度为16字节.
(3) 注册好COM组件, 并按(2)的要求安装好字典后, 即可使用.

3. 分词字典dict.dat的文件格式
dict.dat文件格式很简单, 每行表示一个关键词, 第一行又分为两部分, 第一部分表示关键字的内容, 第二部分表示关键字的编码.
需要注意的是这个文件的采用的是Unix文件保存格式, 即每一行只有换行符, 而没有回车符.
例如:
一个 1
我们 2
时间 3
中国 4
可以 5
公司 6
没有 7
信息 8

你可以任意扩充这个词典, 只要保证文件的结构正确. 如可以添加一个关键词:
中国人 100000000

4. 组件提供的方法
组件目前只提供了SplitToString方法和getKeywordIdList属性:
(1)SplitToString(content)方法
作用将content进行分词, content为字符串类型
(2)getKeywordIdList属性
得到上次SplitToString()方法产生的关键字编号

5. 使用的例子
见example.vbs

6. WordSplitter COM组件开发环境
我是在以下环境下开发此组件的:
操作系统: Windows XP sp2
编译工具: Microsoft Visual C++ 6.0

例子程序运行效果:

组件下载地址:
http://gforge.osdn.net.cn/frs/?group_id=296
下载解压后, 运行install.bat文件, 然后运行example.vbs即可.

1.0.0.2版本修改了原1.0.0.1版本中由于WordSplitter0.1.0版本有一处没有释放内存的bug.
 
2007年09月09日 星期日 10:18

今天PonySE项目正式启动了.
PonySE是一个高速的, 灵活的, 小型web搜索引擎, 是的, 你可以叫它ponyse. PonySE的每一个模块都尽量独立, 这意味着你可以单独使用其中的一个你觉得有用的模块.
http://www.ponyse.com
域名终于申请下来了, 站点也开通了. 同时, 在CSDN上我也申请了开源项目http://gforge.osdn.net.cn/projects/ponyse/


欢迎大家访问.

 
 
   
 
 
文章分类
 
   
 
文章存档
 
     
 
最新文章评论
  

[表情]
 

问题解决,谢谢分享~
 

做了没有?
 

太长知识了,这两天我也老犯这毛病
 

非常感谢~学习了~
   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu