Synonyms——中文近义词工具【含源码解析与改进】

目标:

  • 1. 使用Synonyms包解决NLP问题,落实到业务中;
  • 2. 解析Synonyms源码,厘清原理
  • 3. 结合个人理解,提出改进方案

背景:Synonyms 是一个中文近义词工具包,它可用于如文本对齐、推荐算法、相似度计算、语义偏移、关键字提取、概念提取、自动摘要、搜索引擎等很多自然语言理解(NLP)任务。

  • Synonyms的码云地址:https://gitee.com/mirrors/Synonyms?_from=gitee_search(含具体用法)
  • Synonyms的Github地址:https://github.com/huyingxi/Synonyms

一、Synonyms的使用

1. 安装

pip install -U synonyms

2. 测试

说明:其他用法,见官网。

二、Synonyms原理与源码解析

1. Synonyms原理

  • A. 利用word2vec训练wikidata-corpus,得到一个词向量;训练方法原作者是提供了的,具体过程见https://github.com/chatopera/wikidata-corpus;

PS:如果觉得百科语料满足不了你的需求,可以自己准备个规模更大的语料集,进行训练,比如腾讯词向量。说到这里很多朋友或许知道,AINLP公众号里面不是也有一个同义词功能吗?那个的原理什么?这个留个坑位,下篇博客介绍。

  • B. 利用改写的gensim.models.KeyedVectors.load_word2vec_format函数,当然有些其他的文件。作者改后的文件如下:

  • C. 将词向量建成KD-Tree【API文档】,用于最近邻相似检索【同义词核心点】,代码其实就2~3行。此处先占个坑位,提供一篇个人博客,专门总结相似度检索的业内做法。
  • D. 输入关键词keyword,转为词向量后,从KD-Tree中快速找到Top K的相似关键词索引与相似值【该值是建树时的一种距离计算方式】,最后再查表找到最终的相似关键词。如果想计算余弦相似度,逐一转为词向量计算一次就行。

2、源码解析

这部分主要目的:建立在跑通源码的基础上,谈下这个方法的亮点以及不足。

参考博客:

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

Synonyms——中文近义词工具【含源码解析与改进】相关推荐

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

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

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

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

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

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

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

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

  5. [c#]一键设置popo猫回收站工具含源码

    功能介绍: [c#]一键设置popo猫回收站工具含源码 在抖音上看到挺好玩的,设置popo猫回收站图标,回收站内没有文件时嘴巴是张开的,当回收站内放置文件时嘴巴是闭合的. 其实功能实现很简单,准备两个 ...

  6. 免Root 实现App加载Xposed插件的工具Xpatch源码解析(一)

    前言 Xpatch是一款免Root实现App加载Xposed插件的工具,可以非常方便地实现App的逆向破解(再也不用改smali代码了),源码也已经上传到Github上,欢迎各位Fork and St ...

  7. Android EventBus使用(不含源码解析)

    官方文档:https://github.com/greenrobot/EventBus simplifies the communication between components decouple ...

  8. 微信小程序实现PDF预览功能——pdf.js(含源码解析)

    文章目录 前言 一.pdf.js 是什么? 二.使用步骤 1.下载库文件 2.使用方式 微信小程序端--使用 web-view 标签 H5 端--使用 iframe 标签(使用vue框架) 3.更改源 ...

  9. 中文分词算法工具hanlp源码解析

    词图 词图指的是句子中所有词可能构成的图.如果一个词A的下一个词可能是B的话,那么A和B之间具有一条路径E(A,B).一个词可能有多个后续,同时也可能有多个前驱,它们构成的图我称作词图. 需要稀疏2维 ...

  10. 自制小工具含源码——SPTC上海交通卡余额查询

    说明 需求 开发 其他

最新文章

  1. hbase 0.96 java api_HBase(九) HBase JAVA API - 运维API
  2. python一般用来开发什么-python主要用来做什么?Python开发简单吗?
  3. [見好就收]NET 2.0 - WinForm Control - DataGridView 编程36计
  4. navicat 添加外键1215错误
  5. 异常在哪一层处理_WiFi速度慢,信号不稳定,除了重启路由器外,自己能怎么处理?...
  6. Grand Central Dispatch(GCD)
  7. python123手机版math库-python学习笔记---math,random,operator(三)
  8. 转:LoadRunner检查点使用小结
  9. USA 2008 Presidential Debate
  10. java 分页导入_Java 插入分页符和分节符到Word文档
  11. 电路方案分析(十三)采用 CAN 的汽车分立式 SBC 预升压、后降压参考设计方案
  12. 方差分析——单因素方差分析
  13. 比较 SVFI-RIFE 和 DAIN-APP 补针效果 施工中 ~
  14. C程序设计(谭浩强)--学习笔记
  15. 数据中台技术架构方案
  16. linux提升普通用户权限
  17. L1-7 qls学习字符串 (20分)
  18. Acrobat Pro DC 教程:如何在 PDF 中插入其他 PDF 文件?
  19. 联咏NT98525/8开发板套件,开发者的福音
  20. visio2013复制到word有多余白边_[office 2016]visio图全选复制后粘贴到word后有很宽空白的解决...

热门文章

  1. 无法在驱动器0的分区1上安装windows
  2. HTML链接和锚点学习---第四天
  3. 在TMS320F28XXX DSP上实现从flash拷贝整个程序到ram运行的方法探讨
  4. 主流前端框架的介绍优缺点
  5. GB28181 视频服务器文档整理
  6. 无人机通信方式及原理
  7. 三步解决error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“
  8. 2020-02-13
  9. STM32单线串口对总线舵机的控制
  10. 非参数中的秩和检验到底怎么做的?