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

Synonyms——中文近义词工具【含源码解析与改进】Synonyms——中文近义词工具背景:Synonyms是一个中文近义词工具包,它可用于如文本对齐、推荐算法、相似度计算、语义偏移、关键字提取、概念提取、自动摘要、搜索引擎等很多自然语言理解(N

                                   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——中文近义词工具【含源码解析与改进】

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

 

二、Synonyms原理与源码解析

1. Synonyms原理

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

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

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

 

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

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

 

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

 

2、源码解析

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

 

 

参考博客:

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

今天的文章Synonyms——中文近义词工具【含源码解析与改进】分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/64671.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注