Chinese Synonyms for Natural Language Processing and Understanding.

最好的中文近义词工具包。

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

Table of Content:

  • Install
  • Usage
  • Quick Get Start
  • Valuation
  • Benchmark
  • Statement
  • References
  • Frequently Asked Questions
  • License

Welcome

pip install -U synonyms

兼容py2和py3,当前稳定版本 v3.x。

Node.js 用户可以使用 node-synonyms了。

npm install node-synonyms

本文档的配置和接口说明面向python工具包, node版本查看项目。

Usage

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

环境变量 描述
SYNONYMS_WORD2VEC_BIN_MODEL_ZH_CN 使用word2vec训练的词向量文件,二进制格式。
SYNONYMS_WORDSEG_DICT 中文分词主字典,格式和使用参考

synonyms#seg

中文分词

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

分词结果,由两个list组成的元组,分别是单词和对应的词性。

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

该分词不去停用词和标点。

synonyms#nearby

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

synonyms.nearby(WORD)返回一个元组,元组中包含两项:([nearby_words], [nearby_words_score])nearby_words是WORD的近义词们,也以list的方式存储,并且按照距离的长度由近及远排列,nearby_words_scorenearby_words中对应位置的词的距离的分数,分数在(0-1)区间内,越接近于1,代表越相近。比如:

synonyms.nearby(人脸) = (["图片", "图像", "通过观察", "数字图像", "几何图形", "脸部", "图象", "放大镜", "面孔", "Mii"], [0.597284, 0.580373, 0.568486, 0.535674, 0.531835, 0.530
095, 0.525344, 0.524009, 0.523101, 0.516046])

在OOV的情况下,返回 ([], []),目前的字典大小: 125,792。

synonyms#compare

两个句子的相似度比较

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

其中,参数 seg 表示 synonyms.compare是否对sen1 和 sen2进行分词,默认为 True。返回值:[0-1],并且越接近于1代表两个句子越相似。

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

synonyms#display

以友好的方式打印近义词,方便调试,display调用了 synonyms#nearby 方法。

>>> synonyms.display("飞机")
'飞机'近义词:1. 架飞机:0.8373992. 客机:0.7646093. 直升机:0.7621164. 民航机:0.7505195. 航机:0.7501166. 起飞:0.7357367. 战机:0.7349758. 飞行中:0.7326499. 航空器:0.72394510. 运输机:0.720578

PCA

以“人脸”为例主要成分分析:

Quick Get Start

$ pip install -r Requirements.txt
$ python demo.py

Change logs

更新情况说明。

Voice of Users

用户怎么说:

Data

data is built based on wikidata-corpus.

Valuation

同义词词林

《同义词词林》是梅家驹等人于1983年编纂而成,现在使用广泛的是哈工大社会计算与信息检索研究中心维护的《同义词词林扩展版》,它精细的将中文词汇划分成大类和小类,梳理了词汇间的关系,同义词词林扩展版包含词语7万余条,其中3万余条被以开放数据形式共享。

知网, HowNet

HowNet,也被称为知网,它并不只是一个语义字典,而是一个知识系统,词汇之间的关系是其一个基本使用场景。知网包含词语8余条。

国际上对词语相似度算法的评价标准普遍采用 Miller&Charles 发布的英语词对集的人工判定值。该词对集由十对高度相关、十对中度相关、十对低度相关共 30 个英语词对组成,然后让38个受试者对这30对进行语义相关度判断,最后取他们的平均值作为人工判定标准。然后不同近义词工具也对这些词汇进行相似度评分,与人工判定标准做比较,比如使用皮尔森相关系数。在中文领域,使用这个词表的翻译版进行中文近义词比较也是常用的办法。

对比

Synonyms的词表容量是125,792,下面选择一些在同义词词林、知网和Synonyms都存在的几个词,给出其近似度的对比:

注:同义词林及知网数据、分数来源。Synonyms也在不断优化中,新的分数可能和上图不一致。

更多比对结果。

Benchmark

Test with py3, MacBook Pro.

python benchmark.py

++++++++++ OS Name and version ++++++++++

Platform: Darwin

Kernel: 16.7.0

Architecture: ('64bit', '')

++++++++++ CPU Cores ++++++++++

Cores: 4

CPU Load: 60

++++++++++ System Memory ++++++++++

meminfo 8GB

synonyms#nearby: 100000 loops, best of 3 epochs: 0.209 usec per loop

Live Sharing

52nlp.cn

机器之心

线上分享实录: Synonyms 中文近义词工具包 @ 2018-02-07

Statement

Synonyms发布证书 MIT。数据和程序可用于研究和商业产品,必须注明引用和地址,比如发布的任何媒体、期刊、杂志或博客等内容。

@online{Synonyms:hain2017,author = {Hai Liang Wang, Hu Ying Xi},title = {中文近义词工具包Synonyms},year = 2017,url = {https://github.com/huyingxi/Synonyms},urldate = {2017-09-27}
}

References

wikidata-corpus

word2vec原理推导与代码分析

Frequently Asked Questions (FAQ)

  1. 是否支持添加单词到词表中?

不支持,欲了解更多请看 #5

  1. 词向量的训练是用哪个工具?

Google发布的word2vec,该库由C语言编写,内存使用效率高,训练速度快。gensim可以加载word2vec输出的模型文件。

  1. 相似度计算的方法是什么?

详见 #64

Authors

Hai Liang Wang

Hu Ying Xi

Give credits to

Word2vec by Google

Wikimedia: 训练语料来源

gensim: word2vec.py

SentenceSim: 相似度评测语料

jieba: 中文分词

License

MIT

原文地址:https://php.ctolib.com/article/wiki/73751

python 伪原创 中文近义词工具包【转】相关推荐

  1. Synonyms:一个开源的中文近义词工具包

    作者:Synonyms 项目的作者胡小夕是北京邮电大学研究生,目前实习于今日头条 AI LAB.从事自然语言处理方向研究,在智能客服,知识图谱等领域都有相关研究开发经验. 工具包技术说明:该中文近义词 ...

  2. 安装使用中文近义词工具包:Synonyms

    Synonyms: 中文近义词工具包 前言 安装 使用 synonyms#nearby(word [, size = 10]) synonyms#compare(sen1, sen2 [, seg=T ...

  3. Synonyms最好的中文近义词工具包

    1.中文分词 import synonyms synonyms.seg("中文近义词工具包") 分词结果,由两个list组成的元组,分别是单词和对应的词性. (['中文', '近义 ...

  4. python中文近义词工具_Windows10下python3.5对维基百科语料用word2vec进行训练寻找同义词相似度...

    首先把需要下载的东西都列出来 1. 语料:下载地址是https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml ...

  5. Python synonyms查找中文任意词汇的同义词近义词

    Python synonyms查找中文任意词汇的同义词近义词 作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!

  6. python寻找近义词:预训练模型 nltk+20newsbydate / gensim glove 转 word2vec

    本文用python寻找英文近义词(中文:https://github.com/huyingxi/Synonyms) 使用的都是预训练模型 方法一.nltk+20newsbydate (运行时下载太慢/ ...

  7. JAVA ik es_安装elasticsearch及中文IK和近义词配置

    安装elasticsearch及中文IK和近义词配置 安装java环境 java环境是elasticsearch安装必须的 yum install java-1.8.0-openjdk 安装elast ...

  8. 安装elasticsearch及中文IK和近义词配置

    安装elasticsearch及中文IK和近义词配置 安装java环境 java环境是elasticsearch安装必须的 yum install java-1.8.0-openjdk 安装elast ...

  9. python synonyms 近义词

    from scipy import spatial import synonyms S1 = '尽管步履维艰,我们依然不会放弃' S2 = '就算困难重重,咱们仍旧不能退出'# 使用 synonyms ...

  10. python 近义词库包 synonyms 的使用

    最近接触到nlp的一些东西,需要找出中文词语的近义词,也接触到了一个synonyms 的库, 分词,去停用词,word2vector  等 一些列nlp 的操作,还可以输出中文词语的近义词 https ...

最新文章

  1. 数据分析需求转型与商业模式重构
  2. mysql有没有批量游标_MySQL使用游标批量处理进行表操作_MySQL
  3. SQLite Insert 语句(http://www.w3cschool.cc/sqlite/sqlite-insert.html)
  4. 进销存中多计量单位解决方法
  5. 研究生导师一般希望招什么样的研究生?
  6. JEECG Excel 实体类
  7. msys2软件包管理工具pacman常用命令
  8. Zephyr调整Main栈大小
  9. Template Power
  10. hyperedger +fabric 区块链实践
  11. 我国5G现状:今年底或发放5G牌照
  12. 独上高楼望尽天涯路;为伊得人憔悴、衣带渐宽终不悔;几处早莺争暖树,乱花渐欲迷人眼;梅先菊后何须较、好似人生各有时;
  13. win7桌面上计算机图标名称怎么改,win7电脑桌面图标排列方式如何设置 win7电脑桌面图标排列方法...
  14. 微博小尾巴自定义去掉android,新浪微博小尾巴怎么改 自定义微博小尾巴修改教程...
  15. 网络安全kali渗透学习 web渗透入门 使用msf扫描靶机上mysql服务的空密码
  16. 梦幻西游两个不同服务器的名字出现在跨服华山,系统会怎么处理,梦幻西游跨服决战华山测试报告【攻略达人】...
  17. 北大集训2020游记
  18. linux系统与Windows7系统之间文件的兼容性问题
  19. 有点Python编程基础,怎么赚点小钱?
  20. Easymall项目分布式拆分整合(四)

热门文章

  1. TM(qq) 默认表情丢失
  2. QT界面程序异常结束问题分析 ,弹出 SogouInput\Components\
  3. kitkat(KRT16S)从hal层到app层写法
  4. 廖雪峰Git教程学习总结
  5. php开发电脑i56200u,八代酷睿处理器好不好?i5-6200U处理器/i5-8250U处理器对比评测...
  6. 啊哈算法---快速排序(C语言)
  7. 利用VBB仿真——实现24小时电子钟
  8. ContextCapture(smart3D)10.20.下载安装教程
  9. 谷歌浏览器批量图片下载插件-合成pdf
  10. keil4 c语言标准,求助!关于KEIL4和C语言