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

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

文章目录

自然语言处理系列三十四

HanLP自然语言处理工具包

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

代码实战

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

【代码8.1】 SemanticsDemo.java

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("结果为空");
        }
    }
}

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

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

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

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

总结

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

【配套新书教材】
《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】

新书特色:本书从自然语言处理基础开始,逐步深入各种NLP热点前沿技术,使用了Java和Python两门语言精心编排了大量代码实例,契合公司实际工作场景技能,侧重实战。

全书共分为19章,详细讲解中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注、文本相似度算法、语义相似度计算、词频-逆文档频率(TF-IDF)、条件随机场、新词发现与短语提取、搜索引擎Solr Cloud和Elasticsearch、Word2vec词向量模型、文本分类、文本聚类、关键词提取和文本摘要、自然语言模型(Language Model)、分布式深度学习实战等内容,同时配套完整实战项目,例如对话机器人实战、搜索引擎项目实战、推荐算法系统实战。

本书理论联系实践,深入浅出,知识点全面,通过阅读本书,读者不仅可以理解自然语言处理的知识,还能通过实战项目案例更好地将理论融入实际工作中。

【配套视频】
自然语言处理NLP原理与实战 视频教程【陈敬雷】

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

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

相关推荐
ajassi20007 分钟前
AI语音智能体开发日记(五)为智能设备注入“灵魂”——详解MCP工具的注册与使用
人工智能
cxoptics15 分钟前
冰洲石分束器设计与应用
java
GrowthDiary00718 分钟前
算法题:寻找二维数组top k问题
数据结构·python·算法
kobesdu24 分钟前
从零推导FAST-LIO的观测雅可比矩阵
人工智能·算法·矩阵
u01030552729 分钟前
使用BufferedReader读取控制台输入
人工智能·1024程序员节
ck-joker29 分钟前
M1 Pro跑LLM实测:Ollama+LangChain4j零成本本地大模型开发,比云端API快在哪?
java·语言模型
测试开发技术36 分钟前
AI 测试提效 | 告别手工写脚本,分享我的 Playwright + Skill 批量生成 UI 自动化脚本方案
自动化测试·人工智能·ui·自动化·agent·skill·ai测试
乐思智能科技有限公司1 小时前
PLECS软件学习使用(二)直流电机基本系统模型
人工智能·算法·机器学习·面试·职场和发展
极连AI1 小时前
极连AI平台解读、Codex5.6仅需0.01倍率,无需Token焦虑,极速响应
人工智能·gpt·chatgpt·aigc·ai编程·ai写作·gpu算力
MartinYeung51 小时前
[论文学习]PACT:溯源感知能力合约——面向智能体安全的参数级溯源
人工智能·学习·安全