自然言语与编程言语的不同之处
作者头像
  • plane资讯
  • 2020-06-08 13:14:36 0

自然语言处理(NLP)是计算机科学领域的一个重要分支,专注于使计算机能够理解自然语言。这一领域的研究被誉为人工智能皇冠上的明珠。长期以来,自然语言处理一直被认为是人工智能中最具挑战性和吸引力的任务之一。

要深入研究自然语言处理,需要具备计算机科学、语言学以及人工智能等多个领域的知识。与编程语言相比,自然语言的复杂性要高得多。

以下是自然语言处理与编程语言之间的一些主要区别:

一、词汇量

自然语言的词汇量远远超过编程语言中的关键词。编程语言中的关键词数量有限且固定,例如C语言有32个关键字,Java有50个。尽管这些编程语言允许自由命名变量和函数,但计算机只能将其视作区分符号,而不包含语言信息。

相比之下,自然语言的词汇量几乎是无限的,几乎不存在完全相同的词语。

二、结构化

自然语言是非结构化的,而编程语言则是结构化的。例如,在Python中编写程序时,每次需要判断条件时都要用到if语句,每次需要循环时都要用到for或while语句。这些都是非常严谨的结构。

自然语言则不需要这些严格的规则,就像汉语一样,可以用不同的词语表达相同的意思。

三、歧义性

自然语言包含大量的歧义,这些歧义会根据语境的不同而表现出特定的意义。例如,汉语中的多义词只有在特定的上下文中才能确定其含义。例如:

  • M国的乒乓球很凶猛,谁都打不过。
  • Z国的足球比较弱,谁也踢不过。

如果不看前面的句子,这两句话似乎意思相同,但加上前面的内容,意思完全不同。

编程语言则没有这种歧义,因为它们都由特定的关键字组成。如果程序员写出有歧义的代码,程序将无法运行。

四、容错性

自然语言具有很高的容错性。即使话语中出现了错误,人们也能大致理解其意思。互联网上的文本更加随意,错别字和语法错误随处可见。

然而,在编程语言中,程序员必须确保代码的准确性,否则可能会出现编译错误或潜在的BUG。

五、易变性

任何语言都会不断发展变化,但编程语言的变化通常较为缓慢,而自然语言则变化较快。编程语言是由某个个人或组织创建并维护的。以C++为例,它的创造者是Bjarne Stroustrup,目前由C++标准委员会维护。从C++98到C++03,再到C++11和C++14,这些变化是以年为单位进行的,并且新版本通常能向前兼容旧版本。

自然语言则是由全人类共同创造和演变的。尽管存在普通话和方言,但每个人都可以自由创造和传播新词汇和用法,从而导致现代汉语与古代汉语有很大差异。这些变化是连续的,每时每刻都在发生,给自然语言处理带来了很大的挑战。

六、简略性

由于说话速度和听力速度、书写速度和阅读速度的限制,人们在交流中经常会省略一些信息。例如,我们会使用简称或代词来代替长名称。这些省略的信息往往是双方共有的,但对于计算机来说并不一定如此。

《自然语言处理入门》是一本实用的入门书籍,可以帮助读者快速掌握自然语言处理的基本概念和技术。书中介绍了中文分词、词性标注、命名实体识别、信息抽取、文本聚类、文本分类和句法分析等热门问题的算法原理和工程实现。通过对多种算法的讲解,比较了它们的优缺点和适用场景,并提供了实际的代码示例,帮助读者将自然语言处理技术应用于实际项目中。通过学习这本书,读者可以从一名普通的程序员成长为一名机器学习工程师,最终成为自然语言处理专家。

作者何晗(@hankcs)是自然语言处理库HanLP的作者,该库在GitHub上获得了超过14,600颗星。他同时也是“码农场”博客的作者,每天有超过3000名读者访问他的博客。何晗是埃默里大学的计算机博士生,研究方向包括句法分析、语义分析和问答系统。

    本文来源:图灵汇
责任编辑: : plane资讯
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
言语不同编程自然
    下一篇