0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

专栏 | 深度学习在NLP中的运用?从分词、词性到机器翻译、对话系统

m3Fp_almosthuma 来源:未知 作者:简单幸福 2017-08-18 17:06 次阅读

自然语言是人类知识的抽象浓缩表示,而自然语言理解是人工智能研究领域中极具挑战的一个分支。上次,《自然语言处理在 2017 年有哪些值得期待的发展?》中,我们已经讲到,2016 年是深度学习大潮冲击 NLP 的一年,通过去年一年的努力,深度学习在 NLP 领域已经站稳了脚跟。其中,对话交互系统已经成为一个重要的应用研究领域,2017 年的自然语言对话系统,将开创一个新的人机交互时代。

通过深度学习和其他机器学习技术的模型组合,竹间智能也已初步实现了自然语言对话中的意图识别、上下文理解和多轮对话。本文将基于竹间智能的一些经验和探索,从分词、词性等基础模块,到机器翻译、知识问答等领域,列举并分析一些深度学习在 NLP 领域的具体运用,希望对大家研究深度学习和 NLP 有所帮助。

事实上,从分词、词性、语法解析、信息抽取等基础模块,到自然语言生成、机器翻译、对话管理、知识问答等高层的 NLP 领域,几乎都可以应用以 CNN、RNN 为代表的深度学习模型,且确实能够取得不错的效果。深度学习模型有效降低了语言模型输入特征的维度,降低了输入层的复杂性。另外,深度学习模型具有其他浅层模型不能比拟的灵活性。深度学习模型更复杂,能够对数据进行更精准的建模,从而增强实验效果。

深度学习模型可以将文本中的词高效地表示为分布式连续向量(word2vec),将词语、文本由词空间映射到语义空间,这样的语义表示可以捕获重要的句法和语义信息,一定程度上缓解了词面不匹配、数据稀疏、语义鸿沟等问题。Word2vec 的应用可以使许多自然语言处理任务取得突出的表现。Word2vec 虽然可以通过神经网络训练大规模的语料实现,但仍面临着 out of vocabulary 的现实。Bahdanau 等人利用 LSTM 模型结合定义知识语料,解决传统 word embedding 模型中的 out of vocabulary 问题。(框架流程见图 1,具体见 https://arxiv.org/abs/1706.00286)

图 1:利用 RNN 解决 Word2Vec 中 out of vocabulary 问题实例

中文不同于英文自然分词,中文分词是文本处理的一个基础步骤,也是自然语言处理的基础模块。分词性能的好坏直接影响比如词性、句法树等其他模块的性能。利用深度学习实现的字嵌入+Bi-LSTM+CRF 中文分词器,不需要构造额外手工特征。使用人民日报的 80 万语料训练实现,按照字符正确率评估标准能达到 98% 的准确率。其本质上是一个序列标注模型,模型参考的论文是:http://www.aclweb.org/anthology/N16-1030,整个神经网络的主要框架如图 2 所示。有感兴趣的朋友可以去看看,具体实现已在 github 开源 https://github.com/koth/kcws。

图 2:Word Embedding+Bi-LSTM+CRF 主要框架示意图

语法解析可以获得句子的语法结构,例如,哪些单词组合在一起(形成「短语」),哪些单词是动词的主题或对象。Syntactic Parsing 明确标出了词与词之间的短语结构,隐含了词与词之间的关系。而 Dependency Parser 则明确表示出了词与词之间的关系。利用神经网络模型解析句子的语法结构的实现可以参考 http://www.petrovi.de/data/acl15.pdf 以及斯坦福的 http://cs.stanford.edu/~danqi/papers/emnlp2014.pdf。除解析文本之外,Richard Socher 等人利用 CNN 模型实现了解析图片的功能(Parsing Natural Scenes and Natural Language with Recursive Neural Networks)。

文本分类是各种场景在自然语言处理领域中经常使用到的技术,例如判断文本内容的情感分类(即对文本表达的情感进行分析,如正面、负面的情感,开心、愤怒等情绪等)。深度学习在文本分类中的表现优于其他一些传统线性模型,例如 https://arxiv.org/abs/1508.04112。Github 上的 https://github.com/harvardnlp/sent-conv-torch 是用于文本分类的 CNN,这个代码用 GPU 在 Torch 中实现了 Kim(2014)的句子卷积代码。它复制了现有数据库中的结果,并允许在任意其它的文本数据库上训练模型。

信息抽取,从句子中抽取特定的片段(比如命名实体识别、摘要总结等)。Abstractive Summarization 摘要总结 https://github.com/harvardnlp/NAMAS,该项目包含了来自论文 A Neural Attention Model for Abstractive Summarization(Alexander M. Rush, Sumit Chopra, Jason Weston. https://arxiv.org/pdf/1509.00685.pdf)的摘要抽象总结系统。该项目里发布的代码可以:提取摘要数据、训练摘要神经网络模型、用 ROUGE 构建评估集、调试提取的特征等。

神经指代消解(Neural Coref Models),在论文 Learning Global Features for Coreference Resolution(Sam Wiseman, Alexander M. Rush, and Stuart M. Shieber, NAACL 2015)和 Learning Anaphoricity and Antecedent Ranking Features for Coreference Resolution(Sam Wiseman, Alexander M. Rush, Stuart M. Shieber, and Jason Weston. ACL 2015)中有所描述。Github 中开源的指代消解项目有 https://github.com/swiseman/nn_coref。

自然语言生成,能够根据一些关键信息及其在机器内部的表达形式,经过一个规划过程,来自动生成一段高质量的自然语言文本。目前关于自然语言生成有一些比较有趣的研究,比如 https://github.com/karpathy/char-rnn 是一个基于 RNN 的文本生成器,可以自动生成莎士比亚的剧本或者 shell 代码;https://link.zhihu.com/?target=https%3A//github.com/phunterlau/wangfeng-rnn 基于 char-rnn 的汪峰歌词生成器等。

知识问答,可以用深度学习模型,从语料中学习获得一些问题的答案,比如 https://github.com/facebook/MemNN,是 memmnn 的一个官方实现,可以从诸如「小明在操场;小王在办公室;小明捡起了足球;小王走进了厨房」的语境中,获得问题「小王在去厨房前在哪里?」这样涉及推理和理解的问题;例如斯坦福的 http://cs.stanford.edu/~danqi/papers/nips2013.pdf 利用深度学习实现的知识问答系统。

神经机器翻译(NMT)在翻译中提供了统计方式之外的另一种方式,同时也更加简便。Github 上基于 Sequence-to-Sequence Learning with Attentional Neural Networks 的开源项目: http://github.com/harvardnlp/seq2seq-attn,以及基于上述项目和 http://www.people.fas.harvard.edu/~yoonkim/data/emnlp_2016.pdf 的安卓系统中的神经机器翻译。该项目考虑了将知识提炼(knowledge distillation)方式加入机器神经翻译中,以解决其体量问题,这种方式已在其他领域中被证明能够成功减小神经模型的尺寸。

在 Github 上还有一些有趣的关于深度学习与自然语言处理的项目。比如:Google Brain 团队的一组研究人员发布了一个项目 Project Magenta,其主要目标是利用机器学习创作艺术和谱写曲子 https://github.com/tensorflow/magenta;https://github.com/ryankiros/neural-storyteller 是一个自然语言生成项目,实现了看图讲故事的功能。

以上是对深度学习在 NLP 领域运用的一些总结和说明。最后,再讲回竹间全力打造的自然语言对话系统。之前提到 2017 年的对话系统一定是在限定的场景下发挥作用的,而竹间智能基于深度学习打造的人机交互系统,在金融、电商及 IoT 等限定领域中已经实现了比较好的可控人机对话。未来,竹间希望在更多垂直领域形成突破。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

原文标题:专栏 | 深度学习在NLP中的运用?从分词、词性到机器翻译、对话系统

文章出处:【微信号:almosthuman2014,微信公众号:机器之心】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA深度学习应用或将取代GPU

    硬件公司供货的不断增加,GPU 深度学习的市场需求还催生了大量公共云服务,这些服务为深度学习
    发表于 03-21 15:19

    基于机器翻译增加的跨语言机器阅读理解算法

    近日,阿里云人工智能平台 PAI 与华南理工大学朱金辉教授团队、达摩院自然语言处理团队合作在自然语言处理顶级会议 EMNLP2023 上发表基于机器翻译增加的跨语言机器阅读理解算法 X-STA。通过
    的头像 发表于 12-12 10:28 359次阅读
    基于<b class='flag-5'>机器翻译</b>增加的跨语言<b class='flag-5'>机器</b>阅读理解算法

    仿真人类的微软AI翻译系统

    从历史上看,曾经主流的机器学习技术在行业中应用是统计机器翻译 (SMT)。SMT 使用先进的统计分析,从一句话中上下文的几个词中来估计最佳可能的翻译。SMT自20 世纪中期以来的为所有
    的头像 发表于 10-11 15:27 564次阅读

    一文详解机器学习深度学习的区别

    深度学习这几年特别火,就像5年前的大数据一样,不过深度学习其主要还是属于机器学习的范畴领域内,所
    发表于 09-06 12:48 1342次阅读
    一文详解<b class='flag-5'>机器</b><b class='flag-5'>学习</b>和<b class='flag-5'>深度</b><b class='flag-5'>学习</b>的区别

    人工智能nlp是什么方向

    的方向之一。NLP 是关于将人类语言转化为计算机语言的过程,使计算机能够理解和生成人类语言。 NLP 技术有多种应用,从智能语音助手到文本分析和机器翻译。随着人们对这种技术的认识加深,NLP
    的头像 发表于 08-22 16:45 1319次阅读

    机器学习深度学习的区别

    机器学习深度学习的区别 随着人工智能技术的不断发展,机器学习
    的头像 发表于 08-17 16:11 3394次阅读

    人工智能会取代翻译

    在某些场景下,如翻译普通商务文档、新闻报道以及其他非技术性的文章等,机器翻译的正确率已经非常接近人类翻译了。然而,在涉及到一些重要的领域,例如法律、药学甚至是文学等相关领域,机器翻译
    的头像 发表于 08-14 14:29 764次阅读

    机器翻译研究进展

    成为主流,如神经网络机器翻译。神经网络机器翻译机器从大量数据中自动学习翻译知识,而不依靠人类专家撰写规则,可以显著提升
    的头像 发表于 07-06 11:19 420次阅读
    <b class='flag-5'>机器翻译</b>研究进展

    060. 任务60:机器翻译 #硬声创作季

    机器翻译深度学习
    充八万
    发布于 :2023年06月21日 18:04:57

    PyTorch教程10.7之用于机器翻译的编码器-解码器Seq2Seq

    电子发烧友网站提供《PyTorch教程10.7之用于机器翻译的编码器-解码器Seq2Seq.pdf》资料免费下载
    发表于 06-05 18:14 0次下载
    PyTorch教程10.7之用于<b class='flag-5'>机器翻译</b>的编码器-解码器Seq2Seq

    PyTorch教程-10.7. 用于机器翻译的编码器-解码器 Seq2Seq

    10.7. 用于机器翻译的编码器-解码器 Seq2Seq¶ Colab [火炬]在 Colab 中打开笔记本 Colab [mxnet] Open the notebook in Colab
    的头像 发表于 06-05 15:44 571次阅读
    PyTorch教程-10.7. 用于<b class='flag-5'>机器翻译</b>的编码器-解码器 Seq2Seq

    PyTorch教程-10.5。机器翻译和数据集

    10.5。机器翻译和数据集¶ Colab [火炬]在 Colab 中打开笔记本 Colab [mxnet] Open the notebook in Colab Colab [jax
    的头像 发表于 06-05 15:44 477次阅读
    PyTorch教程-10.5。<b class='flag-5'>机器翻译</b>和数据集

    PyTorch教程10.5之机器翻译和数据集

    电子发烧友网站提供《PyTorch教程10.5之机器翻译和数据集.pdf》资料免费下载
    发表于 06-05 15:14 0次下载
    PyTorch教程10.5之<b class='flag-5'>机器翻译</b>和数据集

    LLM时代NLP研究何去何从?

    在当前低资源的语言基准上(如FLORES-200)改进机器翻译性能。针对资源极低的语言,可以利用圣经(世界上翻译最多的文档)等现有文本作为开发机器翻译系统的起点。
    的头像 发表于 06-02 15:52 743次阅读

    大语言模型的多语言机器翻译能力分析

    以ChatGPT为代表的大语言模型(Large Language Models, LLM)在机器翻译(Machine Translation, MT)任务上展现出了惊人的潜力。
    的头像 发表于 05-17 09:56 1019次阅读
    大语言模型的多语言<b class='flag-5'>机器翻译</b>能力分析