Skip to content

用AI向量搜索对存在错别字同音字漏字的搜索词进行召回

License

Notifications You must be signed in to change notification settings

sssxyd/dict-vector-search

Repository files navigation

dict-vector-search

本项目利用SentenceTransformer对字典词条进行向量化,创建Faiss向量索引,实现错别字、同音字、形似字、漏字等情况的搜索词召回。

Requirements

  • Python 3.11+

Example

Usage

创建/更新字典

  • dict/dict_words.csv:字典文件,每行一个词条
  • 包含两个字符串字段,分别为: 词条代码、词条内容
  • 可通过http(post): /put 接口上传字典文件
    curl -X POST -F "[email protected]" http://localhost:8080/put

创建索引

  • 查看帮助
    • 源码运行
      python main.py -h
    • 可执行文件运行
      cd /path/to/vector-search
      ./vector-search -h
  • 创建索引
    • 源码运行
      python main.py index -worker=4 -batch=1000 -min=2 -max=4
    • 可执行文件运行
      cd /path/to/vector-search
      ./vector-search index -worker=4 -batch=1000 -min=2 -max=4

启动服务

  • 启动服务

    • 源码运行
      python main.py server -port=8080 -log-level=info
    • 可执行文件运行
      cd /path/to/vector-search
      ./vector-search server -port=8080 -log-level=info
  • 访问帮助页面

安装

下载打包程序

从源码打包

  • 创建虚拟环境
    python -m venv .venv
    source venv/bin/activate
  • 安装依赖
    pip install -r requirements.txt
  • 下载预训练模型
    from sentence_transformers import SentenceTransformer
    
    model = SentenceTransformer('sentence-transformers/distiluse-base-multilingual-cased-v1')
    model.save('model/distiluse-base-multilingual-cased-v1')
  • 打包程序
    pyinstaller ./vector-search.spec

注意事项

  • 本例使用CPU,有GUP的情况下,可使用GPU加速,请修改faiss-cpu为faiss-gpu

About

用AI向量搜索对存在错别字同音字漏字的搜索词进行召回

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published