near-synonym, 中文反义词/近义词(antonym/synonym)工具包

near-synonym

near-synonym, 中文反义词/近义词(antonym/synonym)工具包.

github:https://github.com/yongzhuo/near-synonym

一、安装

1.1 注意事项

默认不指定numpy版本(标准版numpy==1.20.4)
标准版本的依赖包详见 requirements-all.txt

1.2 通过PyPI安装

pip install near-synonym
使用镜像源, 如:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple near-synonym
不带依赖安装, 之后缺什么包再补充什么
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple near-synonym --no-dependencies

1.3 模型文件

二、使用方式

2.1 快速使用, 反义词, 近义词

import near_synonym

word = "喜欢"
word_antonyms = near_synonym.antonyms(word)
word_synonyms = near_synonym.synonyms(word)
print("反义词:")
print(word_antonyms)
print("近义词:")
print(word_synonyms)
"""
反义词:
[('讨厌', 0.6954), ('不爱', 0.6714), ('偏爱', 0.6676), ('太爱', 0.6472), ('花心', 0.6421), ('在乎', 0.6395), ('好感', 0.6378), ('酷爱', 0.634)]
近义词:
[('最爱', 0.84), ('爱好', 0.8274), ('超爱', 0.8213), ('爱上', 0.8107), ('爱玩', 0.8039), ('狂爱', 0.798), ('大胆', 0.7852), ('喜欢上', 0.7826)]
请输入word:
"""

2.2 详细使用

import near_synonym

word = "喜欢"
word_antonyms = near_synonym.antonyms(word, topk=8, annk=256, annk_cpu=128, batch_size=32,
                     rate_ann=0.4, rate_sim=0.4, rate_len=0.2, rounded=4, is_debug=False)
print("反义词:")
print(word_antonyms)
# 当前版本速度很慢, 召回数量annk_cpu/annk可以调小

三、技术原理

3.1 技术详情

near-synonym, 中文反义词/近义词工具包.
流程: Word2vec -> ANN -> NLI -> Length

# Word2vec, 词向量, 使用skip-ngram的词向量;
# ANN, 近邻搜索, 使用annoy检索召回;
# NLI, 自然语言推断, 使用Roformer-sim的v2版本, 区分反义词/近义词;
# Length, 惩罚项, 词语的文本长度惩罚;

3.2 TODO

1. 推理加速, 训练小的NLI模型, 替换掉笨重且不太合适的roformer-sim-ft;
2. 使用大模型构建更多的NLI语料;

四、对比

4.1 相似度比较

词语2016词林改进版知网hownetSynonymsnear-synonym
“轿车”,“汽车”0.821.00.730.86
“宝石”,“宝物”0.830.170.710.81
“旅游”,“游历”1.01.00.590.72
“男孩子”,“小伙子”0.811.00.880.83
“海岸”,“海滨”0.941.00.680.9
“庇护所”,“精神病院”0.960.580.640.62
“魔术师”,“巫师”0.850.580.660.78
“火炉”,“炉灶”1.01.00.810.83
“中午”,“正午”0.980.580.850.88
“食物”,“水果”0.350.140.740.82
“鸟”,“公鸡”0.641.00.670.72
“鸟”,“鹤”0.11.00.640.81
“工具”,“器械”0.531.00.620.75
“兄弟”,“和尚”0.370.800.590.7
“起重机”,“器械”0.530.350.610.65
注:2016词林改进版/知网hownet/Synonyms数据、分数来源于chatopera/Synonyms。同义词林及知网数据、分数的次级来源为liuhuanyong/SentenceSimilarity

五、参考

Reference

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

@misc{Macropodus,
    howpublished = {https://github.com/yongzhuo/near-synonym},
    title = {near-synonym},
    author = {Yongzhuo Mo},
    publisher = {GitHub},
    year = {2024}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值