Similarities: a toolkit for similarity calculation and semantic search. 语义相似度计算、匹配搜索工具包,支持文本和图像,开箱即用。
Go to file
2022-03-05 23:48:17 +08:00
.github init similarities project. 2022-02-23 19:44:53 +08:00
docs init similarities project. 2022-02-23 19:44:53 +08:00
examples update semantic sim. 2022-03-05 15:54:52 +08:00
similarities update readme 2022-03-05 23:48:17 +08:00
tests update semantic sim. 2022-03-05 15:54:52 +08:00
.gitignore init similarities project. 2022-02-23 19:44:53 +08:00
CITATION.cff update semantic sim. 2022-03-05 15:54:52 +08:00
CONTRIBUTING.md init similarities project. 2022-02-23 19:44:53 +08:00
LICENSE Initial commit 2022-02-23 18:17:53 +08:00
README.md update readme 2022-03-05 23:48:17 +08:00
requirements.txt update citation. 2022-02-28 15:09:41 +08:00
setup.py update citation. 2022-02-28 15:09:41 +08:00

PyPI version Downloads Contributions welcome GitHub contributors License Apache 2.0 python_version GitHub issues Wechat Group

Similarities

Similarities is a toolkit for similarity calculation and semantic search based on matching model.

similarities相似度计算、语义匹配搜索工具包。

similarities基于多种字面、语义匹配模型实现了各模型的相似度计算、匹配搜索功能python3开发pip安装开箱即用。

Guide

Feature

文本相似度比较方法

  • 余弦相似Cosine Similarity两向量求余弦
  • 点积Dot Product两向量归一化后求内积
  • 词移距离Word Movers Distance词移距离使用两文本间的词向量测量其中一文本中的单词在语义空间中移动到另一文本单词所需要的最短距离
  • RankBM25BM25的变种算法对query和文档之间的相似度打分得到docs的rank排序
  • SemanticSearch向量相似检索使用Cosine Similarty + topk高效计算比一对一暴力计算快一个数量级

Evaluate

文本匹配

  • 英文匹配数据集的评测结果:
Arch Backbone Model Name English-STS-B
GloVe glove Avg_word_embeddings_glove_6B_300d 61.77
BERT bert-base-uncased BERT-base-cls 20.29
BERT bert-base-uncased BERT-base-first_last_avg 59.04

Demo

Official Demo: http://42.193.145.218/product/short_text_sim/

HuggingFace Demo: https://huggingface.co/spaces/shibing624/text2vec

Install

pip3 install torch # conda install pytorch
pip3 install -U similarities

or

git clone https://github.com/shibing624/similarities.git
cd similarities
python3 setup.py install

Usage

1. 计算句子之间的相似度值

示例examples/base_demo.py

句子余弦相似度值score范围是[-1, 1],值越大越相似。

2. 计算句子与文档集之间的相似度值

一般在文档候选集中找与query最相似的文本常用于QA场景的问句相似匹配、文本相似检索等任务。

Score的值范围[-1, 1]值越大表示该query与corpus相似度越近。

Contact

  • Issue(建议)GitHub issues
  • 邮件我xuming: xuming624@qq.com
  • 微信我: 加我微信号xuming624, 备注:姓名-公司-NLP 进NLP交流群。

Citation

如果你在研究中使用了similarities请按如下格式引用

APA:

Xu, M. Similarities: Compute similarity score for humans (Version 0.0.4) [Computer software]. https://github.com/shibing624/similarities

BibTeX:

@software{Xu_Similarities_Compute_similarity,
author = {Xu, Ming},
title = {Similarities: similarity calculation and semantic search toolkit},
url = {https://github.com/shibing624/similarities},
version = {0.0.4}
}

License

授权协议为 The Apache License 2.0可免费用做商业用途。请在产品说明中附加similarities的链接和授权协议。

Contribute

项目代码还很粗糙,如果大家对代码有所改进,欢迎提交回本项目,在提交之前,注意以下两点:

  • tests添加相应的单元测试
  • 使用python setup.py test来运行所有单元测试,确保所有单测都是通过的

之后即可提交PR。

Reference