Skip to main content

char-similar

汉字字形/拼音/语义相似度(单字, 可用于数据增强, CSC错别字检测识别任务(构建混淆集))

一、安装



0. 注意事项


   默认不指定numpy版本(标准版numpy==1.22.4), 过高或者过低的版本可能不支持


   标准版本的依赖包详见 requirements-all.txt


   


1. 通过PyPI安装


   pip install char-similar


   使用镜像源, 如:


   pip install -i https://pypi.tuna.tsinghua.edu.cn/simple char-similar


二、使用方式

2.1 快速使用

from char_similar import std_cal_sim


char1 = "我"


char2 = "他"


res = std_cal_sim(char1, char2)


print(res)


# output:


# 0.5821

2.2 详细使用

from char_similar import std_cal_sim


# "all"(字形:拼音:字义=1:1:1)  # "w2v"(字形:字义=1:1)  # "pinyin"(字形:拼音=1:1)  # "shape"(字形=1)


kind = "shape"


rounded = 4  # 保留x位小数


char1 = "我"


char2 = "他"


res = std_cal_sim(char1, char2, rounded=rounded, kind=kind)


print(res)


# output:


# 0.5821

2.3 多线程使用

from char_similar import pool_cal_sim


# "all"(字形:拼音:字义=1:1:1)  # "w2v"(字形:字义=1:1)  # "pinyin"(字形:拼音=1:1)  # "shape"(字形=1)


kind = "shape"


rounded = 4  # 保留x位小数


char1 = "我"


char2 = "他"


res = pool_cal_sim(char1, char2, rounded=rounded, kind=kind)


print(res)


# output:


# 0.5821

2.4 多进程使用(不建议, 实现得较慢)

if __name__ == '__main__':


    from char_similar import multi_cal_sim


    # "all"(字形:拼音:字义=1:1:1)  # "w2v"(字形:字义=1:1)  # "pinyin"(字形:拼音=1:1)  # "shape"(字形=1)


    kind = "shape"


    rounded = 4  # 保留x位小数


    char1 = "我"


    char2 = "他"


    res = multi_cal_sim(char1, char2, rounded=rounded, kind=kind)


    print(res)


    # output:


    # 0.5821

三、技术原理



char-similar最初的使用场景是计算两个汉字的字形相似度(构建csc混淆集), 后加入拼音相似度,字义相似度,字频相似度...详见源码.





# 四角码(code=4, 共5位), 统计四个数字中的相同数/4


# 偏旁部首, 相同为1


# 词频log10, 统计大规模语料macropodus中词频log10的 1-(差的绝对值/两数中的最大值)


# 笔画数, 1-(差的绝对值/两数中的最大值)


# 拆字, 集合的与 / 集合的并


# 构造结构, 相同为1


# 笔顺(实际为最小的集合), 集合的与 / 集合的并


# 拼音(code=4, 共4位), 统计四个数字中的相同数(拼音/声母/韵母/声调)/4


# 词向量, char-word2vec, cosine


四、参考(部分字典来源以下项目)

Reference

For citing this work, you can refer to the present GitHub project. For example, with BibTeX:



@misc{Macropodus,


    howpublished = {https://github.com/yongzhuo/char-similar},


    title = {char-similar},


    author = {Yongzhuo Mo},


    publisher = {GitHub},


    year = {2024}


}


Metadata

Release files for char-similar 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for char-similar 0.0.2
File Interpreter ABI Platform
char_similar-0.0.2-py2.py3-none-any.whl Python 2, Python 3 none any Details

Release files / char_similar-0.0.2-py2.py3-none-any.whl

Download URL char_similar-0.0.2-py2.py3-none-any.whl
Size 777.8 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
18d25caff0cd430bb142277320df5061e1997165b1cb8f47bfdc4b5d2ec09adc
BLAKE2b-256 checksum
How to use checksums
e45380f49837ff1df6e6b74cb4e8f1674e229133d287aac0e9dfe13c3620162f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.8.13

Release history Release notifications | RSS feed

This release

0.0.2 This release

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page