开源中文近义词工具包 Synonyms 使用教程

Synonyms — 开源中文近义词工具包

Chinese Synonyms for Natural Language Processing and Understanding — 最好的中文近义词工具包。

synonyms 可用于自然语言处理的多项任务:文本对齐、推荐算法、相似度计算、语义偏移、关键字提取、概念提取、自动摘要、搜索引擎等。

安装

Python

pip install -U synonyms

兼容 Python 2 和 3,当前稳定版本 v3.x。

Node.js

npm install node-synonyms

环境变量配置

支持使用环境变量配置分词词表和 word2vec 词向量文件:

环境变量 说明
SYNONYMS_WORD2VEC_BIN_MODEL_ZH_CN word2vec 训练的词向量文件,二进制格式
SYNONYMS_WORDSEG_DICT 中文分词主字典

中文分词

import synonyms
synonyms.seg("中文近义词工具包")

输出(单词列表和词性列表):

(['中文', '近义词', '工具包'], ['nz', 'n', 'n'])

不去停用词和标点。

获取近义词

import synonyms
print("人脸: %s" % (synonyms.nearby("人脸")))
print("识别: %s" % (synonyms.nearby("识别")))
print("NOT_EXIST: %s" % (synonyms.nearby("NOT_EXIST")))

返回 ([近义词列表], [分数列表]),分数在 0~1 之间,越接近 1 越相近。未登录词返回 ([], [])。当前字典大小:125,792

句子相似度比较

sen1 = "发生历史性变革"
sen2 = "发生历史性变革"
r = synonyms.compare(sen1, sen2, seg=True)

seg 参数表示是否对句子分词,默认为 True。返回值范围 [0, 1]。

示例:

  • 旗帜引领方向 vs 道路决定命运:0.429
  • 旗帜引领方向 vs 旗帜指引道路:0.93
  • 发生历史性变革 vs 发生历史性变革:1.0

友好打印近义词

synonyms.display("飞机")

输出:

'飞机'近义词:
1. 架飞机:0.837399
2. 客机:0.764609
3. 直升机:0.762116
...

获取词向量

>>> synonyms.v("飞机")
array([-2.412167, 2.2628384, -7.0214124, ...], dtype=float32)

未登录词抛出 KeyError。

句子向量化

synonyms.sv("句子是分词后通过空格联合起来", ignore=False)

以 BoW 方式获得句子的向量表示。ignore=True 时忽略未登录词。

THE END
喜欢就支持一下吧
点赞0 分享 收藏
评论 抢沙发
欢迎您留下宝贵的见解!(至少 2 字)
提交
昵称

昵称

昵称 表情 快捷回复

    暂无评论内容