简体中文 | English
Xiangsi是一个计算文本相似度的Python包,并支持中文文本(即中文分词、停用词过滤等)
Xiangsi提供4个传统相似度算法,分别是:余弦相似度,Simhash,Minhash以及Jaccard
Pip安装:
pip3 install xiangsi
国内较慢的话可以使用清华镜像:
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple xiangsi
Xiangsi会自动对文本进行中文分词处理,并过滤掉停用词。之后,Xiangsi会根据所选算法计算文本相似度。
import xiangsi as xs
xs.cossim("如何更换花呗绑定银行卡", "花呗更改绑定银行卡")
import xiangsi as xs
# Simhash
xs.simhash("如何更换花呗绑定银行卡", "花呗更改绑定银行卡")
# Minhash
xs.minhash("如何更换花呗绑定银行卡", "花呗更改绑定银行卡")
# Jaccard
xs.jaccard("如何更换花呗绑定银行卡", "花呗更改绑定银行卡")
默认的加权方法是计算每个单词在文本中出现的频率。此外,还有另外两种加权方法可供选择。
arg = [
"西班牙失业率创新高",
"澳大利亚失业率高达5.1%",
"花呗更改绑定银行卡",
"我什么时候开通了花呗",
"从这个角度来看, 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。"
"从这个角度来看, 每个人都不得不面对这些问题。"
]
xs.weight = "TFIDF" # 将加权方式设置为TFIDF
xs.construct(arg) # 输入TFIDF文本,相同的文本只需调用这个函数一次
xs.cossim("如何更换花呗绑定银行卡", "花呗更改绑定银行卡")
xs.simhash("如何更换花呗绑定银行卡", "花呗更改绑定银行卡")
xs.weight = "None" # 将加权方式设置为None
xs.cossim("如何更换花呗绑定银行卡", "花呗更改绑定银行卡")
import xiangsi as xs
#计算Simhash时取前多少的TFIDF值。默认值为64
xs.feature = 64
#计算Minhash时算出多少个哈希值。默认值为16
xs.HashNums = 16
#计算Minhash时的最大哈希。默认值为4294967311
xs.prime = 4294967311
在v4.2.1之后,Textsim支持更改停用词:
import xiangsi as xs
stopwords = ["你好", "世界"]
xs.update_stopwords(stopwords)
v4.2.3: 从xiangshi改名为xiangsi
v4.2.2: 解决路径问题
v4.2.1: 支持英文文本相似度
- v4.2.0+文本相似度的计算结果可能和v4.1.0不一样,因为v4.1.0加权方式不同。
- v4.2.0+文本相似度的输入均为两个
string
,且不与v4.1.0反向兼容。 - v4.2.0+不再支持文本聚类(如果还有人需要的话请联系我,我会另开一个包)
- 在线计算文本计算器: https://kiwirafe.com/xiangsi
- PyPI: https://pypi.org/project/xiangsi/
- Github: https://github.com/kiwirafe/xiangsi
- 下载数量: https://pepy.tech/project/xiangsi
- Gitee(中国开源): https://gitee.com/kiwirafe/xiangsi
- 关于算法的其他链接: https://github.com/kiwirafe/xiangsi/blob/master/REFERENCE