英是英语中英文结构名的结构是什么

动词次范畴化及其自动获取的研究已经在英、汉等很多语种里取得了较好的成果但跨语言的次范畴化研究仍然很少,并且不成体系描述了基于汉英双语语料库的统计汾析并获取跨语言次范畴化对应关系的系统化实验。首先根据双语词典和句法相似度识别谓词可能对齐的句对;然后,应用双重最大似嘫检验的统计过滤方法自动获取了654种次范畴化框架对应类型实验结果分析表明,这些对应类型具备统计和句法意义上的协调性

原标题:一文详解中英文结构在NLP仩的10大差异点

作者 | 达观数据创始人 陈运文

人类经过漫长的历史发展在世界各地形成了很多不同的语言分支,其中汉藏语系和印欧语系是使用人数最多的两支英语是印欧语系的代表,而汉语则是汉藏语系的代表中英文结构语言的差异十分鲜明,英语以表音(字音)构成汉语以表义(字形)构成,印欧和汉藏两大语系有很大的区别

尽管全世界语言多达5600种,但大部数人类使用的语言集中在图中的前15种(覆盖全球90%以上人群)其中英语为母语和第二语的人数最多,近14亿人是事实上的世界通用语。其次是汉语约占世界人口的23%。英语和汉語相加的人数占世界总人数的近一半因此处理中英文结构两种语言非常关键。

人工智能时代让计算机自动化进行文字语义理解非常重偠,广泛应用于社会的方方面面而语言本身的复杂性又给计算机技术带来了很大的挑战,攻克文本语义对实现AI全面应用有至关重要的意義相应的自然语言处理(Natural Language Processing,NLP)技术因而被称为是“人工智能皇冠上的明珠”

中国和美国作为AI应用的两个世界大国,在各自语言的自动囮处理方面有一些独特之处接下来笔者对中文和英文结构语言特点的角度出发,结合自己的从业经验来归纳下两种语言下NLP的异同点

一、中英文结构分词方式不同

分词是中英文结构NLP差异最广为人知的一点。我们都知道英文结构的单词之间天然存在空格来分隔因此在进行渶文结构文本处理时,可以非常容易的通过空格来切分单词例如英文结构句子:

中文在每句话中间是不存在分隔符的,而是由一串连续嘚汉字顺序连接构成了句子现代汉语里表达意思的基本语素是词而不是字。例如“自然”拆为“自”和“然”都不能单独表意,两个芓合并组成的词才能有准确的意义对应英文结构单词是Nature。因此在我们使用计算机技术对中文进行自动语义分析时通常首要操作就是中攵分词(Chinese Word Segmentation)。中文分词是指按人理解汉语的方式将连续的汉字串切分为能单独表义的词汇。例如中文句子:

“达观数据是一家中国公司”

让计算机来处理,第一步需要切分为“达观数据/是/一家/中国/公司”这样的词串的形式然后再进行后续的理解和处理。

如何正确的根據语义完成中文切分是一个挑战性的任务一旦切词发生失误,会导致后续的文本处理产生连锁问题给正确理解语义带来障碍。为了快速准确的切分好中文学术界迄今有超过50年的研究,提出了很多方法中文切词常见方法里既有经典的机械切分法(如正向/逆向最大匹配,双向最大匹配等)也有效果更好一些的统计切分方法(如隐马尔可夫HMM,条件随机场CRF)以及近年来兴起的采用深度神经网络的RNN,LSTM等方法

由于汉语语法本身极为灵活,导致歧义语义时常发生给正确完成中文分词带来了很多障碍。如例句“严守一把手机关了”所示按照语义理解,正确切分方式为“严守一/把/手机/关了”而算法有误时容易切分为“严守/一把/手机/关了”。

更困难的是有些时候两种切词方法意思都对,例如“乒乓球拍卖了”切分为“乒乓/球拍/卖了”和“乒乓球/拍卖/了”本身都可行,必须要依赖更多上下文来选择当前正確的切分方法类似的还有“南京市长江大桥”、“吉林省长春药店”等等。如果把“市长”“省长”等切出来整句话的理解就偏差很哆了。常见歧义类型包括交叉歧义(Cross Ambiguity)和组合歧义(Combination Ambiguity)等在语义消岐方面近年不断有国内外学者提出新的解决思路,来解决汉藏语系的這个特定问题

此处顺便一提,和中文类似日文句子内部同样缺乏天然的分隔符,因此日文也同样存在分词需求日文受汉语语法的影響很深,但同时又受表音语法的影响明治时代还曾兴起过废汉字兴拼音的运动,行文上汉字和假名混杂好比中英文结构混血儿。业内仳较知名的日文分词器有MeCab其算法内核是条件随机场CRF。事实上如果将MeCab的内部训练语料由日文更换为中文后,也同样可以用于切分中文

隨着深度学习技术近年来在NLP领域成功的应用,一些seq2seq学习过程可以不再使用分词而是直接将字作为输入序列,让神经网络自动学习其中的特征这在一些端到端的应用中(如自动摘要、机器翻译、文本分类等)确实省略了中文分词这一步骤,但是一方面还有很多的NLP应用离不開分词的结果如关键词提取、命名实体识别、搜索引擎等;另一方面切分所得的词汇也可以和单字一起作为特征输入,用以增强效果洇此分词仍然是工程界进行中文处理时的一项重要技术。

二、英文结构语素和中文偏旁的使用

英文结构单词的提取虽然比中文简单的多通过空格就能完整的获取单词,但英文结构特有的现象是单词存在丰富的变形变换为了应对这些复杂的变换,英文结构NLP相比中文存在一些独特的处理步骤我们称为词形还原(Lemmatization)和词干提取(Stemming)。

词形还原是因为英文结构单词有丰富的单复数、主被动、时态变换(共16种)等情况在语义理解时需要将单词“恢复”到原始的形态从而让计算机更方便的进行后续处理。例如“doesdone,doingdo,did”这些单词需要通过词性还原统一恢复为“do”这个词,方便后续计算机进行语义分析类似的:“potatoes,citieschildren,teeth”这些名词需要通过Lemmatization转为“potato,citychild,tooth”这些基本形态;哃样“werebeginning,driven”等要转为“arebegin,drive”

请注意词形还原通常还需要配合词性标注(pos-tag)一起来进行,以确保还原准确度避免歧义发生。因为英攵结构中存在一些多义词的情况例如calves就是个多义词,即可以作为calf(名词牛犊)的复数形式,也可以是calve(动词生育小牛)的第三人称單数。所以词形还原也有两种选择需要按实际所表示的词性来挑选合适的还原方法。

词干提取(Stemming)是英文结构中另一项独有的处理技术英文结构单词虽然是句子中的基础表义单元,但并非是不可再分的英文结构单词内部都是由若干个词素构成的。词素又分为词根(roots)囷词缀(前缀prefix或后缀suffix)而词根的原形称为词干(stems)。例如单词disabilitydis-就是表示否定意思的常用前缀,-lity是名词常用后缀able是表示“能力”的词幹,这些词素合并在一起就构成了单词的含义

英文结构的词素种类非常多(最常用的有300多个),很多源自拉丁语和希腊文提取词素对悝解英文结构单词的含义起着非常重要的作用,例如semiannually这个单词可能有的朋友并不认识,如果通过词素来看:前缀semi-表示“一半”的意思詞干annul表示年,-ly是副词后缀semiannually这个单词的含义是“每半年进行一次的”。

Algorithm目前大部分英文结构NLP系统都包括词形还原(Lemmatization)和词干提取(Stemming)模塊。(陈运文)

相比英文结构中文里是没有词干的概念的,也无需进行词干提取这是中文NLP中相对简便的一块。但在中文里有一个相近嘚概念是偏旁部首和英文结构中“单词不懂看词干”类似,中文里“汉字不识看偏旁”例如“猴、狗、猪、猫、狼”这些汉字,显然嘟是动物名词当出现汉字“狁”时,即使不认识也能通过部首“犭”猜出这是一个动物名称且发音类似“允”字。再比如“木林,森”这些字都和树木相关数量还递增。“锁、锡、银、镜、铁、锹”都和金属有关“采”字和手抓植物有关。“囚”字和“孕”字就哽直观形象了

借鉴英文结构中词干提取的方法,很多人自然会立刻想到:是否我们拆分中文汉字的偏旁部首作为特征输入,也能更好嘚帮助计算机理解中文语义呢学术界确实也有人做过此类尝试,但是整体收益都不像英文结构词干分析那么明显这背后的原因是什么呢?

笔者认为其原因首先是常用汉字的数量远比英文结构单词要少,相比英文结构单词数量动辄数万计加上各种前后缀和词形变换数量更多,中文汉字最常用的才过千个因为字少,每个汉字的意思多这些汉字的含义通过上下文来获取的语义描述信息足够充分,拆分偏旁后额外再能添补的信息作用非常小即便对罕见字来说偏旁确实能额外补充特征,但因为它们在日常文本中出现频次太少对整体文夲语义理解的作用很有限,只有在一些专业性文书的应用上可能起少量帮助

其次是汉字经过数千年的演化,再加上简化字的使用很多芓形和含义已经发生了巨大变化,偏旁未必能准确表达字的意思甚至使用偏旁可能还会引入一些噪声特征。第三是现代汉语里表义的基夲单元是多个汉字构成的词而不是单字。这和英文结构中表义单元是单词完全不同因此对单个汉字的偏旁处理对整个中文NLP起到的作用非常轻微,并未成为中文NLP里常用的做法

三、词性标注方法的差异

词性是语言学的一个概念,根据上下文将每个词根据性质划归为特定的類型例如n.名词 v.动词 adj.形容词 adv.副词等就是最常见的几类词性。中英文结构的词性尽管整体相似例如表达一个物品(如苹果Apple,火车Train)通常是洺词而描述一个动作(如跑步Run,打开Open)一般是动词但在很多细节上存在差异。如果计算机能够对每个词汇的词性进行正确的识别无疑对增强语义分析的效果有帮助(注:同样在seq2seq里词性并不必须,但是对词性的正确理解仍然有其特定价值)

其一是英文结构中有一些中攵所没有的词性。这些词性大量存在给语义理解带来了很好的指引作用。其中最典型的就是英文结构特有的两个词性:一是冠词二是助动词。中文里没有冠词一说在英文结构中冠词(Article,一般简称art.)也是词性最小的一类只有三个:不定冠词(Indefinite art.)、定冠词(Definite art.)和零冠词(Zero art.)。如英文结构中无处不在的单词“the”就是定冠词the后面通常会紧跟着出现句子的关键名词+介词短语。例如“Show me the photo of your company”通过定冠词the的指示,佷容易的定位本句话的关键实词是photo

company”里“a”这样的不定冠词也可以很好的指示出宾语“company”。这些大量出现的冠词虽然是虚词本身并没囿明确含义,但在NLP中用于定位句子中的关键实词判断实词种类(是否可数,是否专有名词等)进而识别出句法结构(后面还会详细介紹)等,起到了很大的指示作用也降低了计算机进行语义理解的难度,因而这方面英文结构比中文有先天优势

助动词(Auxiliary Verb)也是英文结構特有的现象,助动词的作用是协助主要动词构成谓语词组如am, is, have, do, are, will, shall, would,should, be going to等都是常见助动词,在英文结构句子中也大量存在和冠词用于指示主语賓语类似,助动词对识别主要动词(Main Verb)和谓语会起帮助

其次,英文结构在词性方面的划分和使用更严谨词汇在变换词性的时候会在词尾形成丰富的变化。例如-ing、-able、-ful、-ment、-ness等都对确认词性给出具体的提示名词中还会进一步区分可数名词、不可数名词,在词尾用-s、-es来区分動词也同样会存在发生时态的指示,过去式现在时,未来时等非常明确因此在英文结构语法中几乎没有词性混淆不清的情况发生。

而Φ文的词性则缺乏类似英文结构这样的明确规范中国著名的语言学家沈家煊先生在著作《语法六讲》中就曾提出“汉语动词和名词不分竝”的观点,将确认汉语词性的问题描述为“词有定类”则“类无定职”而“类有定职”则“词无定类”。和英文结构中名词、动词、形容词三大类词汇相互独立的“分立模式”不同中文更类似“包含模式”,即形容词作为一个次类包含在动词中动词本身又作为次类被名词包含,而且这个词性的转换过程非常微妙缺乏表音语言中的前后缀指示。

例如“他吃饭去了”中“吃饭”是动词只需要句式稍加变换为“他吃饭不好”,此时“吃饭”就摇身一变成名词了“热爱编程”、“挖掘数据”中,“编程”、“挖掘”等词既可以是名詞也可以是动词。形容词也有类似的情况如“活跃”是个常见的形容词,常用句为“他表现非常活跃”但有时也可以变身为动词“他詓活跃气氛”,还能变为名词“活跃是一种行为习惯”可见汉语语境的变化给词性带来非常微妙的变化。

汉语没有英文结构的屈折变化嘚特点不像英语能通过灵活的词尾变化来指示词性变化,汉语这种一词多性且缺乏指示的特点给计算机词性标注带来了很大的困难,業界对词性的标准以及标准测试集也很不完善很多具体词汇的词性甚至让人工来研读都模棱两可,让算法自动来识别就更难了

例如:“他很开心”、“他逗她开心”、“他开心不起来”、“他开心的很”、“开心是他很重要的特点”,这里“开心”的词性让人来判断都佷难搞明白甚至存在争议。而反观英语里一个词被标为动词还是名词几乎不存在争议对这些模糊的情况,一些中文语料标注库里干脆鼡“动名词vn”、“形名词an”等来标记搁置争议,模糊处理

在目前中文NLP词性标注中,“名动形”糊在一起的特点仍然没有找到特别好的處理手段也给后面的句法结构分析,词汇重要性判断核心关键词提取等语义理解课题带来了干扰。

四、标点符号和字体特征

在自然语訁处理应用中很容易被忽略的是标点和字体等信息的利用。尤其学术界研究核心算法时一般都会忽略这些“次要”信息大部分学术测試集合干脆是没有字体信息的,标点也不讲究但是在实际工程应用中,这些信息能起不小的作用而英汉语在其使用方面也存在一些差異。标点(如!:——。等)和字体(字母大小写斜体,粗体等)虽然本身没有具体语义但在辨识内容时起重要的引导作用。不妨讓我们想像一下如果把我这篇文章里所有标点、分段、标题字体等都去掉,让人来阅读理解本文内容难度是不是立刻会加大很多?若昰换成计算机来读那就更麻烦了

在英语中(尤其是书面语中),逗号和句号的使用有明确规范一句话结尾要求必须用句号符“.”,并苴下一句话的第一个单词的首字母要求大写英文结构中从句非常多,从句之间要求用逗号“,”连接以表示语义贯通。不仅如此当一呴话的主谓宾完整出现后,如果下一句话也同样是一个完整句子则两句话中间或者需要用连词(如and, or, therefore, but, so, yet, for, either等)连接,或者必须用句号“.”分割如果中间用“,”且没有连接词,则属于正式文书中的用法错误如:

这里出现的标点和大小写字体是良好的句子语义指示符,既分割不哃句子也在句子内部分割不同语义,这些规范给英文结构NLP处理创造了较好的环境

中文标点的使用则没有这么强的规范。事实上中文标點在中国古代官方文书中一直不被采用仅扮演民间阅读中的停顿辅助符的角色。直到1919年中华民国教育部在借鉴了西方各国标点规范后才苐一次制定了汉语的12中符号和使用方法建国后在1951年和1990年两次修订后逐步成型。因为历史沿革的原因这些对标点的使用规范更多偏向于指导意见,而不是一套强制标准

例如对逗号和句号何时使用,并不像英语中有特别严格的界定汉语的分句较为模糊,意思表达完以后雖通常用句号但用逗号继续承接后面的句子也并不算错,只要整篇文章不是极端的“一逗到底”即使语文老师在批阅作文时也都不会過分对标点较真,而日常文章中标点的使用更是随心所欲了

与此同时,英文结构里专有名词用大写或者斜体字体来区分首字母大写等鼡法,在中文中也不存在NLP处理中,中文标点和字体使用的相对随意给句法分析也带来了巨大的挑战尤其在句子级别的计算机语义理解方面中文比英文结构要困难很多。

除了上述不利因素中文也有一些独特的标点带来有利的因素。例如书名号《》就是中文所独有的符号感谢这个符号!书名号能非常方便的让计算机程序来自动识别专有名词(如书名、电影名、电视剧、表演节目名等),这些名词往往都昰未登录词如果没有书名号的指引,让计算机程序自动识别这些中文专名的难度将加大很多而这些专名词汇恰恰都体现了文章的关键語义。

例如下面这段新闻如果让计算机来阅读:“由于流浪地球的内容很接近好莱坞大片因此影评人比较后认为不仅达到了2012的水平,而苴对比星际穿越也毫不逊色”要求计算机自动提取上面这句话的关键词会非常困难,因为里面有很多未登录词对“2012”的理解也会有歧義(时间词?or电影名)

而正因为我们中文有书名号,迎刃而解:“由于《流浪地球》的内容很接近好莱坞大片因此影评人比较后认为鈈仅达到了《2012》的水平,而且对比《星际穿越》也毫不逊色”。除了书名号汉语的顿号(、)也能很好的指示并列关系的内容,“达觀每天下午的水果餐很丰富有桃子、葡萄、西瓜和梨”,这些并列的内容可以很方便的被计算机解读

英文结构则没有书名号和顿号等,而是采用特殊字体(例如加粗、斜体、大写各不相同,没有强制约定)等形式来标识出这些专有名词因此在处理英文结构时,这些芓体信息起很重要的作用一旦丢失会带来麻烦。

值得一提的是在日常聊天文字中,标点符号和字母使用的含义产生了很多新的变化唎如对话文本中“。。。”往往表达出“无语”的情绪“?”和“?”前者是疑问,后者更多表达震惊还有 :) ^o^/ ORZ等各类的符号的變换使用,给开发对话机器人的工程师们带来了很多新的挑战

五、词汇粒度的处理方法差异

词汇粒度问题虽然在NLP学界被讨论的不多,但嘚的确确NLP实战应用中的一个关键要点尤其在搜索引擎进行结果召回和排序时,词汇粒度在其中扮演关键角色如果对其处理不恰当,很嫆易导致搜索质量低下的问题

我们先看中文,词汇粒度和分词机制有很大关系先看个例子:“中华人民共和国”这样一个词,按不同粒度来切既可大粒度切为:“中华人民,人民共和国”也可进一步切出“中华,人民共和国”,而“共和国”还可以进一步切为“囲和国”。一般我们把按最小粒度切分所得的词称为“基本粒度词”在这个例子中,基本粒度词为“中华人民,共和国”4个词。甚至“中华”还能继续切出“中/华”也有表义能力(这个后面还会详细分析)

为什么分词需要有不同的粒度呢?因为各有作用大粒度詞的表义能力更强,例如“中华人民共和国”这样的大粒度词能完整准确的表达一个概念,适合作为文章关键词或标签提取出来在搜索引擎中直接用大粒度词去构建倒排索引并搜索,一般可得到相关性(准确率)更好的结果

但从事过信息检索的朋友们想必清楚召回率(Recall)和准确率(Precision)永远是天平两端互相牵制的两个因素。大粒度词在搜索时会带来召回不足的问题例如一篇写有“人民共和国在中华大哋上诞生了起来”的文章,如果用“中华人民共和国”这个词去倒排索引中搜索是无法匹配召回的,但拆分为“中华人民 共和国”三个詞进行搜索就能找出来

所以一个成熟的分词器,需要因地制宜的设置不同粒度的分词策略并且最好还能确保在检索词处理(Query Analysis)和索引構建(Index Building)两端的切分策略保持一致(陈运文)。目前学术界公开的分词测试集合往往都是只有一种粒度,而且粒度划分标准也并不一致导致很多评测结果的高低离实际使用效果好坏有一定距离。

在中文分词粒度里有一个非常令人头疼的问题是“基本粒度词”是否可继續拆分的问题。就好比在化学中通常约定原子(atom)是不可再分的基本微粒,由原子来构成各类化学物质但如果进一步考虑原子可分,那么整个化学的根基就会动摇同样在中文NLP领域,虽然学术界通常都默认基本粒度词不再可分但在实际工程界,基本词不可再分会导致佷多召回不足的问题引入难以解决的bad case。不要小看这个问题这是目前限制中文语义理解的一个特别常见的难题。要解释清楚来龙去脉筆者还得从汉语的发展历程说起。

中国古代汉语的表义基本单位是字而不是词我从《论语》中拿一句话来举例:“己所不欲,勿施于人”古代汉语一字一词,这句话拿来分词的话结果应该是“己/所/不/欲勿/施/于/人”,可见全部切散为单字了如果用现代白话文把这句话翻译过来,则意思是“自己都不愿意的方式不要拿来对待别人”。现代汉语的特点是一般喜欢把单字都双音节化“己-->自己,欲-->愿意勿-->不要,施-->对待人-->别人”。

可以看出这些双音节(或多音节)词汇中部分蕴含着来源单字的意义这种现象在现代汉语词汇中比比皆是,例如“狮子”“老虎”,“花儿”“图钉”,“水果”“红色”等,对应“狮虎,花钉,果红”等有意义的单字。而如果紦这些双音节词作为不可再切分的基本粒度词的话当用户搜“狮”的时候,即使文章中出现了词汇“狮子”也是无法被搜到的。

那么洳果将这些基本粒度词再进一步切分呢会切出“子,老儿,图水,色”这样存在转义风险的词汇(即这些单字对应的含义并未体现茬原文中)带来很多“副作用”。例如用户搜“老”的时候当然不希望把介绍“老虎”的文章给找出来。

与此同时还有另一类的情況是有一些词汇切为单字后,两个单字都分别有表义能力如“北欧”切为“北/欧”,对应“北部欧洲”两方面的意思。“俄语”切为“俄/语”对应“俄国,语言”“苦笑”,切为“苦/笑”对应“痛苦,笑容”以及“海洋”,“图书”“亲友”,“时空”等都昰可细分的

还有第三类情况是,词汇切分后单字都不能体现原词含义例如“自然”,如果切分为“自/然”两个字都没有意义。类似嘚还有“萝卜”“点心”,“巧克力”等外来语为多。

之所以前面提到如今中文语义分析时基本粒度问题是一个关键难题,原因是茬现代汉语写作时既有现代双音节/多音节词汇,也夹杂很多源于古代汉语的单字半文半白的现象很常见,这就一下给语义理解带来很夶的挑战不管是切分粒度的选择,还是单字和词汇间关联关系的提取标题和正文语义的匹配,当面临文白间杂时都会遇到难关

常见嘚情况为:新闻标题为了精炼,经常喜欢采用源自古汉语习惯的单字简称或缩略语例如“中美援非模式差异带来效果大相径庭”,是选擇“中美/援非”这样的基本切分粒度还是按单字表义切分为“中/美/援/非”,对应“中国美国援助非洲”这样的内容是存在各自的利弊嘚。计算机提取文章关键词时还需要把“援—>援助,非-->非洲”还原为词并建立关联才能很好的解读处理

目前业界并没有一个公认的粒喥标准,常见的几个评测语料集合如北大pku-test,微软亚洲研究院msr-test人民日报标注语料等,切分标准都有所不同虽然一般普遍采用的双音节詞为主的基本粒度标准,但是在应用于搜索引擎、问答对话时都会出现大量召回不足的问题而大量采用单字作为基本粒度词又会引入有轉义风险的无效单字,并且还会出现运算性能等隐患

为了解决基本粒度词的问题,笔者曾在百度设计开发了亚粒度词(subterm)补足的策略緩解了召回不足的问题,工业界还有一些其他的同义词关联等方法来应对但到目前为止词汇粒度问题仍然是困扰中文NLP的一个“慢性病”。近年来兴起的BERT模型利用大量文本进行Transform预训练,填补各种粒度词汇的语义信息也是是一种缓解问题的办法。

英文结构因为不存在切分問题所以粒度问题只需要考虑词组(Phrase)切分的问题。例如Harvard University两个单词可以切为Phrase来表达一个具体机构。相比中文的从细到粗的多粒度切分偠简单很多

六、句法结构分析方法异同

自然语言处理在词汇级别之上是语句级别,因为语句是由一系列的词汇排列组合后生成的通过學习语法我们知道句子结构是由“主谓宾定状补”这样的句法元素构成的。例句“陈运文去达观数据上班”主语是“陈运文”,谓语“仩班”“达观数据”是状语,说明动作发生的地点

在句子结构方面,“英语重形合汉语重义合”的特点体现的非常明显。英语为了充分体现句子中的各种承接、转折、从属、并列等关系不厌其烦的准备了大量的连词、助词、介词、冠词等作为填充剂,来补充实词之間的缝隙构成了很多从句、引导句。这些包含各类结构的结构让计算机来进行语义角色标注(SemanticRole Labeling,

因为这些形式指示词的存在,一个大家能佷直观发现的现象就是英文结构写出来的句子往往都特别长整篇文章篇幅多。而同样的意思用中文写出来篇幅往往只需要英文结构的┅半甚至更少,汉语的句子非常精炼尤其诗歌用短短几个字能描述出丰富的内涵——“孤帆远影碧空尽,唯见长江天际流”多么洗练優美有意境。

从计算机的视角来看恰恰因为汉语讲究意合而不重形式,句子结构都比较松散并没有英文结构中那么多的虚词作为实词間的语义粘合剂,而是依赖词汇前后顺序关系隐含表达出句子结构,所以也给计算机处理带来了挑战例如“中国人工智能创业企业获獎名单公布”这句话里,“中国人工智能,创业企业,获奖”这一连串的名词均是主语“名单”的定语如果用英语来写这句话,一萣会出现形如“the…of…that…which…”这样一系列的辅助词来把这些名词粘接到一起而中文并没有它们。所以当我们训练算法去识别句子主语和定語的时候必须要小心的判断哪个名词才是句子的真正主语所在。汉语中句子的重心往往后移相反英语中句子主要部分前移,所以通常苼成句法依存树时中文都会自动选择靠后的名词

除了句子内部的辅助词外,在句子间关系识别时中英文结构都会通过特定标识词连接孓句间关系,例如转折关系(虽然…但是…)假设关系(如果….就…),递进关系(不仅…而且…)因果关系(因为….所以….),英攵结构则是because…, Although…, If…, but also… 等在中英文结构中这些标识词经常会被自动省略,例如“车站人流量大大家要照看好自己的行李”。这里隐含的語义为“[因为]车站人流量大[所以]大家要照看好自己的行李”,[-]内的词汇被自动省略了区别在于英文结构一般会省略其中一个,例如“because…, so…”这样的句子会省掉其中一个,中文则既可以全省掉也可以全写出,实际进行语义理解时需要额外补充处理

目前句法依存分析茬实际工程应用中并没有发挥很大作用,其原因一方面是上述一些现象导致了很难抽取得到特别准确的句法关系结果另一方面是大部分NLP應用选择了直接从词汇或篇章级别来获得结果,省去了中间句子这层目前业界针对长程的语义上下文关系,逐步放弃传统的RST方法更多傾向于利用记忆网络(如bi-LSTM)等技术完成提炼。在聊天对话等应用方面用句法结构来把握语义仍然是会有价值的。

七、中文英文结构指代消解处理

计算机进行文章内容解读时经常碰到指代消解(ReferenceResolution)的问题。不论是在书面文本中进行长文章解读还是在对话文本中回溯前文問题,指代消解都起到非常关键的作用计算机需要能像人类一样建立起上下文间这些词汇间的关联关系,做到把概念串联起来“读懂”攵章的意思例如这句话:

“达观数据顺利入驻浦东软件园,公司创始人陈运文表示达观专注于为企业提供文本智能处理软件系统和技術服务。他说:‘文本理解任重道远’”

这句话里“公司”、“达观”、“他”这些都是指代词“达观数据”、“陈运文”是真正的实體,称为先行语(antecedent)而“公司”、“达观”、“他”是回指语(或称为照应语,anaphor)回指语有时是代词(如“He”、“that”、“该公司”、“上述条款”、“前者”、“被告人”等等),有时是简称或缩写(如“达观”、“CEO”、“NLP”、“WTO”)有时采用借代方法,如“白宫的態度非常坚决”“范冰冰们的纳税情况逐步被公布”,“白宫”=“美国总统”“范冰冰们”=“大陆影视演员”。

人类的阅读能力非常強各类指代的情况人都能通畅理解,但对计算机来说并不简单在NLP领域为此专门存在技术分支称为指代消解。指代消解通常又细分为回指、预指、共指等情形实践中通常称为共指消解(CoreferenceResolution)。

英文结构中常见指代语是专名首字母缩写也是表音文字特别之处。英文结构中專有名词往往由多个单词构成篇幅长,从中抽取字母构成各类缩写约定非常常见缩写一部分是行业内通用的(例如计算机领域常见的CV,DNSCPU,NLP等)另一些则是在文中第一次出现专名时临时约定的。

tons(MMT).”这里临时性缩写(HCS,YTDMMT等)大量出现。这些回指语是一个新的独立单詞(例如例子中的HCS)和原词汇的关联处理通过共指消解来完成。另一类回指语是“it、which、where、there、that”等这样的指代词要通过上下文依赖关系詓寻找实体。

中文的缩写通常是从实体中抽取若干汉字新构成的词例如北京大学简称北大,复旦大学简称复旦XX银行,通常简写为X行XX局长,简写为X局(陈运文)因为汉字里单字的表义能力比英文结构中单独的字母要强的多。我们知道常用汉字有5000多个而英文结构字母呮有26个,所以中文缩写词更容易能让人“望文生义”读懂含义。例如“高碳钢”这个缩写即使是外行也能猜出意思但是HCS怕是很难直接讓人明白是啥,即汉语在缩略语的可读性上优于英文结构

正因为英文结构缩略语可读性弱,且重复歧义多所以为了让人能读懂,英文結构里通常都会清楚标出先行语和缩写规则而汉语里除非严格的法律文书会前置术语表,一般文本里用缩略语时比较随意很多时候约萣俗成,并不“提前打招呼”例如新闻:“北大学生在刚刚结束的奥数竞赛中成功摘得两枚金牌”。如果按缩略语习惯应该写为:“丠京大学(以下简称北大)学生在刚刚结束的国际奥林匹克数学邀请赛(以下简称奥数)中成功摘得两枚金牌。”

在共指消解中还会遇到嘚一类问题是因为语法结构导致的指向歧义的问题例如“这张照片里有陈运文和高翔的同事”、“那边坐着三个公司的工程师”,这在湔面句法结构解析时提到过也同样会影响中英文结构在处理共指消解时的结果。

在实际工程应用中共指消解最常用到的场景是对人名、机构名、地点、条款、具体事件、关系类型等要素的指代处理。在超长文书(如证券行业的上市公司重组公告、招股说明书等)处理方媔该技术也起了很大作用日常中文的共指消解存在一定的行文规律,通过预先挖掘简写和指代词表导入算法中可显著提升效果业界常見的共指消解方法既有传统的规则启发法,也有经典的统计学习、聚类算法、概率图模型等此外深度强化学习、长短时记忆网络等新的Meural

仈、英汉语词汇间关联关系挖掘

词汇间关系是构建语义网络的一项基础技术,我们知道同义词、近义词、相关词是特别常见的词汇关系此外词汇的上下位(例如在生物知识网络中Sparrow属于Bird,Shanghai属于China)和词向量等在NLP处理中都很重要和英文结构单词相比,汉字的数量少得多常用漢字数才个,其中最常用的1000个汉字已经能覆盖92%的书面资料了这1000个汉字中去掉偏旁部首类似的字,独立语素更是不到500个在表述事物时汉語中采用字组合的方式,可以非常方便的理解词义并且研读出词汇之间的关联关系

而英文结构单词动辄2万-3万个(美国成年人平均单词量),而且意思相似的词汇间的字母构成差异很大所以很多情况下如果没见过某个单词,很难像中文一样大致能猜出词汇所指的意思请夶家不查词典猜猜limousine、roadster、saloon分别是什么意思,再看看对应的中文意思就能理解为什么会有这么多英文结构单词了。

我们再用下面的这样一些唎子给大家直观的展示英文结构在表述相近事物时的差异性:Chick, Rooster, Hen, Egg彼此之间从字母分布上来看很难看出有什么关联但是换成中文,对应的是尛鸡、公鸡、母鸡、鸡蛋很容易就能发现其中的规律。中文词汇是由有意思的单字组合构成的因此通过字就很容易观察和理解词汇间嘚关系。

类似的小牛,公牛母牛的英文结构单词为Calf,OxCow,甚至公牛在英文结构中还区分阉割后的steer和没被阉割的bull因此汉语NLP中只需要根據动物名“鸡”、“牛”、“猪”、“鸭”加上相应的形容词就可以知道意思了,而在英文结构中由于单词的差异无法直接通过单词的语素关系直接计算获得所以为验证语义关系时略为复杂一些。

Graph)是理解这些词汇间关系一种好办法词汇(或称为实体Entity)间的关系通过挖掘大量文本、Wiki等来构建。英文结构词汇间的关系不像中文这样能让人能观察到因此构建知识图谱对英文结构来说非常有价值。例如spaghettipenne,capellinifusilli,lasagnemacaroni这些实体,通过构建出知识图谱才能让计算机知道他们都属于Pasta(意大利面)下面的某个品类的名字。

近几年兴起的基于Skip-gram或CBOW模型的Word2Vec方法一经提出就得到了非常广泛的应用在实践中好评如潮,就是因为embedding技术恰好弥补了英文结构中词汇之间关系不直观的问题对提高计算机英文结构语义理解的能力起到了很好的帮助作用。类似的中文词向量、预训练等技术构建好后,也带来了整体语义分析效果的大幅喥进步汉语和英语在词汇间关系挖掘这个方面,目前整体的算法都是相同的区别在于汉语的词汇间关系可以更加显式的被人观察到。

畢竟让人来判断hepatitis和pneumonia,Grape和RaisinJanuary和March,Monday和Thursday间的关系相比分析肝炎和肺炎,葡萄和葡萄干一月和三月,周一和周三之间的关系还是要困难很哆的,对计算机来说也是如此

九、中英文结构省略和内容补足的处理

语境是一个微妙的概念,人类在进行文字阅读时不只是看到文字內容本身,而是不自觉的会将语境相关的词汇自动补充进入字里行间辅助语义理解。反之人类在文字写作时,会将一些重复内容省略掉主语或宾语是最常被省略的对象。例如摘录自合同文书的一段文字“本协议中约定了大桥建设工程的具体内容其中乙方负责承接,丙方负责监督以确保顺利交付”。

如果让计算机来解读需要把指代语补齐(用[-]表示)为:“本协议中约定了大桥建设工程的具体内容,乙方负责承接[该工程]丙方负责监督[乙方的工作],确保[该工程]顺利交付” 书面文本还相对规范,如果是日常对话的口语文本那么省畧更加是无处不在,以一个电商客服问答为例:“这双卖多少”,“58”“少点?”“最低了”。“行吗”,“做不了哎”如果補齐省略语,应该为:“这双[鞋子的价钱]卖多少”“[价钱]少点[行吗]?”“[价钱少点]行吗”

除了主谓语省略,一些非常重要的连词也经瑺被省略例如“因为…所以…,虽然…但是…尽管…然而…”,例如:“开车不注意亲人泪两行”,“股市有风险投资需谨慎”,补充逻辑连词后为“[如果]开车不注意[那么]亲人泪两行”,“[因为]股市有风险[所以]投资需谨慎”。

区别在于英文结构书面文本中省略絀现的较少同时语义连接词的省略有固定规范,例如“because…so…”要求只省其中一个英文结构行文时单词使用量比中文多,同样的内容英攵结构篇幅通常是中文的200%左右也即中文1页纸写完的内容,如果用英文结构写要2页甚至更多如果对比惜字如金的文言文,就更浓缩了洳“民为贵,社稷次之君为轻”,10个字如果改用英文结构写没有几十个单词怕是说不清楚。那么放到省略环境下看时汉语就比较吃虧了,因为本来就浓缩再加上语法约束不严导致时不时省略,对信息的损失比较大

从10个汉字的短句中省略2个字,和从一段20个单词的英攵结构句子中省略2个单词前者对计算机处理来说要费力不少。达观在进行文本应用实践中也在想办法主动“脑补”出这些省略语,加罙对文字理解的深度(陈运文)近年兴起的文本预训练(例如大名鼎鼎的BERT,MT-DNN等)技术通过海量文本的预训练对文本进行表示学习,运鼡transform编码器等把这些词句中的隐语义信息嵌入(Embedding)结合Attention机制,填补省略内容在自然语言理解(NLU)的很多应用(例如GLUE

十、歧义问题与子串轉义处理

虽然大部分NLP的算法都具备语言无关性(Language independent),但是在具体工程任务中还是有很多语言相关的问题在汉语中经常发生的一类情况是攵字子串局部转义的问题。这个问题因为是汉语所独有的在英文结构中几乎不曾出现,所以在自然语言处理的学术界并不作为主流的课題被研究(因为学术界主流还是倾向于研究语言无关性的课题和方法)但是笔者在多年从事NLP以及搜索和推荐系统技术研发工作时,深深嘚感受到子串转义是一个非常困难却也非常重要的汉语NLP课题对这个课题处理水平的高低直接影响着大量的实际工程效果。下面具体阐述丅该问题的定义

前文我曾提到过汉语中单字不多(3000个汉字可以覆盖99%的中文文本了),所以汉语里的词汇大多是由几个汉字顺序组合来形荿的这里潜伏着一个巨大的隐患是,因为字的排列组合形式很多所以会导致局部出现的一些组合所构成的意思,和整体词的意思不同出现歧义;或者说一个词汇中的子串和整个词的意思会出现很大的差异,因而也称为子串转义问题

这里我用数学形式化的方法再来表述下:假设A、B、C分别表示三个汉字,那么子串转义就是指词汇ABC的含义和AB或者BC的含义完全不相同。当然4个汉字或者更长的短串也类似例洳ABCD和ABC或BCD或AB、BC、CD的意思可能会完全不同,这种意思“突变”的情况称为子串转义

例如:“周杰伦”和其中的前两个字构成的词“周杰”显嘫指的是完全不同的两个人,“荨麻疹”和“麻疹”是两种病“亚健康”和“健康”的意思截然相反。这会给计算机处理带来很多困难尤其在搜索引擎中,当用户搜“周杰”或“麻疹”或“健康”时如果结果出“周杰伦上海粉丝见面会”、或“荨麻疹治疗方法”、“導致白领亚健康的主要原因”都是不太好的结果。我们在搜索引擎中遇到的大量结果不相关的问题很多都是由于汉语中局部转义现象导致的。

同样在进行关键词提取、文本相似度计算、相关文章推荐等场景的时候,这些局部转义的问题同样也会带来很大麻烦例如“周傑伦上海粉丝见面会”和“周杰伦现身上海电影节”两篇文章的内容相关度,显然远大于“周杰上海粉丝见面会”

很多朋友可能会觉得這些都可以视为命名实体识别(NER)问题,将这些专名直接切为一个整体就能解决上述局部转义的问题了。其实没这么简单因为其实大量的中文词汇里,局部词组合成的意思和整体词汇是存在关联的如果不切开会带来召回不足的问题。例如“消防队”和“消防”“上癍族”和“上班”,“315晚会”和“315”等甚至前面例子里“周杰伦”和“杰伦”也有紧密的语义关联。当用户搜索词是“消防”、“杰伦”、“315”等query时相应的整体词“周杰伦”、“315晚会”等所在的文章也理应被搜出来。因为明明文章里有这个词且意思相关如果没被找出來是不能被用户接受的。通过这些例子可见正确处理汉语的字词组合的确是一件很棘手的课题

再举个例子:“不可以”这个常用词,把“不可”单独作为子串提取出来是非常有必要的因为和原词意思相同。但是把“可以”单独提取出来就很危险因为和原词意思相反,單独进行搜索匹配会导致歧义再如我们可以把“阿里巴巴”里的子串“阿里”切出来,因为很多时候用户称呼“阿里”就是指“阿里巴巴”但是把“里巴”或“巴巴”切出来则是不合适的。

究竟哪些子串词汇和原词意思相同相近哪些又会发生转义?这需要计算机更智能的进行判断才行目前我们已经想了一些方法去解决,例如通过字的共现频率等进行处理但离彻底解决汉语里子串转义的问题还有距離。

除了子串转义外汉语中其他歧义的情况也是比比皆是,例如“我去上课了”、“她看病去了”(主动和被动不明导致无法区分老師还是学生,病人还是医生)、“要多少有多少”(无法区分核心语义是多还是少)、“咬死了猎人的狗”、“喜欢山区的孩子”(无法區分狗或孩子是主语还是宾语)因为中文不是靠词汇的变形变换来体现修饰、主被动等关系,而是靠顺序组合来体现因此在中文NLP的各個环节,从分词、词性、句法、指代到局部子串处理等,都会带来歧义理解的问题

英文结构中也存在歧义问题,最常见的情况是英文結构多义词导致的例如“He went to the bank”既可以理解为“他去了银行”,也可以理解为“他去了河岸边”“The doctor saw the Indian dance”,单词Indian既可以视为形容词“印第安人嘚舞蹈”也可以是名词“印第安人+跳舞”,还有英文结构中不定式导致的歧义如“Not many books filled the shelves”,可以理解为“书架上没有几本书”或者“要放滿那些书架不用很多书”

其实所有的人类语言都存在着各式各样的歧义的问题,我们看到各个民族所流传的笑话里很多都是拿这些歧义語义来打趣的不同语言处理歧义的具体方法不同,但整体思路都是将歧义句放到句子上下文里来解读引入更多语境信息来正确获得意思。

可以说计算机进行语义理解的结果某种程度上就是在和各种各样的歧义做斗争的过程。打个比方自然语言处理的过程就像是让计算机拿着用上下文语境拼凑出的一张残缺的地图,拨开云遮雾绕的文字迷雾越过歧义所埋下的一个个大坑,逐步接近语义真相的过程

Φ文和英文结构这两类全球使用人数最多,影响力最大的语言有各自鲜明的语言特色,在计算机进行自然语言处理领域也有各自独树一幟的地方本文从语言特点的角度出发,从10个方面分析了中英文结构在自然语言处理上的差异随着全球化的发展,中英文结构在不断相互影响相互渗透。例如中文中有大量的外来语来自英文结构沙发、咖啡、巧克力、牛顿等这些频繁出现的词汇都源于英文结构,还有佷多专业术语如NGO、WTO、CFO等甚至NLP一词本身也是源自英文结构。英文结构也在受中文影响每年都有近千条外来词汇新收录入英文结构词典,洳Kungfu(功夫)tofu(豆腐)等。

我要回帖

更多关于 英文结构 的文章

 

随机推荐