大数据搜索与挖掘及可视化管理方案 :Elastic Stack 5:Elasticsearch、Logstash、Kibana、X-Pack、Beats (第3版)
上QQ阅读APP看书,第一时间看更新

2.9 扩展知识与阅读

实现人机间自然语言的交互,意味着要使计算机既能理解自然语言的意义,也能以自然语言文本来表达给定的意图、思想等。前者一般称为自然语言理解或自然语言处理(Natural Language Processing, NLP),后者是自然语言生成。NLP包括词法分析(涉及自动分词,分词歧义消解,未登录词识别与获取等),语法分析(涉及自动标注,语法表示,语法分析等),语义分析(涉及语义表示,语义分析,语义消歧等),其应用包括文本分类,信息抽取,自动文摘,统计对齐与机器翻译,聚类等。在信息检索中,自然语言包括关键词、自由词和出现在文献题名、摘要、正文或参考文献中的具有一定实际意义的词语。研究自然语言处理,是希望计算机能够在某种程度上理解并处理人类的自然语言。目前各种自然语言处理技术都相继出现并已应用到某些领域[张华平,2014]

国内外关于自然语言处理的研究曾长期专注于语法层次。20世纪末期人们就认识到单纯从语法层次上进行研究是不能解决实际问题的。目前,国内外在信息检索领域内,对自然语言理解的研究已有很多成果。研究方法有基于语言学规则分析的方法和基于统计的方法[高凯,2014]。基于规则分析的方法是以建立形式化的知识系统来阐述语言知识,规则多是通过内省的方式得到,其本质是一种确定性的演绎推理,虽然这种方法可以实现对单个句子的分析,但却难以覆盖各种复杂的语言现象。同时,如果要添加新的规则,还需要注意到与已有规则间的相容性。正因为基于规则的方法的诸多缺陷,以及后来大量语料库的涌现,使得基于统计的方法逐渐兴起,其最大优点是可以使语言现象数量化,加之其他一些优势,使这种方法的应用范围非常广泛,但是该方法可能会掩盖一些小概率事件的发生,所以该方法也有局限性。总之,两种方法各有优缺点。将二者结合起来,优势互补,并藉此实现面向大规模真实文本的信息处理,是可行的。

在进行自然语言处理时,分词——特别是对像中文这样的亚洲语言来说——是必要的。相比较以空格自然分开的英文来说,中文分词处理要复杂得多,因为在英文中广泛存在的空格就是最简单的分词标志(两个空白之间的字符串即被定义为一个所谓的token),但是对中文而言,问题就没有这么简单了。比如中文中广泛存在着的切分歧义等问题,在西文中就基本没有。中文的切分歧义包括交叉歧义(如“乒乓球拍卖完了”等)、组合歧义(需要根据上下文,甚至整个句子来判断)、真歧义(由人来判断也不知道应该怎样切分合适)等。又比如,中文信息处理中对未登录词的处理也是一个难点。由于全文检索需要对没有分割标记的文本进行分析和处理,因此基本的分词处理是必须的,特别是在对文本数据建立倒排索引时。

倒排索引是一种数据结构,常见的搜索引擎系统多是采用“词”作为检索项,可根据某个词,找到这个词出现的所有文档及出现位置。简单地说,倒排索引类似一个字典,该字典中的每一个条目都指向一个列表,列表中的每一项指向一个此条目在某个文档中出现的位置。这个条目的值应该是词,而不是单独的字。例如要查询出现“计算机”三个字的文档,当然不希望查询的结果中出现“计”或“算”或“机”这三个单个的字,因为“计算机”是一个具有单独意思的词,所以分词的准确度直接影响搜索引擎的可用性。一般认为,对文档的分词处理,是对其进行分类等处理的前期步骤。