用于计算可哈希数据类型序列相似度度量的库
项目描述
seqsim
Python库,用于计算可哈希数据类型序列的距离和相似度。
虽然作为通用库开发,但seqsim
主要设计用于文化进化领域的研究,尤其是文本传统的文化进化。一些方法作为标准Python库或其他库(如textdistance)的轻量级包装器。
安装
在任何标准Python环境中,可以使用以下命令安装seqsim
:
$ pip install seqsim
用法
该库提供了不同的方法来比较任意可哈希元素的序列。可以混合序列和元素类型。
完整文档可在ReadTheDocs找到,并提供了几乎完全覆盖的代码测试。对于大多数常见用法,可以使用包装函数.distance()
。
>>> import seqsim
>>> seqsim.edit.levenshtein_dist("kitten", "string")
5
>>> seqsim.edit.levenshtein_dist("kitten", "string", normal=True)
>>> 0.8333333333333334
>>> seqsim.sequence.ratcliff_obershelp([1,2,3,4], [2,4,3,5])
0.5
>>> seqsim.compression.entropy_ncd([1,2,3,4], [2,4,3,5])
0.08333333333333333
演示
该库的核心是任意数据类型的序列距离/相似度度量,如下表所示。
方法 | "kitten" / "sitting" | (1, 2, 3, 4) / (3, 4, 2, 1) |
---|---|---|
arith_ncd | 1.25 | 0.888889 |
arith_ncd_normal | 1.25 | 0.888889 |
birnbaum | 0.666667 | 0.7 |
birnbaum_normal | 0.666667 | 0.7 |
birnbaum_simil | 7 | 3 |
birnbaum_simil_normal | 0.25 | 0.3 |
bulk_delete | 3 | 3 |
bulk_delete_normal | 0.428571 | 0.75 |
damerau | 3 | 4 |
damerau_normal | 0.428571 | 1 |
entropy | 0.101341 | 0 |
entropy_normal | 0.101341 | 0 |
fragile_ends_simil | 3 | 3.5 |
fragile_ends_simil_normal | 0.5 | 1 |
jaccard | 0.7 | 0 |
jaccard_normal | 0.7 | 0 |
jaro | 0.253968 | 0.5 |
jaro_normal | 0.253968 | 0.5 |
jaro_winkler | 0.253968 | 0.5 |
jaro_winkler_normal | 0.253968 | 0.5 |
levenshtein | 3 | 4 |
levenshtein_normal | 0.428571 | 1 |
mmcwpa | 0.538462 | 0.387628 |
mmcwpa_normal | 0.538462 | 0.387628 |
ratcliff_obershelp | 0.384615 | 0.5 |
ratcliff_obershelp_normal | 0.384615 | 0.5 |
索尔森 | 0.384615 | 0 |
索尔森_normal | 0.384615 | 0 |
词根比较相似度 | 3 | 3 |
词根比较相似度_normal | 0.428571 | 0.75 |
子序列贾卡德 | 0.751556 | 0.547008 |
子序列贾卡德_normal | 0.751556 | 0.547008 |
变更日志
版本 0.3.1
- 修复了由于方法中一个打字错误导致的错误
- 选择了一个Birnbaum实现
版本 0.3
- 代码质量、文档和参考文献的改进
- 添加了新的方法和脚手架,以支持未来的扩展
版本 0.2
- 第一个支持任何可哈希Python数据类型序列的新路线图版本,从其他项目(主要是从
titivillus
)导入代码
社区指南
尽管可以直接联系作者以获取支持,但建议第三方使用GitHub标准功能,如问题和拉取请求,以贡献、报告问题或寻求支持。
贡献指南,包括行为准则,可在CONTRIBUTING.md
文件中找到。
作者和引用
该库是在“文化文本演化”项目背景下开发的,由Riksbankens Jubileumsfond提供资金(协议编号:MXM19-1087:1)。
如果您使用seqsim
,请按照以下方式引用它:
Tresoldi, Tiago; Maurits, Luke; Dunn, Michael. (2021). seqsim,用于计算可哈希数据类型序列距离和相似度度的库。版本 0.3.2. 乌普萨拉:乌普萨拉大学。可在以下网址找到:[https://github.com/evotext/seqsim](https://github.com/evotext/seqsim)
在BibTeX中
@misc{Tresoldi2021seqsim,
author = {Tresoldi, Tiago; Maurits, Luke; Dunn, Michael},
title = {seqsim, a library for computing measures of distance and similarity for sequences of hashable data types. Version 0.3.2},
howpublished = {\url{https://github.com/evotext/seqsim}},
address = {Uppsala},
publisher = {Uppsala universitet},
year = {2021},
}
参考文献
此文件顶部的图像来源于Yves de Saint-Denis的《Vie et martyre de saint Denis et de ses compagnons, versions latine et française》。从法国国家图书馆,手稿部,法国2090号,第12面v提供高分辨率版本。
有关各种实现的引用可在源代码注释和在线文档中找到。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。