自然语言处理系列四十二》新词发现与短语提取》新词发现》代码实战

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

文章目录

自然语言处理系列四十二

新词发现》代码实战

新词发现是 NLP 的基础任务之一,通过对已有语料进行挖掘,从中识别出新词。上一篇文章已经对新词发现做了详细介绍,下面展示代码,HanLP工具提供了新词发现的功能,代码如11.1所示。

【代码11.1】 FindNewWord.java

java 复制代码
package com.chongdianleme.job;
import org.ansj.dic.LearnTool;
import org.ansj.splitWord.analysis.NlpAnalysis;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
 * Created by 充电了么 - 陈敬雷
 * 充电了么 - 专注上班族教育培训和职业技能提升充电学习的在线教育平台
 * HanLP新词发现功能,开源地址:https://github.com/hankcs/HanLP
*/
public class FindNewWord {
    public static void main(String[] args) {
        String content = "分布式机器学习实战(人工智能科学与技术丛书)作者陈敬雷,责任编辑赵佳霓,此书深入浅出,逐步讲解分布式机器学习的框架及应用配套个性化推荐算法系统、人脸识别、对话机器人等实战项目,并有以下名人陈兴茂,梅一多,杨正洪,刘冬冬,龙旭东联袂推荐:" +
                "------陈兴茂 猎聘CTO\n" +
                "------梅一多 博士 上海市青年拔尖人才,中基凌云科技有限公司联合创始人\n" +
                "------杨正洪 博士 中央财经大学财税大数据实验室首席科学家\n" +
                "------刘冬冬 首席数据官联盟创始人\n" +
                "------龙旭东 北京掌游智慧科技有限公司董事长";
        List<String> newWordList = findNewWords(content);
        System.out.println(StringUtils.join(newWordList,","));
    }
    /**
     * HanLP新词发现
     * @param content
     * @return
     */
    public static List<String> findNewWords(String content){
        LearnTool learnTool = new LearnTool();
        NlpAnalysis nlpAnalysis = new NlpAnalysis().setLearnTool(learnTool) ;
        nlpAnalysis.parseStr(content);
        List<Map.Entry<String, Double>> topTree = learnTool.getTopTree(0);
        List<String> newWords = new ArrayList<String>();
        if(topTree!=null){
            for (Map.Entry<String, Double> entry : topTree) {
                newWords.add(entry.getKey());
            }
        }
        return newWords;
    }
}

短语提取算法原理

下一篇文章详细讲解短语提取算法原理,敬请关注。

总结

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

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

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

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

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

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

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

上一篇:自然语言处理系列四十一》新词发现与短语提取》新词发现算法原理
下一篇:自然语言处理系列四十三》新词发现与短语提取》短语提取》算原理

相关推荐
移远通信37 分钟前
2025上海车展 | 移远通信全栈车载智能解决方案重磅亮相,重构“全域智能”出行新范式
人工智能
lybugproducer2 小时前
创建型设计模式之:简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式
java·设计模式·建造者模式·简单工厂模式·工厂方法模式·抽象工厂模式·面向对象
南客先生2 小时前
马架构的Netty、MQTT、CoAP面试之旅
java·mqtt·面试·netty·coap
Minyy112 小时前
SpringBoot程序的创建以及特点,配置文件,LogBack记录日志,配置过滤器、拦截器、全局异常
xml·java·spring boot·后端·spring·mybatis·logback
百锦再2 小时前
Java与Kotlin在Android开发中的全面对比分析
android·java·google·kotlin·app·效率·趋势
武昌库里写JAVA3 小时前
39.剖析无处不在的数据结构
java·vue.js·spring boot·课程设计·宠物管理
蹦蹦跳跳真可爱5894 小时前
Python----深度学习(基于深度学习Pytroch簇分类,圆环分类,月牙分类)
人工智能·pytorch·python·深度学习·分类
Nelson_hehe5 小时前
Java基础第四章、面向对象
java·语法基础·面向对象程序设计
蚂蚁20145 小时前
卷积神经网络(二)
人工智能·计算机视觉
Thomas_YXQ5 小时前
Unity3D Lua集成技术指南
java·开发语言·驱动开发·junit·全文检索·lua·unity3d