赞
踩
注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】
新词发现是一个非常重要的NLP课题。在处理文本对象时,非常关键的问题在于“切词”这个环节,几乎所有的后续结果都依赖第一步的切词。因此切词的准确性在很大程度上影响着后续的处理,切词结果的不同,也就影响了特征的提取,跟数据挖掘一样,特征提取的好坏特别重要,不论用什么算法,特征好数据好结果才会好。
短语提取是指从文章中提取典型的、有代表性的短语,期望能够表达文章的关键内容。关键短语抽取对于文章理解、搜索、分类、聚类都很重要。而高质量的关键短语抽取算法,还能有效助力构建知识图谱。
本章对新词发现和短语提取的算法原理进行介绍,并用开源工具代码演示其功能。
新词发现是 NLP 的基础任务之一,通过对已有语料进行挖掘,从中识别出新词。新词发现也可称为未登录词识别,严格来讲,新词是指随时代发展而新出现或旧词新用的词语。同时,我认为特定领域的专有名词也可归属于新词的范畴。何出此言呢?通常我们会很容易找到通用领域的词表,但要找到某个具体领域的专有名词则非常困难,因此特定领域的专有名词相对于通用领域的词语即为新词。换言之,“新”并非只是时间上的概念,同样可以迁移到领域或空间上。因此,新词发现不仅可以挖掘随时间变化而产生的新词,也可以挖掘不同领域的专有名词。
接下来,让我们开始一场新词发现的探索之旅吧。首先,对于“新词发现”这个标题,我们可将其拆分为“发现”和“新词”两个步骤:
“发现”:依据某种手段或方法,从文本中挖掘词语,组成新词表;
“新词”:借助挖掘得到的新词表,和之前已有的旧词表进行比对,不在旧词表中的词语即可认为是新词。
“新词发现”的难点主要在于“发现”的过程——如何从文本中挖掘到词语?那么有办法回避这个问题吗?让我们思索一下“新词”的过程:比对挖掘得到的新词表和旧词表,从代码的角度来说。
for 新词 in 新词表:
if 新词 not in 旧词表:
print(“这是新词”)
简单地讲,只要不是旧词就是新词呗,那么我们在对文本进行分词时,假设分词工具可以得到旧词,那么分词工具不能切分、切分有误或切分后不在旧词表中的词语不就是新词了吗?这就是“新词发现”的传统做法——基于分词的方法。除了分词方法外,还有基于规则和基于统计的方法,下面一一讲解。
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 充电了么App - 陈敬雷 * 充电了么App官网:http://chongdianleme.com/ * 充电了么App - 专注上班族职业技能提升充电学习的在线教育平台 * 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;
此文章有对应的配套视频,其它更多精彩文章请大家下载充电了么app,可获取千万免费好课和文章,配套新书教材请看陈敬雷新书:《分布式机器学习实战》(人工智能科学与技术丛书)
【新书介绍】
《分布式机器学习实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】
新书特色:深入浅出,逐步讲解分布式机器学习的框架及应用配套个性化推荐算法系统、人脸识别、对话机器人等实战项目
【新书介绍视频】
分布式机器学习实战(人工智能科学与技术丛书)新书【陈敬雷】
视频特色:重点对新书进行介绍,最新前沿技术热点剖析,技术职业规划建议!听完此课你对人工智能领域将有一个崭新的技术视野!职业发展也将有更加清晰的认识!
【精品课程】
《分布式机器学习实战》大数据人工智能AI专家级精品课程
【免费体验视频】:
人工智能百万年薪成长路线/从Python到最新热点技术
视频特色: 本系列专家级精品课有对应的配套书籍《分布式机器学习实战》,精品课和书籍可以互补式学习,彼此相互补充,大大提高了学习效率。本系列课和书籍是以分布式机器学习为主线,并对其依赖的大数据技术做了详细介绍,之后对目前主流的分布式机器学习框架和算法进行重点讲解,本系列课和书籍侧重实战,最后讲几个工业级的系统实战项目给大家。 课程核心内容有互联网公司大数据和人工智能那些事、大数据算法系统架构、大数据基础、Python编程、Java编程、Scala编程、Docker容器、Mahout分布式机器学习平台、Spark分布式机器学习平台、分布式深度学习框架和神经网络算法、自然语言处理算法、工业级完整系统实战(推荐算法系统实战、人脸识别实战、对话机器人实战)、就业/面试技巧/职业生涯规划/职业晋升指导等内容。
【充电了么公司介绍】
充电了么App是专注上班族职业培训充电学习的在线教育平台。
专注工作职业技能提升和学习,提高工作效率,带来经济效益!今天你充电了么?
充电了么官网
http://www.chongdianleme.com/
充电了么App官网下载地址
https://a.app.qq.com/o/simple.jsp?pkgname=com.charged.app
功能特色如下:
【全行业职位】 - 专注职场上班族职业技能提升
覆盖所有行业和职位,不管你是上班族,高管,还是创业都有你要学习的视频和文章。其中大数据智能AI、区块链、深度学习是互联网一线工业级的实战经验。
除了专业技能学习,还有通用职场技能,比如企业管理、股权激励和设计、职业生涯规划、社交礼仪、沟通技巧、演讲技巧、开会技巧、发邮件技巧、工作压力如何放松、人脉关系等等,全方位提高你的专业水平和整体素质。
【牛人课堂】 - 学习牛人的工作经验
1.智能个性化引擎:
海量视频课程,覆盖所有行业、所有职位,通过不同行业职位的技能词偏好挖掘分析,智能匹配你目前职位最感兴趣的技能学习课程。
2.听课全网搜索
输入关键词搜索海量视频课程,应有尽有,总有适合你的课程。
3.听课播放详情
视频播放详情,除了播放当前视频,更有相关视频课程和文章阅读,对某个技能知识点强化,让你轻松成为某个领域的资深专家。
【精品阅读】 - 技能文章兴趣阅读
1.个性化阅读引擎:
千万级文章阅读,覆盖所有行业、所有职位,通过不同行业职位的技能词偏好挖掘分析,智能匹配你目前职位最感兴趣的技能学习文章。
2.阅读全网搜索
输入关键词搜索海量文章阅读,应有尽有,总有你感兴趣的技能学习文章。
【机器人老师】 - 个人提升趣味学习
基于搜索引擎和智能深度学习训练,为您打造更懂你的机器人老师,用自然语言和机器人老师聊天学习,寓教于乐,高效学习,快乐人生。
【精短课程】 - 高效学习知识
海量精短牛人课程,满足你的时间碎片化学习,快速提高某个技能知识点。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。