Simsearch:基于字面相似度的文本搜索引擎

simsearch 基于字面相似度的搜索引擎 一个计算多个句子单字相似集合的搜索工具.对倒排索引结果进行二次排序,采用杰卡德相似度。 作为应用在问答系统中的组件。并返回相似性打分值。假设配置了问题 ABCDFG 但是用户输入的内容是ABDG 则输出配置里最相近的n条。 1.支持错字,少字,或多了字的搜索。 2.支持多用户 3.支持单条删除或新加索引 4.支持英文单词,空格用_

考虑这一个聊天配置场景 输入问题:今天天气不错 回答:是的天气很好 输入问题:今天我很开心 回答:为什么你会开心

实际应用当中,输入的是文本可能是 今天的天气真不错 天气真不错呀今天 今天天儿不错呀 天气不错啊这两天 都希望回答:是的天气很好

配置文件中仅仅需要配置一条 今天天气不错,则能自动匹配到相应的答案上>。

安装方法: 环境要求linux系统perl语言环境 安装perl的库文件包,包括: use Socket; use IO::Handle; use IO::Select; use IO::Socket::INET; use POE qw(Component::Server::TCP); use Clone qw(clone); use Encode; use Data::Dumper; 每个包的安装方法是运行命令 cpan 包名字 例如安装IO::Socket::INET 运行命令: cpan IO::Socket::INET centos或者ubuntu系统下安装 Socket IO::Handle; IO::Select Socket IO::Socket::INET POE Clone 这个几个包。

下载安装包simsearch.tgz 解压缩后进入simsearch目录 运行方法: 1启动服务器: 运行命令./simsearch_server.pl &

2重新加载索引(启动时自动加载) 索引配置文件是test.nomsolo/ME_file 文件格式是 2列,第一列是输入句子,第二句是输出句子 重新建立索引运行命令: ./reload.sh 会重新读取 test.nomsolo/ME_file里的内容

查询测试脚本run_search.sh ./run_search.sh 输入的句子是"你有几个妹妹" 输出结果: 你有妹妹吗 我妹妹,还在实验室里 你 有 妹00.461538461538462 虽然配置文件里没有精确的输入 你有几个妹妹 但是给出了个最相近的配置答 案。

支持多用户,支持停用词表,支持相似度排序和条数输出。 run_search.sh里第二条参数showmatch 是搜索精确包含有索引单子的数据。 运行参数说明:

./simsearch_client.pl 你有几个妹 showtop 4 n test.nomsolo

“你有几个妹” 是输入文本 showtop 是模糊搜索,应用在错字少字多字的问题 搜索, 4 是输出4条结果 test.nomsolo是用户名 支持多用户不同配置。 基于GPL协议。

数据与资源

其他信息

价值
作者 张博
维护者 张博
最近更新 三月 18, 2020, 10:38 (UTC)
创建的 三月 18, 2020, 10:38 (UTC)