同样是阅读中文,为什么人工智能不如你

RunMews 2023-07-15 17:28:48
“春暖花开的时节,我却是一个人孤单单的熬夜加班,吃着炒鸡难吃的方便面”。

这句话让人工智能来解读,“炒鸡难吃”的意思就是“炒鸡难吃”。对你来说,“炒鸡难吃”明显是“超级难吃”,这是“炒鸡简单”的一句话。在阅读中文这件事情上,人工智能未必比你聪明:正确分词已经很难,正确理解这样网络新词、“错误”语句难上加难。

哔哩哔哩弹幕——史上最难中文分词语料库

对于中文分词来说,哔哩哔哩弹幕是“史上最难中文分词语料”。因为 B 站弹幕上充斥着各种稀奇古怪的网络新词,大量的语义模糊的叠词,故意用错来卖萌的词也随处可见。类似于“炒鸡难吃”、“蓝瘦香菇”的词句非常多。

明知山有虎,偏上虎山行。今天给大家分享一下我们处理高难度分词语料的一些经验。先看一下我们对哔哩哔哩弹幕分词能够达到的效果:

中文分词:艰难挑战,仍有办法

做哔哩哔哩弹幕的分词实验,说明“分词”在中文自然语言任务中,是一个高难度的挑战。为什么强调中文分词?有两方面原因:

首先因为分词是中文自然语言任务中独有的操作。像英语这样的西欧语言天生有单词间的间隔,所以根本没有分词这一说。这意味着你无法从国外各种公开课中学习到中文的分词技巧。

其次因为中文分词的效果会对句子意思产生巨大影响。分词方式稍有不同,句子意思就千差万别。比如“结婚的和尚未结婚的”这句话,分成“结婚的|和尚|未结婚的”与“结婚的|和|尚未结婚的”意思完全不同。

以下面这句为例:

“春暖花开的时节,我却是一个人孤单单的熬夜加班,吃着炒鸡难吃的方便面”。

这个句子有两个“特色”,一个是叠字“孤单单”。网络用语中,尤其是哔哩哔哩的弹幕中有很多的叠字出现,比如最常见的“呵呵,呵呵呵呵呵”。另一个特色是“炒鸡难吃”,在网络中经常会出现这样的同音错字,有时候是因为用拼音输入法打错了,有时候是故意打错字来卖萌。

“炒鸡难吃”是什么意思?是“超级难吃”。为什么大家会知道?因为它们读音很像,你很难看出来,但念一遍就很容易明白。汉字读音对我们来说,都有上下文语境(语境,context),我们会根据这个字的声音去做推理。

如何判断同音或者同形错字,并将这些错字修正?这其实就是自然语言理解领域中的“文本归一化任务(Text Normalization)”技术,文本归一化就是把一个东西的不同讲法,甚至错别字,校准成为标准讲法。判断同音错字,只需要比对拼音的相似性。判断同形错字,可以将汉字作为“图”进行处理,将每个汉字变为一个24*24的图片,用机器视觉来解决这个问题。

结合了偏旁部首的中文字向量

聪明分词:提取语言深层特征,真正理解文本含义

在处理中文的过程中,我们需要发掘更多更抽象的深层特征。传统的分词方法可以帮助我们。在发明新东西,有时候需要在旧东西身上找灵感。过去使用词性分词,效果不好,不是因为词性没用,而在因为在浅层特征的框架下,词性无法发挥它的实质能力。而如果你将它们放到更深层的特征里去,结果就截然不同。

让我们看词向量。词向量是现代自然语言任务中的标准配备。它通过词嵌入与维度降低,将复杂问题用简单方法(数学运算)解决。但是在这里面也隐藏了一个很大的隐患,对于中文来说,分词是词向量的基础,如果前面分词分错了,那么后面的(词嵌入)就全毁了。

我们都知道使用词向量可以进行一些很有趣的运算,比如“黄晓明之于angela baby”等于“胡歌之于谁”,答案是霍建华。你会发现我们在上面写的不是“angela baby”,写的是“angela”。因为现在的中文分词有一个坏习惯,看到空格就分词。就比如我们使用jieba分词是分不出“小S”这个词的,它会分出“小|S”,即“小的S”。

不同的切分方式会产生不同的语义。语言有这样的深层特征,当你把它先简化,再分词切分,再扔进语言模型里去,就会损失掉太多有意义的信息。所以我们应该使用深度学习来帮助我们取到一个完整语句的语意,而且重点是,它在这个阶段所获得的信息,会有利于后面各个阶段任务的完成。在语言里面所得到的一些信息,其实都是一种上下文(context),而这些隐藏的规则和概念,有助于我们对句子的理解。

有一天我们可能可以依靠大量语料与庞大的计算力去解决这样的事情,但是通过活用一些技巧,我们可以省下很大工作量。如果仅靠语料与算力就可以解决问题,那自然语言任务的就可以不用做了,只交给 BAT 这样的大公司做就好了。如果你在思考如何做出有别于 BAT 的东西,怎么让计算机可以用更简单、更省力的方式做我们期望的运算,你就要取巧,而不是用蛮力,不是用强大的计算力去对决。

这时,我们可以使用一些处理自然语言的传统手法,来帮我们进行分词工作。

传统方法新启示:最大匹配和最优规划

我们再以“和尚未结婚的”做目标语句,看一下传统的中文自然语言方法是如何进行分词的。传统的中文分词方法主要有三种,最常见的是“字典匹配”。

使用字典匹配的时候,很容易在字典中匹配到“和尚”这个词,或者“和尚庙”。两个字的词可能在词典中匹配到不止一个词。比如“结婚”在词典中可能会匹配到“结婚”、“结婚典礼”、“结婚会场”……都是结婚开头。选择哪个做分词目标?传统分词会采用最大长度匹配法,也就是说拿最大长度的那个去做匹配。

所谓最大匹配就是,我们认为越长的词出现的几率越低,而这个长词偏偏却出现了,那就代表这个词在这里出现是有意义的。最大匹配方法可以结合深度学习模型解决一些问题。比如,在传统的字向量预测任务里,有一个很重要的任务叫做预测下一个字。你预测下一个字,而我实际的下一个字刚好就是你预测的那个,这代表是一个词的开头。

此外,最大匹配法还有一个重要发现:正向匹配字典的速度,比不上逆向的匹配速度。也就是说,我们用“和尚未结”去匹配,和用“结婚的”去匹配,哪一个效果更好?答案是“结婚的”。这是因为中文有一个很大的特色,重要的东西放在后面,这个和英文正好相反。比如方便面的重点在于“面”,而不是“方便”。

另外还有BMES最优规划。B代表的字是一个词的开头,M代表的字在词的中间,E代表的字是词的结尾,S代表的字本身就是一个词。

这种方法就是四个状态的分类模型。这种模型用什么做超简单?Seq2Seq(全称 Sequence to Sequence,序列到序列模型,是一种深度学习算法模型)。把一个很长的语句当做是一个序列,使用 Seq2Seq 方法去评估序列中每个字分别是这四种状态的哪一种,分词就这样完成了。

小结:

同样阅读中文,为什么人工智能不如你?

因为中文容易产生歧义,需要通过通过字音、字形、句法、语境来理解含义。对于哔哩哔哩弹幕这样的文本,现有的多数分词方法效果不佳。如何提高中文分词效果?用词向量等技术获取语言深层特征,用最大匹配和最优规划等传统方法改善模型。


每一个HTML文档中,都有一个不可或缺的标签:<head>,在几乎所有的HTML文档里, 我们都可以看到类似下面这段代码:

html{color:#000;overflow-y:scroll;overflow:-moz-scrollbars}
body,button,input,select,textarea{font-size:12px;font-family:Arial,sans-serif}
h1,h2,h3,h4,h5,h6{font-size:100%}
em{font-style:normal}
small{font-size:12px}
ol,ul{list-style:none}
a{text-decoration:none}
a:hover{text-decoration:underline}
legend{color:#000}
fieldset,img{border:0}
button,input,select,textarea{font-size:100%}
table{border-collapse:collapse;border-spacing:0}
img{-ms-interpolation-mode:bicubic}
textarea{resize:vertical}
.left{float:left}
.right{float:right}
.overflow{overflow:hidden}
.hide{display:none}
.block{display:block}
.inline{display:inline}
.error{color:red;font-size:12px}
button,label{cursor:pointer}
.clearfix:after{content:'\20';display:block;height:0;clear:both}
.clearfix{zoom:1}
.clear{clear:both;height:0;line-height:0;font-size:0;visibility:hidden;overflow:hidden}
.wordwrap{word-break:break-all;word-wrap:break-word}
.s-yahei{font-family:arial,'Microsoft Yahei','微软雅黑'}
pre.wordwrap{white-space:pre-wrap}
body{text-align:center;background:#fff;width:100%}
body,form{position:relative;z-index:0}
td{text-align:left}
img{border:0}
#s_wrap{position:relative;z-index:0;min-width:1000px}
#wrapper{height:100%}
#head .s-ps-islite{_padding-bottom:370px}
#head_wrapper.s-ps-islite{padding-bottom:370px}#head_wrapper.s-ps-islite #s_lm_wrap{bottom:298px;background:0 0!important;filter:none!important}#head_wrapper.s-ps-islite .s_form{position:relative;z-index:1}#head_wrapper.s-ps-islite .fm{position:absolute;bottom:0}#head_wrapper.s-ps-islite .s-p-top{position:absolute;bottom:40px;width:100%;height:181px}#head_wrapper.s-ps-islite #s_lg_img,#head_wrapper.s-ps-islite#s_lg_img_aging,#head_wrapper.s-ps-islite #s_lg_img_new{position:static;margin:33px auto 0 auto}.s_lm_hide{display:none!important}#head_wrapper.s-down #s_lm_wrap{display:none}.s-lite-version #m{padding-top:125px}#s_lg_img,#s_lg_img_aging,#s_lg_img_new{position:absolute;bottom:10px;left:50%;margin-left:-135px}<head><meta charset=utf-8><meta http-equiv=content-type content=text/html; charset=utf-8><meta name=renderer content=webkit/><meta name=force-rendering content=webkit/><meta http-equiv=X-UA-Compatible content=IE=edge,chrome=1/><metahttp-equiv=Content-Typecontent=www.aimssg.cn;charset=gb2312><meta name=viewport content=width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no></head>.s-ps-sug table{width:100%;background:#fff;cursor:default}.s-ps-sug td{color:#000;font:14px arial;height:25px;line-height:25px;padding:0 8px}.s-ps-sug td b{color:#000}.s-ps-sug .mo{background:#ebebeb;cursor:pointer}.s-ps-sug .ml{background:#fff}.s-ps-sug td.sug_storage{color:#7a77c8}.s-ps-sug td.sug_storage b{color:#7a77c8}.s-ps-sug .sug_del{font-size:12px;color:#666;text-decoration:underline;float:right;cursor:pointer;display:none}.s-ps-sug .sug_del{font-size:12px;color:#666;text-decoration:underline;float:right;cursor:pointer;display:none}.s-ps-sug .mo .sug_del{display:block}
.s-ps-sug .sug_ala{border-bottom:1px solid #e6e6e6}

head标签作为一个容器,主要包含了用于描述 HTML 文档自身信息(元数据)的标签,这些标签一般不会在页面中被显示出来。

...全文
447 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
AI Roboform Enterprise 中文版被称为是最好的表单填充和密码管理工具,它被仔细地设计出来并具有所需要的正确功能,具有填充表单的智能,它是市面上最准确的表单填充工具。我们使用人工智能技术来达到这样的准确度,并且经过了我们完整的测试。 AIRoboForm 中的“AI”表示“人工智能”,取自英语“ArtificialIntelligence”各字母的首字符。“RoboForm”是 RobotForm 的合成词,表示机器化,自动化填表。 AI Roboform Enterprise v7.9.10.1 功能主要是针对各中网页表单(Form)的填写而设计的。并具有人工智能。它同时可以管理你在各个网站上的用户名和密码(论坛,BBS,WebEMAIL信箱登录帐号,甚至在线银行的帐号)。你无需记忆,当浏览器到达曾经记忆过网页表单信息的网址,这些帐号和密码信息你只要用鼠标一点(如果在AIRoboForm程序中设置好了(www.dayanzai.me),甚至会自动填写)就可以实现“一键上网”。 对于密码的安全性方面,这个软件也做到了最强的加密算法(RSA,DES加密等等),保证明你的信息的万无一失(www.dayanzai.me)。而且最近,又有了一种便携式的 AIRoboForm 版本-“PortableRoboForm”,能将您的个人资料完完全全的存放到您自己的USB设备上,像在线网上银行提供的USB-Key一样,实现可移动,安全的个人网页信息资料的存贮。在网吧,学校,图书馆等公共电脑上也同样能够使用,而且不留一丝痕迹。

49

社区成员

发帖
与我相关
我的任务
社区描述
BSV区块链(BSV Blockchain)是唯一遵从2008年发布的比特币白皮书宗旨的全球公有链,具有稳定性、可拓展性、安全性、支持安全即时交易四大核心特性。
区块链 技术论坛(原bbs)
社区管理员
  • BitcoinSV社区
  • m0_61093267
  • 吴小花❀
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧