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

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

 

目标:

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

 

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

 

 

一、Synonyms的使用

1. 安装

pip install -U synonyms

2. 测试

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

 

二、Synonyms原理与源码解析

1. Synonyms原理

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

 

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

 

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

 

2、源码解析

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

 

 

参考博客:

  1. Synonyms,一个开源的中文近义词工具包
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页