搭建建立网站,河北保定建设集团招聘信息网站,无需本金十分钟赚800,律师怎么做网络推广目录
自然语言处理-NLP
致命密码#xff1a;一场关于语言的较量
自然语言处理的发展历程
兴起时期
符号主义时期
连接主义时期
深度学习时期
自然语言处理技术面临的挑战
语言学角度
同义词问题
情感倾向问题
歧义性问题
对话/篇章等长文本处理问题
探索自然语言…目录
自然语言处理-NLP
致命密码一场关于语言的较量
自然语言处理的发展历程
兴起时期
符号主义时期
连接主义时期
深度学习时期
自然语言处理技术面临的挑战
语言学角度
同义词问题
情感倾向问题
歧义性问题
对话/篇章等长文本处理问题
探索自然语言理解的本质问题
计算角度
自然语言处理的常见任务
使用深度学习解决自然语言处理任务的套路
使用飞桨探索自然语言处理 自然语言处理-NLP
自然语言处理Natural Language Processing简称NLP被誉为人工智能皇冠上的明珠是计算机科学和人工智能领域的一个重要方向。
它主要研究人与计算机之间使用自然语言进行有效通信的各种理论和方法。
简单来说计算机以用户的自然语言数据作为输入在其内部通过定义的算法进行加工、计算等系列操作后用以模拟人类对自然语言的理解再返回用户所期望的结果如 图1 所示。 图1自然语言处理示意图 自然语言处理是一门融合语言学、计算机科学和数学于一体的科学。它不仅限于研究语言学还是研究能高效实现自然语言理解和自然语言生成的计算机系统特别是其中的软件系统因此它是计算机科学的一部分。
随着计算机和互联网技术的发展自然语言处理技术在各领域广泛应用如 图2 所示。在过去的几个世纪工业革命用机械解放了人类的双手在当今的人工智能革命中计算机将代替人工处理大规模的自然语言信息。我们平时常用的搜索引擎新闻推荐智能音箱等产品都是以自然语言处理技术为核心的互联网和人工智能产品。 图2自然语言处理技术在各领域的应用 此外自然语言处理技术的研究也在日新月异变化每年投向ACLAnnual Meeting of the Association for Computational Linguistics计算语言学年会自然语言处理领域的顶级会议的论文数成倍增长自然语言处理的应用效果被不断刷新有趣的任务和算法更是层出不穷。 致命密码一场关于语言的较量
事实上人们并非只在近代才开始研究和处理自然语言在漫长的历史长河中是否妥当处理自然语言成为战争的胜利或是政权的更迭的关键因素。
16世纪的英国大陆英格兰和苏格兰刚刚完成统一统治者为英格兰女王伊丽莎白一世苏格兰女王玛丽因被视为威胁而遭到囚禁。玛丽女王和其他苏格兰贵族谋反这些贵族们通过信件与玛丽女王联络商量营救方案并推翻伊丽莎白女王的统治。为了能更安全地与同伙沟通玛丽使用了一种传统的文字加密形式 - 凯撒密码对她们之间的信件进行加密如 图3 所示。 图3凯撒密码 这种密码通过把原文中的字母替换成另外一个字符的形式达到加密手段。然而他们的阴谋活动早在英格兰贵族监控之下英格兰国务大臣弗朗西斯·沃尔辛厄姆爵士通过统计英文字母的出现频率和玛丽女王密函中的字母频率找到了破解密码的规律。最终玛丽和其他贵族在举兵谋反前夕被捕。这是近代西方第一次破译密码开启了近现代密码学的先河。 自然语言处理的发展历程
自然语言处理有着悠久的发展史可粗略地分为兴起、符号主义、连接主义和深度学习四个阶段如 图4 所示 图4自然语言处理的发展历程 兴起时期
大多数人认为自然语言处理的研究兴起于1950年前后。在二战中破解纳粹德国的恩尼格玛密码成为盟军对抗纳粹的重要战场。经过二战的洗礼曾经参与过密码破译的香农和图灵等科学家开始思考自然语言处理和计算之间的关系。 图5恩尼格玛密码机
图灵测试The Turing test
由艾伦·麦席森·图灵提出指测试者与被测试者一个人和一台机器隔开的情况下通过一些装置如键盘向被测试者随意提问。 进行多次测试后如果机器让平均每个参与者做出超过30%的误判那么这台机器就通过了测试并被认为具有人类智能。图灵测试一词来源于计算机科学和密码学的先驱艾伦·麦席森·图灵写于1950年的一篇论文《计算机器与智能》其中30%是图灵对2000年时的机器思考能力的一个预测我们已远远落后于这个预测
1948年香农把马尔可夫过程模型Markov Progress应用于建模自然语言并提出把热力学中“熵”Entropy的概念扩展到自然语言建模领域。香农相信自然语言跟其它物理世界的信号一样是具有统计学规律的通过统计分析可以帮助我们更好地理解自然语言。
1950年艾伦图灵提出著名的图灵测试标志着人工智能领域的开端。二战后受到美苏冷战的影响美国政府开始重视机器自动翻译的研究工作以便于随时监视苏联最新的科技进展。1954年美国乔治城大学在一项实验中成功将约60句俄文自动翻译成英文被视为机器翻译可行的开端。自此开始的十年间政府与企业相继投入大量的资金用于机器翻译的研究。
1956年乔姆斯基Chomsky提出了“生成式文法”这一大胆猜想他假设在客观世界存在一套完备的自然语言生成规律每一句话都遵守这套规律而生成。总结出这个客观规律人们就掌握了自然语言的奥秘。
从此自然语言的研究就被分为了
以语言学为基础的符号主义学派
以概率统计为基础的连接主义学派。 符号主义时期
在自然语言处理发展的初期阶段大量的自然语言研究工作都聚焦从语言学角度分析自然语言的词法、句法等结构信息并通过总结这些结构之间的规则达到处理和使用自然语言的目的。这一时期的代表人物就是乔姆斯基和他提出的“生成式文法”。1966年完全基于规则的对话机器人ELIZA在MIT人工智能实验室诞生了如 图6 所示。 图6基于规则的聊天机器人ELIZA 然而同年ALPACAutomatic Language Processing Advisory Committee自动语言处理顾问委员会提出的一项报告中提出十年来的机器翻译研究进度缓慢、未达预期。该项报告发布后机器翻译和自然语言的研究资金大为减缩自然语言处理和人工智能的研究进入寒冰期。 连接主义时期
1980年由于计算机技术的发展和算力的提升个人计算机可以处理更加复杂的计算任务自然语言处理研究得以复苏研究人员开始使用统计机器学习方法处理自然语言任务。
起初研究人员尝试使用浅层神经网络结合少量标注数据的方式训练模型虽然取得了一定的效果但是仍然无法让大部分人满意。
后来研究者开始使用人工提取自然语言特征的方式结合简单的统计机器学习算法解决自然语言问题。其实现方式是基于研究者在不同领域总结的经验将自然语言抽象成一组特征使用这组特征结合少量标注样本训练各种统计机器学习模型如支持向量机、决策树、随机森林、概率图模型等完成不同的自然语言任务。
由于这种方式基于大量领域专家经验积累如解决一个情感分析任务那么一个很重要的特征 — 是否命中情感词表以及传统机器学习简单、鲁棒性强的特点这个时期神经网络技术被大部分人所遗忘。 深度学习时期
从2006年深度神经网络反向传播算法的提出开始伴随着互联网的爆炸式发展和计算机特别是GPU算力的进一步提高人们不再依赖语言学知识和有限的标注数据自然语言处理领域迈入了深度学习时代。
基于互联网海量数据并结合深度神经网络的强大拟合能力人们可以非常轻松地应对各种自然语言处理问题。越来越多的自然语言处理技术趋于成熟并显现出巨大的商业价值自然语言处理和人工智能领域的发展进入了鼎盛时期。
自然语言处理的发展经历了多个历史阶段的演进不同学派之间相互补充促进共同推动了自然语言处理技术的快速发展。 自然语言处理技术面临的挑战
如何让机器像人一样能够准确理解和使用自然语言这是当前自然语言处理领域面临的最大挑战。为了解决这一问题我们需要从语言学和计算两个角度思考。 语言学角度
自然语言数量多、形态各异理解自然语言对人来说本身也是一件复杂的事情如同义词、情感倾向、歧义性、长文本处理、语言惯性表达等。通过如下几个例子我们一同感受一下。 同义词问题
请问下列词语是否为同义词题目来源四川话和东北话6级模拟考试 瓜兮兮 和 铁憨憨 嘎嘎 和 肉you 磕搀 和 难看 吭呲瘪肚 和 速度慢 情感倾向问题
请问如何正确理解下面两个场景
场景一女朋友生气了男朋友电话道歉。 女生就算你买包我也不会原谅你 男生宝贝放心我不买你别生气了。 问女生会不会生气 场景二甲和乙是同宿舍的室友他们之间的对话。 甲钥匙好像没了你把锁别别。 乙到底没没没 甲我也不道没没没。 乙要没没你让我别别别了别秃鲁了咋整 问到底别不别 歧义性问题
请问如何理解下面三句话 一行行行行行一行不行行行不行。 来到杨过曾经生活过的地方小龙女说“我也想过过过儿过过的生活”。 来到儿子等校车的地方邓超对孙俪说“我也想等等等等等过的那辆车”。 相信大多数人都需要花点脑筋去理解上面的句子在不同的上下文中相同的单词可以具有不同的含义这种问题我们称之为歧义性问题。 对话/篇章等长文本处理问题
在处理长文本如一篇新闻报道一段多人对话甚至于一篇长篇小说时需要经常处理各种省略、指代、话题转折和切换等语言学现象给机器理解自然语言带来了挑战如 图7 所示。 图7多轮对话中的指代和省略 探索自然语言理解的本质问题 研表究明汉字的顺序并不定一能影阅响读比如当你看完这句话后才发这现里的字全是都乱的。 上面这句话从语法角度来说完全是错的但是对大部分人来说完全不影响理解甚至很多人都不会意识到这句话的语法是错的。 计算角度
自然语言技术的发展除了受语言学的制约外在计算角度也天然存在局限。顾名思义计算机是计算的机器现有的计算机都以浮点数为输入和输出擅长执行加减乘除类计算。
自然语言本身并不是浮点数计算机为了能存储和显示自然语言需要把自然语言中的字符转换为一个固定长度或者变长的二进制编码如 图8 所示。 图8计算机计算自然语言流程 由于这个编码本身不是数字对这个编码的计算往往不具备数学和物理含义。例如把“法国”和“首都”放在一起大多数人首先联想到的内容是“巴黎”。但是如果我们使用“法国”和“首都”的UTF-8编码去做加减乘除等运算是无法轻易获取到“巴黎”的UTF-8编码甚至无法获得一个有效的UTF-8编码。因此如何让计算机可以有效地计算自然语言是计算机科学家和工程师面临的巨大挑战。
此外目前也有研究人员正在关注自然语言处理方法中的社会问题
包括自然语言处理模型中的偏见和歧视、大规模计算对环境和气候带来的影响、传统工作被取代后人的失业和再就业问题等。 自然语言处理的常见任务
自然语言处理是是非常复杂的领域是人工智能中最为困难的问题之一常见的任务如 图9 所示 图9自然语言处理常见任务 词和短语级任务包括切词、词性标注、命名实体识别如“苹果很好吃”和“苹果很伟大”中的“苹果”哪个是苹果公司、同义词计算如“好吃”的同义词是什么等以词为研究对象的任务。句子和段落级任务包括文本倾向性分析如客户说“你们公司的产品真好用”是在夸赞还是在讽刺、文本相似度计算如“我坐高铁去广州”和“我坐火车去广州”是一个意思吗等以句子为研究对象的任务。对话和篇章级任务包括机器阅读理解如使用医药说明书回答患者的咨询问题、对话系统如打造一个24小时在线的AI话务员等复杂的自然语言处理系统等。自然语言生成如机器翻译如“我爱飞桨”的英文是什么、机器写作以AI为题目写一首诗等自然语言生成任务。 使用深度学习解决自然语言处理任务的套路
使用深度学习解决自然语言处理任务一般需要经历如下几个步骤
前提学习基本知识。 在学习相关的知识后才能对任务有一定的了解例如了解模型的网络结构、数据集的构成等为后续解决任务打好基础。
处理数据。 确认网络能够接收的数据形式然后对数据进行处理。实现网络。 搭建网络的过程。模型训练。 训练模型调整参数的过程。评估上线。 对训练出的模型效果进行评估确认模型性能。 图10 探索自然语言处理
接下来让我们一起探索几个经典的自然语言处理任务包括
计算词语之间的关系如同义词word Embedding理解一个自然语言句子文本分类和相似度计算
一般来说使用飞桨完成自然语言处理任务时都可以遵守一个相似的套路如 图10 所示。 图11使用飞桨框架构建神经网络过程