首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

自然语言处理系列三十四》 语义相似度》同义词词林》代码实战

  • 25-03-04 04:22
  • 2300
  • 6792
blog.csdn.net

注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】

文章目录

  • 自然语言处理系列三十四
    • HanLP自然语言处理工具包
      • 代码实战
      • 同义词词林的词典扩展策略
      • 基于深度学习的语义相似度
  • 总结

自然语言处理系列三十四

HanLP自然语言处理工具包

HanLP提供了判断语义相似度的方法。HanLP是一个面向生产环境的多语种自然语言处理工具包,它基于PyTorch和TensorFlow 2.x双引擎,目标是普及落地最前沿的NLP技术。无论您是专家还是初学者,HanLP都可以让您能够轻松快速的构建、处理和“理解”大量文本的AI应用程序。HanLP 具备功能强大、易于使用、性能高效等特点。它可以进行中文分词、词性标注、命名实体识别、依存句法分析等多种自然语言处理任务。HanLP 在处理大规模文本数据时表现出色,能够快速准确地分析文本内容,为文本挖掘、信息检索、机器翻译等应用提供基础支持。

代码实战

HanLP本身就提供了语义相似度的方法,基于同义词词林实现代码如8.1所示。
【代码8.1】 SemanticsDemo.java

package com.chongdianleme.job;
import com.hankcs.hanlp.dictionary.CoreSynonymDictionary;
/**
 * Created by 充电了么App - 陈敬雷
 * 充电了么App官网:http://chongdianleme.com/
 * 充电了么App - 专注上班族职业技能提升充电学习的在线教育平台
 * 语义相似度
*/
public class SemanticsDemo {
    public static void main(String[] args) {
        similarity("人物","人选");
        similarity("良民","大家伙儿");
        //输出结果:
        // 人物:人选=1.0
        //良民:大家伙儿=0.9649740171551757
    }

    /**
     * 计算两个词的语义相似度
     * @param word1
     * @param word2
     */
    public static void similarity(String word1,String word2) {
        double sim = CoreSynonymDictionary.similarity(word1, word2);
        if(!Double.isNaN(sim)) {
            System.out.println(word1+":"+word2+"="+sim);
        }
        else
        {
            System.out.println("结果为空");
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

同义词词林的词典扩展策略

同义词词林的词典是有限的,可以用Word2Vec词向量模型去发现和拓展新的词进去,为了保证精度建议采用机器+人工整理的方式。用Word2Vec词向量模型拓展新的词,再有人工确认是不是靠谱,之后再加入到词典。后面的章节我们会单独讲到Word2Vec。另外句子和段落间的语义相似度可以基于同义词词林的词的语义相似,通过加权平均的方式来计算整个句子和段落的整体相似度分值。

基于深度学习的语义相似度

基于同义词词林的语义相似度是比较简单的,下一篇文章介绍基于深度学习的语义相似度。

总结

此文章有对应的配套新书教材和视频:

【配套新书教材】
《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】
新书特色:本书从自然语言处理基础开始,逐步深入各种NLP热点前沿技术,使用了Java和Python两门语言精心编排了大量代码实例,契合公司实际工作场景技能,侧重实战。
全书共分为19章,详细讲解中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注、文本相似度算法、语义相似度计算、词频-逆文档频率(TF-IDF)、条件随机场、新词发现与短语提取、搜索引擎Solr Cloud和Elasticsearch、Word2vec词向量模型、文本分类、文本聚类、关键词提取和文本摘要、自然语言模型(Language Model)、分布式深度学习实战等内容,同时配套完整实战项目,例如对话机器人实战、搜索引擎项目实战、推荐算法系统实战。
本书理论联系实践,深入浅出,知识点全面,通过阅读本书,读者不仅可以理解自然语言处理的知识,还能通过实战项目案例更好地将理论融入实际工作中。

【配套视频】
自然语言处理NLP原理与实战 视频教程【陈敬雷】
视频特色:《自然语言处理NLP原理与实战》包含了互联网公司前沿的热门算法的核心原理,以及源码级别的应用操作实战,直接讲解自然语言处理的核心精髓部分,自然语言处理从业者或者转行自然语言处理者必听视频!

上一篇:自然语言处理系列三十三》 语义相似度》同义词词林》算法原理
下一篇:自然语言处理系列三十五》 语义相似度》基于深度学习的语义相似度算法原理

文章知识点与官方知识档案匹配,可进一步学习相关知识
Java技能树首页概览150096 人正在系统学习中
注:本文转载自blog.csdn.net的陈敬雷-充电了么-CEO兼CTO的文章"https://blog.csdn.net/weixin_52610848/article/details/141367982"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top