精华内容
下载资源
问答
  • AI工程师-自然语言处理实战课程旨在用最接地气的方式讲解复杂的算法原理,基于真实数据集,通过实际案例进行项目实战。整个体系内容包括200+课时,20个项目实战,完美覆盖当下热门技术与经典框架实战。学习路线主要...
  • 随着人工智能的快速发展,自然语言处理和机器学习技术的应用愈加广泛。要想快速入门这些前沿技术总是...《自然语言处理实战入门》 专栏,同步上线,欢迎交流: https://season.blog.csdn.net/article/details/110520971
  • Python 自然语言处理实战 核心技术与算法一书的代码实现,供参考
  • 自然语言处理实战:利用Python理解、分析和生成文本》源代码,作者霍布森•莱恩
  • Python自然语言处理-BERT模型实战课程旨在帮助同学们快速掌握当下NLP领域最核心的算法模型BERT的原理构造与应用实例。通俗讲解BERT模型中所涉及的核心知识点(Transformer,self-attention等),基于google开源BERT...
  • 自然语言处理实战视频教程,自然语言处理中重要的算法,词向量模型。本课程从语言模型入手,详解词向量构造原理与求解算法。理论与实战结合, 基于深度学习主流框架Tensorflow实例演示如何用深度学习来进行文本分类...
  • 如果你是一名自然语言处理从业者,那你一定听说过大名鼎鼎的 BERT 模型。BERT(Bidirectional Encoder Representations From Transform...

    如果你是一名自然语言处理从业者,那你一定听说过大名鼎鼎的 BERT 模型

    BERT(Bidirectional Encoder Representations From Transformers)模型的“荣耀时刻”是2018年:称霸机器理解测试SQuAD,横扫其他10项NLP测试,达成“全面超过人类”成就。

    BERT模型使用预训练和微调的方式来完成自然语言处理(Natural Language Processing,NLP)任务。这些任务包括问答系统、情感分析和语言推理等。

    01

    为什么BERT模型这么强?

    BERT模型通过预测屏蔽子词(先将句子中的部分子词屏蔽,再令模型去预测被屏蔽的子词)进行训练的这种方式在语句级的语义分析中取得了极好的效果。

    BERT模型还使用了一种特别的训练方式(先预训练,再微调),这种方式可以使一个模型适用于多个应用场景。这使得BERT模型刷新了11项NLP任务处理的纪录。

    这11项NLP任务处理的纪录涵盖了如下4种场景,这4种场景也是BERT模型所适用的主要场景。

    • 场景一:处理类似阅读理解的任务。

    • 场景二:处理句子与段落间的匹配任务。

    • 场景三:提取句子深层语义特征的任务。

    • 场景四:基于句子或段落级别的短文本(长度小于512个子词的文本)处理任务。

    目前,BERT模型已成为语言分析和挖掘,以及机器学习等领域中最流行的模型。它具有易于使用、稳定性强等诸多优点。

    02

    BERT模型与BERTology系列模型

    BERT模型的出色表现,引起了业界广泛而强烈的反响。BERT模型的横空出世,仿佛是打开了处理NLP任务的“潘多拉魔盒”。随后涌现了一大批类似于BERT模型的预训练模型,它们被统称为BERTology系列模型。例如:

    • 引入了BERT模型中的双向上下文信息的广义自回归模型——XLNet模型

    • 引入了BERT模型训练方式和目标的RoBERTa和SpanBERT模型

    • 结合了多任务及知识蒸馏(Knowledge Distillation)、强化BERT模型功能的MT-DNN模型

    BERTology系列模型一般都基于BERT模型改造而来,代码量不大,逻辑也不复杂。

    但是,其极大规模的数据量、训练强度和模型容量,以及利用无监督模型的训练方式,使得其能力空前强大,在某些领域甚至已超过人类。但在日常中,常用BERT模型来代指本来的BERT模型和BERTology系列模型。这里的的BERT模型就是这样一种泛指。

    例如,在不同类型的文章(包括散文、小说、新闻、科技文章等)数据集上训练出的GPT-3模型,可以写出不同风格的文章。它可以写出诗集、散文,甚至“金庸风格”的小说、新闻稿等。

    03

    学好自然语言处理的4件套

    要想弄懂、学透BERT模型,需要脚踏实地从BERT模型的技术体系来了解其内部所涉及的技术栈,再根据技术栈中的内容一步步地进行了解和掌握。

    BERT模型是由“Transformer模型中的编码器(Encoder)+双向(正向序列和反向序列)结构”组成的。因此,一定要熟练掌握Transformer模型的Encoder。这属于神经网络部分的知识。

    另外,BERT模型的主要创新点是其独特的预训练方法,这种方法使用Masked Language Model和Next Sentence Prediction两种方法分别捕捉“词语”和“句子”级别的表示。这部分知识涵盖深度学习的训练模型知识和NLP领域的部分知识。

    学好自然语言处理需要“4件套”:

    • 神经网络的基础知识。

    • NLP的基础知识。

    • 编程框架的使用。

    • BERT模型的原理及应用。

    其中,前3部分是基础,这部分内容可以帮助读者“吃透”BERT模型;最后1部分是升华,这部分内容可以帮助读者开阔思路、增长见识,使读者能够真正驾驭BERT模型,活学活用,完成NLP任务。

    04

    学好自然语言处理的前提条件

    学习本书,要求读者具有Python基础,并熟悉Matplotlib和Numpy库的使用。

    读者不用担心自己数学基础不足、不懂神经网络原理等问题,PyTorch已经将这些底层算法统统封装成了高级接口,用户可以非常方便、快捷地利用它们进行开发。本书重点介绍如何快速使用PyTorch的这些接口来实现深度学习模型。

    05

    自然语言处理的技术趋势

    早先人们常使用卷积神经网络、循环神经网络来处理自然语言任务,但Transformer模型的诞生改变了这个情况。

    Transformer模型使用的是全新的注意力机制,达到了比卷积神经网络和循环神经网络更好的效果。而BERT模型则是在Transformer模型基础上的又一次优化,直接使NLP模型的性能达到前所未有的高度。

    BERT模型已经成为自然语言处理的主流技术。

    BERT模型是一种无监督的预训练语言模型。人们以BERT模型为基础,对其进行了结构调整、性能优化、再训练等,产生了许多在专业领域中表现更佳的模型。这些模型被统一称为BERTology系列模型。

    BERTology系列模型在NLP的多种场景中都发挥了惊人的效果。从某种角度讲,BERTology系列模型所涉及的技术是当今NLP领域的主流技术。

    1. 基于超大规模的高精度模型

    从BERT模型到RoBERTa模型、GPT模型,再到GPT-2模型、GPT-3模型,模型效果的提升已经证明了——用更多的数据可以“跑”出更强大、更通用的预训练模型。

    近年来,英伟达、谷歌、Open-AI相继放出的“巨无霸”模型有MegatronLM(含83亿个参数)、T5(含110亿个参数)、GPT-3(含1500亿个参数)。

    当然,“巨无霸”模型的能力并不仅仅停留在精度上,它们甚至可以通过语义交互的方式直接完成NLP任务。

    2. 基于超小规模的高精度模型

    快速发展的深层神经网络,在过去的十年中彻底改变了NLP领域。

    另外,诸如保护用户隐私、消除网络延迟、启用离线功能、降低运营成本等问题,要求模型能运行在设备终端,而不是数据中心。这种需求推动了小规模NLP模型的迅速发展。

    BERT模型逐渐在往“大规模”和“小规模”两个极端发展。如何用尽可能少的参数取得和“大模型”接近的效果,同时让训练速度和预测速度翻倍,是一个很实际、很有价值的课题。

    华为诺亚方舟实验室发布的TinyBERT模型、北京大学的FastBERT模型,在这方面都取得了瞩目的成绩。

    3. 基于小样本训练的模型

    在实际业务场景中,中小AI企业往往容易出现数据量不足的问题。

    例如,用户需要订制一个客服机器人,但只有100个标准问题,这么小的数据集不足以支撑模型的训练。

    对于这类问题,除花费高成本找标注团队制造数据外,还可以通过迁移学习、小样本学习的方法来让模型通过少量样本进行学习,从而获得较强的泛化能力。这些学习已经成为近年的研究热点之一。

    本内容摘自《基于BERT模型的自然语言处理实战》,想了解更多关于BERT模型的内容,欢迎阅读此书。

    ▊《基于BERT模型的自然语言处理实战

    李金洪 著

    • 全彩印刷

    • 清晰的学习主线

    通过本书,读者可以熟练地在PyTorch框架中开发并训练神经网络模型,快速地使用BERT模型完成各种主流的自然语言处理任务,独立地设计并训练出针对特定需求的BERT模型,轻松地将BERT模型封装成Web服务部署到云端。

    本书结构清晰、案例丰富、通俗易懂、实用性强,适合对自然语言处理、BERT模型感兴趣的读者作为自学教程。另外,本书也适合社会培训学校作为培训教材,还适合计算机相关专业作为教学参考书。

    (京东满100减50,快快扫码抢购吧!)

    文末福利截至8月24日晚22:00,我们将选取三名幸运儿,分别包邮送上基于BERT模型的自然语言处理实战正版图书一本!参与方式:评论留言互动。两名点赞最高留言,一名最走心留言,划水留言不会展示出来噢!有任何问题都可以添加我的微信讨论哈~
    
    展开全文
  • Python自然语言处理实战:核心技术与算法 2
  • 因此深入掌握短文本分类技术,是作为自然语言处理从业者必备技能,本课程以案例驱动出发,结合多个工业级解决方案,了解当下文本分类实际工业界的应用。 课程要求: (1)开发环境:python版本:Python3.x;...
  • 课程分享——Ai工程师-自然语言处理实战课程,提供全部课程所需数据,代码,课件。 AI工程师-自然语言处理实战课程旨在用最接地气的方式讲解复杂的算法原理,基于真实数据集,通过实际案例进行项目实战。整个体系...
  • python 自然语言处理实战

    千次阅读 2019-04-15 18:46:28
    Jibea ... ... ...先看什么是文档频率,文档频率DF就是一个词在整个文库词典中出现的...Abstraction是生成式自动文摘方法,通过建立抽象的语意表示,使用自然语言生成技术,形成摘要 LSA(SVD奇异值分解) LDA(贝叶斯)

    Jibea

    https://blog.csdn.net/qq_18603599/article/details/80865215
    https://blog.csdn.net/qq_18603599/article/details/80865226
    https://blog.csdn.net/qq_18603599/article/details/80865233

    词性标注

    北大词性标注集
    宾州词性标注集
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    https://www.cnblogs.com/hapyygril/category/1333473.html

    关键词提取算法 TF/IDF

    词库中的某个词在当前文章中出现的频率
    在这里插入图片描述
    TF(i,j):关键词j在文档i中的出现频率。 n(i,j):关键词j在文档i中出现的次数

    反文档频率”。先看什么是文档频率,文档频率DF就是一个词在整个文库词典中出现的频率,就拿上一个例子来讲:一个文件集中有100篇文章,共有10篇文章包含“机器学习”这个词,那么它的文档频率就是10/100=0.1,反文档频率IDF就是这个值的倒数,即10
    在这里插入图片描述
    IDF(i):词语i的反文档频率

    |D|:语料库中的文件总数

    |j:t(i)属于d(j)|出现词语i的文档总数

    +1是为了防止分母变0。

    TextBank算法

    Extraction和Abstraction。其中Extraction是抽取式自动文摘方法,通过提取文档中已存在的关键词,句子形成摘要;Abstraction是生成式自动文摘方法,通过建立抽象的语意表示,使用自然语言生成技术,形成摘要

    LSA(SVD奇异值分解)

    LDA(贝叶斯)

    展开全文
  • 自然语言处理理论书籍很多,讲实际操作的不多,能讲的这么系统的更少。Python语言在做NLP方面有较明显的优势。之前国外有《Natural Language Process with Python》,国内热心网友将其翻译为中文版。从这个角度讲,...

    自然语言处理理论书籍很多,讲实际操作的不多,能讲的这么系统的更少。Python语言在做NLP方面有较明显的优势。之前国外有《Natural Language Process with Python》,国内热心网友将其翻译为中文版。从这个角度讲,本书是目前世界上最好的自然语言处理实践教程。初学者若在看过理论之后能精读本书,必定会有获益。这也是翻译本书的目的之一。通过使用Python程序设计语言和自然语言工具包(NTLK)的开源库,本书将帮助你增加自然语言处理的实际经验。如果你对开发Web应用、分析多语言的新闻源或编制濒危语言感兴趣,或者只是想要从程序员的视角看人类语言如何运作,你将发现本书不仅有趣而且极其有用。

    python自然语言处理目录

    第1章 语言处理与Python

    1.1 语言计算:文本和词汇

    1.2 近观Python:将文本当做词链表

    1.3 计算语言:简单的统计

    1.4 回到Python:决策与控制

    1.5 自动理解自然语言

    1.6 小结

    1.7 深入阅读

    1.8 练习

    第2章 获得文本语料和词汇资源

    2.1 获取文本语料库

    2.2 条件频率分布

    2.3 更多关于Python:代码重用

    2.4 词典资源

    2.5 WordNet

    2.6 小结

    2.7 深入阅读

    2.8 练习

    第3章 处理原始文本

    3.1 从网络和硬盘访问文本

    3.2 字符串:最底层的文本处理

    3.3 使用Unicode进行文字处理

    3.4 使用正则表达式检测词组搭配

    3.5 正则表达式的有益应用

    3.6 规范化文本

    3.7 用正则表达式为文本分词

    3.8 分割

    3.9 格式化:从链表到字符串

    3.10 小结

    3.11 深入阅读

    3.12 练习

    第4章 编写结构化程序

    4.1 回到基础

    4.2 序列

    4.3 风格的问题

    4.4 函数:结构化编程的基础

    4.5 更多关于函数

    4.6 程序开发

    4.7 算法设计

    4.8 Python库的样例

    4.9 小结

    4.10 深入阅读

    4.11 练习

    第5章 分类和标注词汇

    5.1 使用词性标注器

    5.2 标注语料库

    5.3 使用Python字典映射词及其属性

    5.4 自动标注

    5.5 N-gram标注

    5.6 基于转换的标注

    5.7 如何确定一个词的分类

    5.8 小结

    5.9 深入阅读

    5.10 练习

    第6章 学习分类文本

    6.1 监督式分类

    6.2 监督式分类的举例

    6.3 评估

    6.4 决策树

    6.5 朴素贝叶斯分类器

    6.6 最大熵分类器

    6.7 为语言模式建模

    6.8 小结

    6.9 深入阅读

    6.10 练习

    第7章 从文本提取信息

    7.1 信息提取

    7.2 分块

    7.3 开发和评估分块器

    7.4 语言结构中的递归

    7.5 命名实体识别

    7.6 关系抽取

    7.7 小结

    7.8 深入阅读

    7.9 练习

    第8章 分析句子结构

    8.1 一些语法困境

    8.2 文法的用途

    8.3 上下文无关文法

    8.4 上下文无关文法分析

    8.5 依存关系和依存文法

    8.6 文法开发

    8.7 小结

    8.8 深入阅读

    8.9 练习

    第9章 建立基于特征的文法

    9.1 文法特征

    9.2 处理特征结构

    9.3 扩展基于特征的文法

    9.4 小结

    9.5 深入阅读

    9.6 练习

    第10章 分析语句的含义

    10.1 自然语言理解

    10.2 命题逻辑

    10.3 一阶逻辑

    10.4 英语语句的语义

    10.5 段落语义层

    10.6 小结

    10.7 深入阅读

    10.8 练习

    第11章 语言数据管理

    11.1 语料库结构:案例研究

    11.2 语料库生命周期

    11.3 数据采集

    11.4 使用XML

    11.5 使用Toolbox数据

    11.6 使用OLAC元数据描述语言资源

    11.7 小结

    11.8 深入阅读

    11.9 练习

    PC官方版

    安卓官方手机版

    IOS官方手机版

    展开全文
  • 大家好,今天开始和大家分享,我在自然语言处理(Natural Language Processing,NLP)的一些学习经验和心得体会。 随着人工智能的快速发展,自然语言处理和机器学习技术的应用愈加广泛。为使大家对该领域整体概况有...

    本博客为《自然语言处理实战课程》---- 第一课:自然语言处理简介 讲稿



    大家好,今天开始和大家分享,我在自然语言处理(Natural Language Processing,NLP)的一些学习经验和心得体会。

    随着人工智能的快速发展,自然语言处理和机器学习技术的应用愈加广泛。为使大家对该领域整体概况有一个系统、明晰的认识,同时入门一些工程实践,也借CSDN为NLP的学习,开发者们搭建一个交流的平台。

    个人简介

    王雅宁, 2016年毕业于陕西师范大学计算机软件与理论专业。

    CSDN博客专家,主要专注于大数据,计算机视觉,自然语言处理

    对大数据机器学习类软件开发技术都有比较浓厚的兴趣,熟悉数据分析,机器学习,计算机视觉等领域的研发工作。熟悉windows,Linux下的c/c++开发,OpenCV图形图像库的各类接口。熟悉大数据生态圈下的Python开发。

    曾参与并负责国家级安全项目相关POC验证与探索工作,在客户业务场景下验证产品的功能与性能。
    主要工作内容有:
    1、在客户现场搭建大数据产品平台,与客户沟通,根据客户的需求或业务场景在大数据平台上实现大数据平台软件的项目实施与安装部署。
    2、现场提供专业服务,包括系统、大数据集群故障分析与诊断,数据分析服务,业务应用对接迁移,完善提供整体解决方案。
    3、实现在单机与分布式环境下发掘等短文本的兴趣倾向和命名实体识别。该项目对结构化数据进行分词,停用词处理,命名实体识别,图计算等操作。

    目前在西安知盛数据科技有限公司主要负责大健康平台中医疗健康保险的部分内容构建与实施,主要负责包括数据理解,数据接入与清洗,描述性统计分析,大数据可视化等方面的工作与探索。对自然语言处理,保险数据异常检测方面有独到的探索经验。
    在这里插入图片描述


    本节课程导览

    本小结主要介绍内容如下

    • 自然语言处理简介

      3W,发展历程、研究现状、

    • 课程涵盖的主要内容总览

      第一阶段
      第二阶段

    • 知名NLP服务系统与开源组件简介

      对汉语自然处理的服务提供商及其服务内容做一个简单的梳理,让大家能够更好的了解目前的技术手段,技术现状。

    本小节课程主要内容分为2大部分:
    第一部分,自然语言处理简介,用认知思维的方法,结合发展历程总揽自然语言处理.

    同时顺带介绍,本课程的主要内容,本课程的主要内容我们分成两个阶段 。第一个阶段如思维导图的右边,我们力求短时间内上手,完成爬虫、分词、可视化、文本分类4个自然语言处理实战中最经常碰到的问题,我首先通过爬虫爬取自己CSDN的博客积累语料,其次尝试通过一些解决方案的对比,比如不同的分词组件的对比,选择一个进行可视化词云,主题模型的生成。最后我们介绍一些文本分类的方法,文本分类的应用较广,如垃圾邮件检测,舆论分析,文本查重等场景都可以转化为文本分类问题。第二个阶段的课程,如果有时间的话,我们来共同探讨一些业界常用的NLP实战场景,如脑图左侧所示的,命名实体识别,问答机器人,知识图谱,基于深度学习的NLP 等

    第二部分介绍 ,NLP技术在我国的应用现状,以及一些我们经常用到的开源包。


    1.自然语言处理(NLP)简介

    在这里插入图片描述

    上学的时候,老师经常使用这样提问的方式加深我们对于知识的理解和认知

    what is it?
    自然语言处理(Natural Language Processing,简称 NLP)是人工智能和语言学交叉领域下的分支学科。
    用于分析、理解和生成自然语言,以方便人和计算机设备进行交流,以及人与人之间的交流

    NLP 是人工智能和语言学领域的交叉学科,
    自然语言处理在广义上分为两大部分:

    • 第一部分为自然语言理解,是指让计算机懂人类的语言。
    • 第二部分为自然语言生成,是指把计算机数据转化为自然语言。

    NLP 技术按照由浅入深可以分为三个层次,分别为:

    • 基础技术
    • 核心技术
    • NLP+

    在这里插入图片描述

    1.1 基础技术

    这三个层次中,基础技术主要是对自然语言中的基本元素进行表示和分析,比如词汇,短语,句子。

    词汇短语分析中,大家熟知的分词技术,就是为了解决如下问题,比如:我去北京大学玩,北京大学独立成词,而不是分成北京和大学。

    句法语义分析:对于给定的句子,进行分词、词性标记、命名实体识别和链接、句法分析、语义角色识别和多义词消歧。

    1.2 NLP 核心技术

    NLP 的核心技术是建立在基础技术之上的的技术产出,基础技术中如词法,句法的分析越准确,核心技术的产出才能越准确。核心技术主要包括以下几个方面:

    • 信息抽取
      从给定文本中抽取重要的信息,比如,时间、地点、人物、事件、原因、结果、数字、日期、货币、专有名词等等。通俗说来,就是要了解谁在什么时候、什么原因、对谁、做了什么事、有什 么结果。涉及到实体识别、时间抽取、因果关系抽取等关键技术。

    • 文本挖掘(或者文本数据挖掘)
      包括文本聚类、分类、信息抽取、摘要、情感分析以及对挖掘的信息和知识的可视化、交互式的表达界面。目前主流的技术都是基于统计机器学习的。

    • 机器翻译
      把输入的源语言文本通过自动翻译获得另外一种语言的文本。根据输入媒介不同,可以细分为文本翻译、语音翻译、手语翻译、图形翻译等。机器翻译从最早的基于规则的方法到二十年前的基于统计的方法,再到今天的基于神经网络(编码-解码)的方法,逐渐形成了一套比较严谨的方法体系。

    • 信息检索
      对大规模的文档进行索引。可简单对文档中的词汇,赋之以不同的权重来建立索引,也可利用(句法分析,信息抽取,文本发掘)来建立更加深层的索引。在查询的时候,对输入的查询表达式比如一个检索词或者一个句子进行分析,然后在索引里面查找匹配的候选文档,再根据一个排序机制把候选文档排序,最后输出排序得分最高的文档。

    1.3 NLP+(高端技术)

    能够真正影响我们生活的黑科技,能够通过图灵测试的机器问答系统,我们可以称之为NLP+

    • 问答系统
      对一个自然语言表达的问题,由问答系统给出一个精准的答案。需要对自然语言查询语句进行某种程度的语义分析,包括实体链接、关系识别,形成逻辑表达式,然后到知识库中查找可能的候选答案并通过一个排序机制找出最佳的答案。

    • 对话系统
      系统通过一系列的对话,跟用户进行聊天、回答、完成某一项任务。涉及到用户意图理解、通用聊天引擎、问答引擎、对话管理等技术。此外,为了体现上下文相关,要具备多轮对话能力。

    • AI助手
      目前自然语言处理的前沿,已经与人类真假难辨
      https://v.qq.com/x/page/w0648xqraxj.html

    参考:
    https://www.zhihu.com/question/19895141/answer/149475410


    1.4 课程涵盖的主要内容总揽

    在这里插入图片描述


    2.知名NLP服务系统与开源组件简介

    以下我们通过一些知名中文NLP服务提供商,包括我们熟知的云服务提供商BAT ,aws,以及两家科研院所的系统简介,来介绍以及宏观认识NLP的各种技术手段和应用场景。

    首先介绍的是两家NLP基础分析,准确率很高的科研院所 的产品,源自北理工和哈工大,之后我们介绍知名云服务提供商的产品。

    2.1 单一服务提供商

    2.1.1 汉语分词系统ICTCLAS

    主页:http://ictclas.nlpir.org/
    在线演示系统:http://ictclas.nlpir.org/
    Python版本:https://github.com/tsroten/pynlpir
    (需要频繁更新key)
    https://blog.csdn.net/sinat_26917383/article/details/77067515

    在这里插入图片描述

    对于**** 这篇新闻稿 的实体抽取结果
    http://news.163.com/18/0715/14/DMOTHJEK000189FH.html

    该系统为汉语自然语言处理领域顶尖大牛,北京理工大学张华平博士20年的专业技术积累,NShort 革命性分词算法的发明者。

    主要功能包括中文分词;英文分词;中英文混合分词,词性标注;命名实体识别;新词识别;关键词提取;支持用户专业词典与微博分析。NLPIR系统支持多种编码、多种操作系统、多种开发语言与平台。

    该平台的特点为:功能丰富,分词,语义,实体发现准确率高,近期发布了最新的2018版。
    (与熟知的jieba,ltp,清华thulac)

    2.1.2 哈工大语言云(Language Technology Platform,LTP)

    https://www.ltp-cloud.com/

    源自哈工大知名的分词插件ltp,准确率高

    Python版本:https://github.com/HIT-SCIR/pyltp

    在这里插入图片描述

    语言技术平台(Language Technology Platform,LTP)是哈工大社会计算与信息检索研究中心历时十年开发的一整套中文语言处理系统。LTP制定了基于XML的语言处理结果表示,并在此基础上提供了一整套自底向上的丰富而且高效的中文语言处理模块(包括词法、句法、语义等6项中文处理核心技术),以及基于动态链接库(Dynamic Link Library, DLL)的应用程序接口、可视化工具,并且能够以网络服务(Web Service)的形式进行使用。

    “语言云”
    以哈工大社会计算与信息检索研究中心研发的 “语言技术平台(LTP)” 为基础,为用户提供高效精准的中文自然语言处理云服务。 使用 “语言云” 非常简单,只需要根据 API 参数构造 HTTP 请求即可在线获得分析结果,而无需下载 SDK 、无需购买高性能的机器,同时支持跨平台、跨语言编程等。 2014年11月,哈工大联合科大讯飞公司共同推出 “哈工大-讯飞语言云”,借鉴了讯飞在全国性大规模云计算服务方面的丰富经验,显著提升 “语言云” 对外服务的稳定性和吞吐量,为广大用户提供电信级稳定性和支持全国范围网络接入的语言云服务,有效支持包括中小企业在内开发者的商业应用需要。
    有关更多语言云API的使用方法,请参考:http://www.ltp-cloud.com/document/

    windows 下安装pyltp的话,应该是需要安装visual studio, 由于LTP是用c++写的,pyltp也是基于它封装而成的,需要调用 cl.exe 完成源码的编译。然后下载源码,使用python setup.py install 的方式进行安装就可以了。

    2.1.3 HanLP

    HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。

    HanLP提供下列16大类功能:

    • 中文分词
    • 词性标注
    • 命名实体识别
    • 关键词提取
    • 自动摘要
    • 短语提取
    • 拼音转换
    • 简繁转换
    • 文本推荐
    • 依存句法分析
    • 文本分类
    • 情感分析
    • 文本聚类
    • word2vec
    • 文档语义相似度计算
    • 语料库工具

    项目地址:https://github.com/hankcs/HanLP
    python 版本:https://github.com/hankcs/pyhanlp
    windows 安装指南:https://github.com/hankcs/pyhanlp/wiki/Windows

    由于HanLP底层是java 版本的,所以对java 的支持比较好,python 版本中有一些功能没有实现,但可以通过调用java 实现。HanLP随v1.6.8发布了在一亿字的大型综合语料库上训练的分词模型,该语料是已知范围内全世界最大的中文分词语料库。在HanLP的在线演示中使用已久,现在无偿公开。语料规模决定实际效果
    ,所以不用多说HanLP确实可以直接拿来做项目。有趣的是HanLP 有着非常多的衍生项目,其中docker 版和ES 版值得大家关注,这些衍生项目无疑更加提高了HanLP的可用性、灵活性。

    调用代码样例

    
    from pyhanlp import *
    
    print(HanLP.segment('你好,欢迎在Python中调用HanLP的API'))
    for term in HanLP.segment('下雨天地面积水'):
        print('{}\t{}'.format(term.word, term.nature)) # 获取单词与词性
    testCases = [
        "商品和服务",
        "结婚的和尚未结婚的确实在干扰分词啊",
        "买水果然后来世博园最后去世博会",
        "中国的首都是北京",
        "欢迎新老师生前来就餐",
        "工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作",
        "随着页游兴起到现在的页游繁盛,依赖于存档进行逻辑判断的设计减少了,但这块也不能完全忽略掉。"]
    for sentence in testCases: print(HanLP.segment(sentence))
    # 关键词提取
    document = "水利部水资源司司长陈明忠9月29日在国务院新闻办举行的新闻发布会上透露," \
               "根据刚刚完成了水资源管理制度的考核,有部分省接近了红线的指标," \
               "有部分省超过红线的指标。对一些超过红线的地方,陈明忠表示,对一些取用水项目进行区域的限批," \
               "严格地进行水资源论证和取水许可的批准。"
    print(HanLP.extractKeyword(document, 2))
    # 自动摘要
    print(HanLP.extractSummary(document, 3))
    # 依存句法分析
    print(HanLP.parseDependency("徐先生还具体帮助他确定了把画雄鹰、松鼠和麻雀作为主攻目标。"))
    

    2.1.4 BosonNLP

    BosonNLP(界面,接口友好,准确率高)
    https://bosonnlp.com/demo
    这里写图片描述

    如果你在网上搜索汉语分词评测,十有八九你会搜索到专注于汉语自然语言处理技术的这家公司,以及下面这张评测结果:
    在这里插入图片描述


    2.2 云服务提供商

    2.2.1 Amazon Comprehend

    在这里插入图片描述

    https://amazonaws-china.com/cn/comprehend/?nc2=h_a1

    Amazon Comprehend 是一项自然语言处理 (NLP) 服务,可利用机器学习发现文本中的见解和关系。Amazon Comprehend 可以识别文本语言,提取关键的短语、地点、人物、品牌或事件,了解文本的含义是肯定还是否定,还可以自动按主题整理一系列文本文件。

    您可使用 Amazon Comprehend API 分析文本,并将结果进行广泛应用,包括客户意见分析、智能文档搜索以及 Web 应用程序的内容个性化设置。

    该服务不断地通过各种信息来源 (包括世界上最大的自然语言数据集之一:Amazon.com 商品描述和买家评论) 学习和提升, 以跟上语言的发展演变。

    实例:利用 AWS Comprehend 打造近实时文本情感分析
    https://amazonaws-china.com/cn/blogs/china/realizing-near-real-time-text-sentiment-analysis-with-aws-comprehend/

    可以看到图中,aws 使用kibana 仪表盘和 Comprehend 服务组成了一个实时的电影评论实时分析系统,其实主要功能就是实现了分词和内容来源的地理位置统计,看起来很炫酷。

    2.2.2 阿里云NLP

    在这里插入图片描述

    https://data.aliyun.com/product/nlp?spm=5176.8142029.388261.396.63f36d3eoZ8kNK

    阿里的NLP 服务简介为:

    自然语言处理是为各类企业及开发者提供的用于文本分析及挖掘的核心工具,
    已经广泛应用在电商、文化娱乐、金融、物流等行业客户的多项业务中。
    
    自然语言处理API可帮助用户搭建内容搜索、内容推荐、舆情识别及分析、文本结构化、对话机器人等智能产品,
    也能够通过合作,定制个性化的解决方案。
    

    按量付费的基准价,在没有购买资源包或资源包用尽的情况下,将按基准价进行计费。
    其中,基础版对每个主帐号提供每日5万次的免费使用额度。商品评价解析没有免费额度。

    值得注意的是阿里云的nlp 服务刚发布不到1年,应该算是领域内的新手,语料库应该和aws 一样,主要为商品描述和评论,所以它有一项功能叫做商品评价解析

    这里写图片描述
    时隔半年之后我们再来看一下这个产品名录发现,功能更加丰富了。整体来看受限于语料的积累,我认为没有什么亮点。
    在这里插入图片描述

    2.2.3 腾讯云NLP

    在这里插入图片描述
    在这里插入图片描述

    https://cloud.tencent.com/product/nlp

    界面友好,功能丰富,语料库为海量综合性语料库

    腾讯云智在线演示系统
    http://nlp.qq.com/semantic.cgi

    2.2.4 百度语言处理基础技术

    在这里插入图片描述

    http://ai.baidu.com/tech/nlp
    依托海量检索数据,并且搜索引擎本身就是NLP 最终的结果产出,所以在NLP领域,百度无论是语料库丰富程度,技术先进性,以及服务多样性等都是遥遥领先其他厂家,基本上可以算作是中文NLP服务提供商的业界最佳实践。

    • 功能丰富且技术领先

      • 词法分析
      • 词向量表示
      • 词义相似度
      • 评论观点抽取
      • 文章标签
      • 依存句法分析
      • DNN语言模型
      • 短文本相似度
      • 情感倾向分析
      • 文章分类
      • 对话情绪识别
      • 文本纠错
      • 新闻摘要

    等13个大类的服务,对于个人开发者来说,配比了免费额度,对于词向量来说,每秒免费的额度是5个词,基本可以够用拿来做点有趣的事情了。

    从图中结果也可以看出,百度对词向量相似度的分析和我用余弦相似度的结果一样,可以推断出百度的算法比较接地气。

    • DNN语言模型

    Deep Neural Network(DNN)模型是基本的深度学习框架,DNN语言模型是通过计算给定词组成的句子的概率,从而判断所组成的句子是否符合客观语言表达习惯

    通常用于机器翻译、拼写纠错、语音识别、问答系统、词性标注、句法分析和信息检索等
    百度这个模型是大厂中首个公开提供服务接口的深度学习语言模型。

    • 调用方式友好简单

    提供更加简单的调用方式:类似aws boto3
    如果已安装pip,执行pip install baidu-aip即可
    Sdk 方式,安装

    from aip import AipNlp
     """ 你的 APPID AK SK """ 
    APP_ID = '你的 App ID' 
    API_KEY = '你的 Api Key' 
    SECRET_KEY = '你的 Secret Key' 
    client = AipNlp(APP_ID, API_KEY, SECRET_KEY)
    
    word = "张飞"
     """ 调用词向量表示 """ 
    client.wordEmbedding(word);
    

    2.3 NLP开源组件简介

    NLP 领域有非常多的开源组件可以用来快速构建开发的原型,我来简单介绍以下四个知名开源组件

    2.3.1 NLTK

    http://www.nltk.org/

    • 最常用的自然语言处理库
      NLTK是一个高效的Python构建的平台,用来处理人类自然语言数据。基本包含了NLP 中需要用到的所有技术
      它提供了易于使用的接口,通过这些接口可以访问超过50个语料库和词汇资源(如WordNet),还有一套用于分类、标记化、词干标记、解析和语义推理的文本处理库,以及工业级NLP库的封装器和一个活跃的讨论论坛。
    • 古腾堡项目(Project Gutenberg)
      NLTK 包含古腾堡项目(Project Gutenberg)中电子文本档案的经过挑选的一小部分文本。该项目大约有57,000 本免费电子图书,放在http://www.gutenberg.org/上。我们先要用Python 解释器加载NLTK 包,然后尝试nltk.corpus.gutenberg.fileids(),当然其中的中文语料也很丰富(都是没有版权的免费文档),比如李白文集,三字经,百家姓等等(要是用这些训练中文模型效果可想而知)

    2.3.2 Jieba分词

    https://github.com/fxsjy/jieba

    “结巴”中文分词:做最好的 Python 中文分词组件
    “Jieba” (Chinese for “to stutter”) Chinese text segmentation: built to be the best Python Chinese word segmentation module.
    实现基本功能的代码量在一千行左右,词典长度35w ,安装方式友好,简洁,高效,(但准确性已经跟不上时代!!!85%)

    2.3.3 ICTCLAS

    http://ictclas.nlpir.org/

    主要功能包括中文分词;词性标注;中英混合分词;命名实体识别;用户词典功能;支持GBK编码、UTF8编码、BIG5编码。新增微博分词、新词发现与关键词提取;张华平博士先后倾力打造20余年,内核升级10次。

    全球用户突破20万,先后获得了2010年钱伟长中文信息处理科学技术奖一等奖,2003年国际SIGHAN分词大赛综合第一名,2002年国内973评测综合第一名。

    2.3.4 Gensim

    https://radimrehurek.com/gensim/

    它的 slogan 是:Topic modelling for humans.
    Gensim提供了一个发现文档语义结构的工具,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。它将语料(Corpus)向量化表示后,主要能够实现以下三个功能:

    • 建立语言模型
    • 词嵌入模型的训练
    • 检索和语义分析的神器

    简介参考:https://www.cnblogs.com/iloveai/p/gensim_tutorial.html


    参考文献

    我爱自然语言处理
    http://www.52nlp.cn/

    深度学习与中文短文本分析总结与梳理
    https://blog.csdn.net/wangyaninglm/article/details/66477222

    分析了近5万首《全唐诗》,发现了这些有趣的秘密
    http://www.growthhk.cn/cgo/9542.html

    万字干货|10款数据分析“工具”,助你成为新媒体运营领域的“增长黑客”
    http://www.woshipm.com/data-analysis/553180.html

    jieba分词简介与解析
    https://www.cnblogs.com/baiboy/p/jieba2.html

    有哪些好的汉语分词方案
    https://www.zhihu.com/question/19578687
    基于分布式的短文本命题实体识别之----人名识别(python实现)
    https://blog.csdn.net/wangyaninglm/article/details/75042151

    NLP技术的应用及思考
    https://yq.aliyun.com/articles/78031

    展开全文
  • 命名实体识别作为自然语言处理的基础技术之一,在自然语言处理上游各个任务(问答系统、机器翻译、对话系统等)重扮演者十分重要的角色,因此深入掌握命名实体识别技术,是作为自然语言处理从业者毕本技能,本课程...
  • 本博客为《自然语言处理实战课程》---- 第一课:自然语言处理简介 讲稿 文章大纲本节课程导览1.自然语言处理(NLP)简介1.1 基础技术1.2 NLP 核心技术1.3 NLP+(高端技术)1.4 课程涵盖的主要内容总揽2.知名NLP服务...
  • 本课程首先介绍了传统的情感分类模型,将传统的情感分类模型与深度学习情感分类模型对比并阐述了各模型的特点。之后介绍了基于LSTM情感分类模型,其中包括LSTM的基本原理、如何搭建LSTM网络、并演示了LSTM情感分类...
  • NLP入门+实战必读,一文可以教会你最常见的10种自然语言处理技术(附代码)电子版
  • 从建模角度讲,为了方便计算机处理,自然语言处理成符号的集合来传递信息,然后通过建立计算机框架来实现语言模型,并且不断完善这样的语言模型,还需要根据语言模型来设计各种使用的系统,并且讨论这些使用技术的...
  • 《Python自然语言处理实战核心技术与算法》电子书,巧妙地避开了晦涩难懂的数学公式和证明,即便没有数学基础,也能零基础入门,专注于中文的自然语言处理,以Python及其相关框架为工具,以实战为导向,详细讲解了...
  • 本人买的,无私贡献给大家,无解压密码 下载地址: 链接:https://pan.baidu.com/s/1cJtnhEQSXHVMgygr8PHh9A 提取码:a54u 转载于:https://www.cnblogs.com/LiuXinyu12378/p/11384607.html...
  • 自然语言处理实战视频教程,自然语言处理中重要的算法,词向量模型。本课程从语言模型入手,详解词向量构造原理与求解算法。理论与实战结合, 基于深度学习主流框架Tensorflow实例演示如何用深度学习来进行文本分类...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 29,182
精华内容 11,672
关键字:

自然语言处理实战