精华内容
下载资源
问答
  • NLP是人工智能的一个子领域,作为AI产品经理,我们至少要...NLP,中文叫自然语言处理,简单来说,是一门让计算机理解、分析以及生成自然语言的学科,大概的研究过程是:研制出可以表示语言能力的模型——提出各种...

    NLP是人工智能的一个子领域,作为AI产品经理,我们至少要知道NLP是什么,它能做什么事,这样我们就能获得一种解决问题的思维,将遇到的问题和方法连接起来。接下来我从“NLP是什么、能做什么、目前遇到的难题”三个方面来简单介绍下NLP。
    在这里插入图片描述
    一.什么是NLP

    NLP,中文叫自然语言处理,简单来说,是一门让计算机理解、分析以及生成自然语言的学科,大概的研究过程是:研制出可以表示语言能力的模型——提出各种方法来不断提高语言模型的能力——根据语言模型来设计各种应用系统——不断地完善语言模型。

    NLP理解自然语言目前有两种处理方式:

    1.基于规则来理解自然语言,即通过制定一些系列的规则来设计一个程序,然后通过这个程序来解决自然语言问题。输入是规则,输出是程序;

    2.基于统计机器学习来理解自然语言,即用大量的数据通过机器学习算法来训练一个模型,然后通过这个模型来解决自然语言问题。输入是数据和想要的结果,输出是模型。

    接下来简单介绍NLP常见的任务或应用。

    二.NLP能做什么:

    1.分词

    中文可以分为字、词、短语、句子、段落、文档这几个层面,如果要表达一个意思,很多时候通过一个字是无法表达的一个含义的,至少一个词才能更好表达一个含义,所以一般情况是以“词”为基本单位,用“词”组合来表示“短语、、句子、段落、文档”,至于计算机的输入是短语或句子或段落还是文档就要看具体的场景。由于中文不像英文那样词与词之间用空格隔开,计算机无法用区分一个文本有哪些词,所以要进行分词。目前分词常用的方法有两种:

    (1)基于规则:Heuristic(启发式)、关键字表

    (2)基于机器学习/统计方法:HMM(隐马尔科夫模型)、CRF(条件随机场)

    (注:在这里就不具体介绍方法的原理和实现过程了,大家感兴趣,可以自行百度了解)

    现状分词这项技术非常成熟了,分词的准确率已经达到了可用的程度,也有很多第三方的库供我们使用,比如jieba,所以一般在实际运用中我们会采用“jieba+自定义词典”的方式进行分词。

    2.词编码

    现在把“我喜欢你”这个文本通过分词分成“我”、“喜欢”、“你”三个词,此时把这三词作为计算机的输入,计算机是无法理解的,所以我们把这些词转换成计算机能理解的方式,即词编码,现在普遍是将词表示为词向量,来作为机器学习的输入和表示空间。目前有两种表示空间:

    (1)离散表示:

    A.One-hot表示

    假设我们的语料库是:

    我喜欢你你对我有感觉吗

    词典{“我”:1,“喜欢”:2,“你”:3,“对“:4,“有”:5,“感觉”:6,“吗”:7} 。一共有七个维度。

    所以用One-hot表示:

    “我” :[1, 0, 0, 0, 0, 0, 0]

    “喜欢”:[0, 1, 0, 0, 0, 0, 0]

    ········

    “吗” :[0, 0, 0, 0, 0, 0, 1]

    即一个词用一个维度表示

    B.bag of word:即将所有词的向量直接加和作为一个文档的向量。

    所以“我 喜欢 你”就表示为:“[1, 1, 1, 0, 0, 0, 0]”。

    C. Bi-gram和N-gram(语言模型):考虑了词的顺序,用词组合表示一个词向量。

    这三种方式背后的思想是:不同的词都代表着不同的维度,即一个“单位”(词或词组合等)为一个维度。

    (2)分布式表示:word2vec,表示一个共现矩阵向量。其背后的思想是“一个词可以用其附近的词来表示”。

    离散式或分布式的表示空间都有它们各自的优缺点,感兴趣的读者可以自行查资料了解,在这里不阐述了。这里有一个问题,当语料库越大时,包含的词就越多,那词向量的维度就越大,这样在空间储存和计算量都会指数增大,所以工程师在处理词向量时,一般都会进行降维,降维就意味着部分信息会丢失,从而影响最终的效果,所以作为产品经理,跟进项目开发时,也需要了解工程师降维的合理性。

    3.自动文摘

    自动文摘是指在原始文本中自动摘要出关键的文本或知识。为什么需要自动文摘?有两个主要的原因:(1)信息过载,我们需要在大量的文本中抽出最有用、最有价值的文本;(2)人工摘要的成本非常高。目前自动文摘有两种解决思路:第一种是extractive(抽取式),从原始文本中找到一些关键的句子,组成一篇摘要;另一种方式是abstractive(摘要式),计算机先理解原始文本的内容,再用自己的意思将其表达出来。自动文摘技术目前在新闻领域运用的最广,在信息过载的时代,用该技术帮助用户用最短的时间了解最多、最有价值的新闻。此外,如何在非结构的数据中提取结构化的知识也将是问答机器人的一大方向。

    4.实体识别

    实体识别是指在一个文本中,识别出具体特定类别的实体,例如人名、地名、数值、专有名词等。它在信息检索、自动问答、知识图谱等领域运用的比较多。实体识别的目的就是告诉计算机这个词是属于某类实体,有助于识别出用户意图。比如百度的知识图谱:

    “周星驰多大了”识别出的实体是“周星驰”(明星实体),关系是“年龄”,搜索系统可以知道用户提问的是某个明星的年龄,然后结合数据“周星驰 出生时间 1962年6月22日”以及当前日期来推算出周星驰的年龄,并把结果直接把这个结果显示给用户,而不是显示候选答案的链接。

    此外,NLP常见的任务还有:主题识别、机器翻译、文本分类、文本生成、情感分析、关键字提取、文本相似度等,以后有时间再为大家做简单介绍。

    三.NLP目前存在的难点

    1.语言不规范,灵活性高

    自然语言并不规范,虽然可以找一些基本规则,但是自然语言太灵活了,同一个意思可以用多种方式来表达,不管是基于规则来理解自然语言还是通过机器学习来学习数据内在的特征都显得比较困难。

    2.错别字

    在处理文本时,我们会发现有大量的错别字,怎么样让计算机理解这些错别字想表达的真正含义,也是NLP的一大难点

    3.新词

    我们处在互联网高速发展的时代,网上每天都会产生大量的新词,我们如何快速地发现这些新词,并让计算机理解也是NLP的难点

    4.用词向量来表示词依然存在不足

    上述,我们讲到,我们是通过词向量来让计算机理解词,但是词向量所表示的空间,它是离散,而不是连续,比如表示一些正面的词:好,很好,棒,厉害等,在“好”到“很好”的词向量空间中,你是不能找到一些词,从“好”连续到“很好”,所以它是离散、不连续的,不连续最大的问题就是不可导.计算机是处理可导的函数非常容易,不可导的话,计算量就上来了。当然现在也有一些算法是计算词向量做了连续近似化,但这肯定伴随着信息的损失。总之,词向量并不是最好的表示词的方式,需要一种更好的数学语言来表示词,当然可能我们人类的自然语言本身就是不连续的,或者人类无法创建出“连续”的自然语言。

    如何快速入门NLP自然语言处理概述
    人工智能与自然语言处理概述:AI三大阶段、NLP关键应用领域
    NLP自然语言处理技术,在人工智能法官中的应用是什么?

    多智时代-人工智能大数据学习入门网站|人工智能、大数据、物联网云计算的学习交流网站

    多智时代-人工智能大数据学习入门网站|人工智能、大数据、云计算、物联网的学习服务的好平台
    展开全文
  • NLP,中文叫自然语言处理,简单来说,是一门让计算机理解、分析以及生成自然语言的学科,大概的研究过程是:研制出可以表示语言能力的模型——提出各种方法来不断提高语言模型的能力——根据语言模型来设计各种应用...

    一.什么是NLP

    NLP,中文叫自然语言处理,简单来说,是一门让计算机理解、分析以及生成自然语言的学科,大概的研究过程是:研制出可以表示语言能力的模型——提出各种方法来不断提高语言模型的能力——根据语言模型来设计各种应用系统——不断地完善语言模型。

    NLP理解自然语言目前有两种处理方式:

    1.基于规则来理解自然语言,即通过制定一些系列的规则来设计一个程序,然后通过这个程序来解决自然语言问题。输入是规则,输出是程序;

    2.基于统计机器学习来理解自然语言,即用大量的数据通过机器学习算法来训练一个模型,然后通过这个模型来解决自然语言问题。输入是数据和想要的结果,输出是模型。

    接下来简单介绍NLP常见的任务或应用。

    二.NLP能做什么:

    1.分词

    中文可以分为字、词、短语、句子、段落、文档这几个层面,如果要表达一个意思,很多时候通过一个字是无法表达的一个含义的,至少一个词才能更好表达一个含义,所以一般情况是以“词”为基本单位,用“词”组合来表示“短语、、句子、段落、文档”,至于计算机的输入是短语或句子或段落还是文档就要看具体的场景。由于中文不像英文那样词与词之间用空格隔开,计算机无法用区分一个文本有哪些词,所以要进行分词。目前分词常用的方法有两种:

    (1)基于规则:Heuristic(启发式)、关键字表

    (2)基于机器学习/统计方法:HMM(隐马尔科夫模型)、CRF(条件随机场)

    (注:在这里就不具体介绍方法的原理和实现过程了,大家感兴趣,可以自行百度了解)

    现状分词这项技术非常成熟了,分词的准确率已经达到了可用的程度,也有很多第三方的库供我们使用,比如jieba,所以一般在实际运用中我们会采用“jieba+自定义词典”的方式进行分词。

    2.词编码

    现在把“我喜欢你”这个文本通过分词分成“我”、“喜欢”、“你”三个词,此时把这三词作为计算机的输入,计算机是无法理解的,所以我们把这些词转换成计算机能理解的方式,即词编码,现在普遍是将词表示为词向量,来作为机器学习的输入和表示空间。目前有两种表示空间:

    (1)离散表示:

    A.One-hot表示

    假设我们的语料库是:

    我喜欢你你对我有感觉吗

    词典{“我”:1,“喜欢”:2,“你”:3,“对“:4,“有”:5,“感觉”:6,“吗”:7}。一共有七个维度。

    所以用One-hot表示:

    “我”:[1,0,0,0,0,0,0]

    “喜欢”:[0,1,0,0,0,0,0]

    ········

    “吗”:[0,0,0,0,0,0,1]

    即一个词用一个维度表示

    B.bagofword:即将所有词的向量直接加和作为一个文档的向量。

    所以“我喜欢你”就表示为:“[1,1,1,0,0,0,0]”。

    C.Bi-gram和N-gram(语言模型):考虑了词的顺序,用词组合表示一个词向量。

    这三种方式背后的思想是:不同的词都代表着不同的维度,即一个“单位”(词或词组合等)为一个维度。

    (2)分布式表示:word2vec,表示一个共现矩阵向量。其背后的思想是“一个词可以用其附近的词来表示”。

    离散式或分布式的表示空间都有它们各自的优缺点,感兴趣的读者可以自行查资料了解,在这里不阐述了。这里有一个问题,当语料库越大时,包含的词就越多,那词向量的维度就越大,这样在空间储存和计算量都会指数增大,所以工程师在处理词向量时,一般都会进行降维,降维就意味着部分信息会丢失,从而影响最终的效果,所以作为产品经理,跟进项目开发时,也需要了解工程师降维的合理性。

    3.自动文摘

    自动文摘是指在原始文本中自动摘要出关键的文本或知识。为什么需要自动文摘?有两个主要的原因:(1)信息过载,我们需要在大量的文本中抽出最有用、最有价值的文本;(2)人工摘要的成本非常高。目前自动文摘有两种解决思路:第一种是extractive(抽取式),从原始文本中找到一些关键的句子,组成一篇摘要;另一种方式是abstractive(摘要式),计算机先理解原始文本的内容,再用自己的意思将其表达出来。自动文摘技术目前在新闻领域运用的最广,在信息过载的时代,用该技术帮助用户用最短的时间了解最多、最有价值的新闻。此外,如何在非结构的数据中提取结构化的知识也将是问答机器人的一大方向。

    4.实体识别

    实体识别是指在一个文本中,识别出具体特定类别的实体,例如人名、地名、数值、专有名词等。它在信息检索、自动问答、知识图谱等领域运用的比较多。实体识别的目的就是告诉计算机这个词是属于某类实体,有助于识别出用户意图。比如百度的知识图谱:

    “周星驰多大了”识别出的实体是“周星驰”(明星实体),关系是“年龄”,搜索系统可以知道用户提问的是某个明星的年龄,然后结合数据“周星驰出生时间1962年6月22日”以及当前日期来推算出周星驰的年龄,并把结果直接把这个结果显示给用户,而不是显示候选答案的链接。

    此外,NLP常见的任务还有:主题识别、机器翻译、文本分类、文本生成、情感分析、关键字提取、文本相似度等,以后有时间再为大家做简单介绍。
      人工智能、大数据、云计算和物联网的未来发展值得重视,均为前沿产业,有兴趣的朋友,可以查阅多智时代,在此为你推荐几篇优质好文:
    自然语言理解过程主要有哪些层次,各层次的功能是怎么样?
    http://www.duozhishidai.com/article-1726-1.html
    如何快速入门NLP自然语言处理概述
    http://www.duozhishidai.com/article-11742-1.html
    什么是人脸识别,主要的应用于哪些场景?
    http://www.duozhishidai.com/article-1246-1.html


    多智时代-人工智能大数据学习入门网站|人工智能、大数据、物联网云计算的学习交流网站

    多智时代-人工智能大数据学习入门网站|人工智能、大数据、云计算、物联网的学习服务的好平台
    展开全文
  • 什么自然语言处理(NLP)?...而这神奇的源头要归功于一个自然语言处理(NLP)的东西。 那究竟什么自然语言处理 (NLP)?自然语言处理是教会计算机如何以人类的方式理解问题并让其给出适当回应的

    什么是自然语言处理(NLP)?

    你有没有和聊天机器人互动过?或者你是否向虚拟助手,例如Siri、Alexa或你车上的车载娱乐系统发出过某些请求?你使用过在线翻译吗?相信我们绝大多数人都与这些人工智能互动过,人类不断思考到底用哪种方式可以得到我们最想要的答案呢?

    仔细想想人类语言和情绪上的复杂和不可捉摸性,机器能够和人类交流已经够神奇了吧?

    而这神奇的源头要归功于一个叫:自然语言处理(NLP)的东西。

    Siri Siri 谁是世上最漂亮的人
    那究竟什么是自然语言处理 (NLP)?自然语言处理是教会计算机如何以人类的方式理解问题并让其给出适当回应的技术。借助NLP,机器可以学习阅读、解密和解释人类的书面和口头语言,并创建以类似人类的方式描述、概括或解释输入(结构化数据)的叙述。NLP是你经常与之交互的诸多AI解决方案的驱动力,并促成了人类与机器之间的理解。

    如今,由于数据访问的巨大进步和计算机技术的提高,NLP变得越来越受欢迎。

    为什么NLP难以实施?

    NLP 具有挑战性。计算机的基础语言是数百万个 1 和 0 的集合,即“是”和“否”的二进制组合。计算机不会像人类那样在语境中思考,它们只会从逻辑上进行思考。当你对支持AI的计算机说话时,这台机器必须以某种方式理解和解释你所说的内容,计算出一个适当的响应,并将该响应转换为人类(或自然)语言,而这一切仅在几毫秒之内就能完成。很难想象实现这一壮举所需的处理能力水平,而计算机一直在这样做。

    同样,自然语言的复杂性也不应该被低估。人类以无数种方式表达自己。全世界有数百种语言和方言,而且每种语言,无论是书面的还是口头的,都有自己的语法规则和俚语,并且各不相同。每个人的书写和说话方式也大相径庭。例如,有些人可能讲话口齿不清,或者在书写中使用缩写词。为了使计算机理解所有这些差异,它必须事先遇到过这些差异。它必须接受类似数据的培训。另一个挑战是,训练数据库与预期的应用程序应属于同一个领域。例如,在医疗环境中收集的对话不同于客户所处领域内会发生的对话,这种情况使得数据收集更具挑战性,因为从正确的领域收集数据很困难,但这又是必需的。

    这些因素都导致了NLP实施中的困难。你必须访问大量的自然语言数据,以便计算机可以进行广泛的交互。为这些交互提供服务并弥合二进制语言与自然语言之间的差距,计算能力至关重要。所以NLP直到最近才成为了机器学习中的重要组成部分。

    NLP技术

    NLP 将语言分解为较短的语段,以便理解语段之间的关系以及各语段怎样结合起来产生意义。语言成分有两类:句法(单词在句子中按照语法意义进行排列)和语义(文本所传达的含义)。每一类中都有核心的NLP 技术:

    1. 句法分析
    以下是机器用于分析句法的一些标准方法:
    • 分割:将一句话分解为较小的语段。
    • 词形还原:将一个词缩小至词基,并将具有相似词基的词组合在一起。
    • 词性标注:指出每个词的词性。
    • 提取词干:删除词的前缀和后缀以获得词根。
    请注意,这里只选取了诸多语法分析方法中的一部分。

    2. 语义分析
    以下是机器用于分析语义的两种流行方法:
    • 命名实体识别:确定预设组(例如人物和地点)并将其分类
    • 词义消歧:根据语境确定词义。
    机器可以结合使用上述技术来获取给定文本中的句法和语义。

    自然语言处理能做什么?

    NLP自然语言处理
    NLP 的应用场景有很多。它使机器能够执行原本由人类执行的重复性任务,从而帮助扩大与语言相关的任务的规模。许多行业都在使用NLP,其中较为常见的包括:

    社交媒体分析:NLP可以跟踪与品牌、产品或特定主题有关的情绪,并确定客户如何做出选择。它还可以通过检测政治偏见来过滤虚假新闻。
    (TTS)文本转语音应用程序: 文本转语音应用程序通过更多方式提供信息以提高包容性,并为呼叫中心、视频游戏和语言教育领域提供更丰富的交互体验。
    个人助手和聊天机器人:NLP使 AI 能够与人们就日常问题和事务进行交流,为人类腾出更多时间来进行更高层次的战略性工作。
    搜索结果查询:NLP在电子商务领域特别有用,它可以帮助确定关键搜索词,从而获得更相关的搜索结果。
    语言翻译:NLP广泛应用于各种语言和方言的翻译。
    信息提取:例如,用于医疗行业进行患者病历处理时,通过NLP进行数据提取对于快速提取关键信息至关重要。

    以上只是NLP的一些常见应用场景,还有更多场景我们就不一一道来了。这充分说明了自然语言处理方面已经取得了惊人的进步。NLP的变革力量将继续为我们与技术的交互增添光彩。随着人机通信差距的进一步缩小,我们必将看到这一领域的更多突破。

    NLP专家Phoebe Liu的见解

    Phoebe Liu 是澳鹏的高级数据科学家之一,曾担任 O’Reilly 和KDD大会的演讲嘉宾,因为在对话机器人方面的研究接受过BBC和半岛电视台纪录片系列的专访,并获得 2018年机器人电影节最佳影片奖。Phoebe 分享了关于自然语言处理的三个见解:

    1. 要做最成功的项目,首先要了解业务问题和需求。这能帮助你确定如何收集数据,由谁来标注训练数据库,以及在数据采集过程中是否需要该领域的专家或语言学专家的参与。对解决方案中的问题和NLP的作用采用清晰、明确的定义。
    2. 通过用户测试来确保用户满意度。对于自动语音识别项目(ASR),要由带有不同口音的讲话者用不同的方式阐述同一个事物。对于聊天机器人和智能语音AI中的自然语言理解(NLU),在测试时用户要像和另一个人聊天一样自然地交互。在真实场景中进行用户测试的次数越多,用户与NLP系统之间的交互就越顺畅。
    3. ML模型不是魔法。当NLP无法产生 100% 准确结果时,要设计“备用”方法。NLP是一个尚在发展的领域,需要有该领域的专业知识和高品质的训练数据集才能正确实施。在NLP达不到要求的关键时刻,要确保有备份计划并管理NLP输出(考虑使用“人机协同”(human-in-the-loop)。

    "请问怎么可以帮到你?“
    Siri: 恭喜你读完了文章,知道为什么我懂你在说什么了吗?下次我不开心的时候可以也给我唱首歌吗?

    展开全文
  • 一、什么自然语言处理 简单地说,自然语言处理(NaturalLanguage Processing,简称NLP)就是用计算机来处理、理解以及运用人类语言(如中文、英文等),它属于人工智能的一个分支,是计算机科学与语言学的交叉...

    作者:武汉飔拓科技

    一、什么是自然语言处理

    简单地说,自然语言处理(NaturalLanguage Processing,简称NLP)就是用计算机来处理、理解以及运用人类语言(如中文、英文等),它属于人工智能的一个分支,是计算机科学与语言学的交叉学科,又常被称为计算语言学。由于自然语言是人类区别于其他动物的根本标志。没有语言,人类的思维也就无从谈起,所以自然语言处理体现了人工智能的最高任务与境界,也就是说,只有当计算机具备了处理自然语言的能力时,机器才算实现了真正的智能。

    从研究内容来看,自然语言处理包括语法分析、语义分析、篇章理解等。从应用角度来看,自然语言处理具有广泛的应用前景。特别是在信息时代,自然语言处理的应用包罗万象,例如:机器翻译、手写体和印刷体字符识别、语音识别及文语转换、信息检索、信息抽取与过滤、文本分类与聚类、舆情分析和观点挖掘等,它涉及与语言处理相关的数据挖掘、机器学习、知识获取、知识工程、人工智能研究和与语言计算相关的语言学研究等。

    值得一提的是,自然语言处理的兴起与机器翻译这一具体任务有着密切联系。机器翻译指的是利用计算机自动地将一种自然语言翻译为另外一种自然语言。例如自动将英文“I like Beijing Tiananmen Square”翻译为“我爱北京天安门”,或者反过来将“我爱北京天安门”翻译为“I like Beijing Tiananmen Square”。由于人工进行翻译需要训练有素的双语专家,翻译工作非常耗时耗力。更不用说需要翻译一些专业领域文献时,还需要翻译者了解该领域的基本知识。世界上有超过几千种语言,而仅联合国的工作语言就有六种之多。如果能够通过机器翻译准确地进行语言间的翻译,将大大提高人类沟通和了解的效率。

    《圣经》里有一个故事说巴比伦人想建造一座塔直通天堂。建塔的人都说着同一种语言,心意相通、齐心协力。上帝看到人类竟然敢做这种事情,就让他们的语言变得不一样。因为人们听不懂对方在讲什么,于是大家整天吵吵闹闹,无法继续建塔。后来人们把这座塔叫作巴别塔,而“巴别”的意思就是“分歧”。虽然巴别塔停建了,但一个梦想却始终萦绕在人们心中:人类什么时候才能拥有相通的语言,重建巴别塔呢?机器翻译被视为“重建巴别塔”的伟大创举。假如能够实现不同语言之间的机器翻译,我们就可以理解世界上任何人说的话,与他们进行交流和沟通,再也不必为相互不能理解而困扰。

    事实上,“人工智能”被作为一个研究问题正式提出来的时候,创始人把计算机国际象棋和机器翻译作为两个标志性的任务,认为只要国际象棋系统能够打败人类世界冠军,机器翻译系统达到人类翻译水平,就可以宣告人工智能的胜利。四十年后的1997年,IBM公司的深蓝超级计算机已经能够打败国际象棋世界冠军卡斯帕罗夫。而机器翻译到现在仍无法与人类翻译水平相比,从此可以看出自然语言处理有多么困难!

    自然语言处理兴起于美国。第二次世界大战之后,二十世纪五十年代,当电子计算机还在襁褓之中时,利用计算机处理人类语言的想法就已经出现。当时,美国希望能够利用计算机将大量俄语材料自动翻译成英语,以窥探苏联科技的最新发展。研究者从破译军事密码中得到启示,认为不同的语言只不过是对“同一语义”的不同编码而已,从而想当然地认为可以采用译码技术像破译密码一样“破译”这些语言。

    1954年1月7日,美国乔治敦大学和IBM公司合作实验成功地将超过60句俄语自动翻译成英语。虽然当时的这个机器翻译系统非常简单,仅仅包含6个语法规则和250个词,但由于媒体的广泛报道,纷纷认为这是一个巨大的进步,导致美国政府备受鼓舞,加大了对自然语言处理研究的投资。实验完成者也当即自信地撰文称,在三到五年之内就能够完全解决从一种语言到另一种语言的自动翻译问题。他们认为只要制定好各种翻译规则,通过大量规则的堆砌就能够完美地实现语言间的自动翻译。

    然而,事实是理解人类语言远比破译密码要复杂得多,因此研究进展非常缓慢。1966年的一份研究报告总结发现,经过十年之久的研究,结果远远未能达到预期,因此支持资金急剧下降,使自然语言处理(特别是机器翻译)的研究陷入长达二十年的低潮。直到二十世纪八十年代,随着电子计算机的计算能力的飞速提高和制造成本的大幅下降,研究者又开始重新关注自然语言处理这个极富挑战的研究领域。三十年沧海桑田,此时研究者已经认识到简单的语言规则的堆砌无法实现对人类语言的真正理解。研究发现,通过对大量的文本数据的自动学习和统计,能够更好地解决自然语言处理问题,如语言的自动翻译。这一思想被称为自然语言处理的统计学习模型,至今方兴未艾。

    那么,自然语言处理到底存在哪些主要困难或挑战,吸引那么多研究者几十年如一日孜孜不倦地探索解决之道呢?

    二、自然语言处理的主要困难

    自然语言处理的困难可以罗列出来很多,不过关键在于消除歧义问题,如词法分析、句法分析、语义分析等过程中存在的歧义问题,简称为消歧。而正确的消歧需要大量的知识,包括语言学知识(如词法、句法、语义、上下文等)和世界知识(与语言无关)。这带来自然语言处理的两个主要困难。

    首先,语言中充满了大量的歧义,这主要体现在词法、句法及语义三个层次上。歧义的产生是由于自然语言所描述的对象――人类活动非常复杂,而语言的词汇和句法规则又是有限的,这就造成同一种语言形式可能具有多种含义。

    例如单词定界问题是属于词法层面的消歧任务。在口语中,词与词之间通常是连贯说出来的。在书面语中,中文等语言也没有词与词之间的边界。由于单词是承载语义的最小单元,要解决自然语言处理,单词的边界界定问题首当其冲。特别是中文文本通常由连续的字序列组成,词与词之间缺少天然的分隔符,因此中文信息处理比英文等西方语言多一步工序,即确定词的边界,我们称为“中文自动分词”任务。通俗的说就是要由计算机在词与词之间自动加上分隔符,从而将中文文本切分为独立的单词。例如一个句子“今天天气晴朗”的带有分隔符的切分文本是“今天|天气|晴朗”。中文自动分词处于中文自然语言处理的底层,是公认的中文信息处理的第一道工序,扮演着重要的角色,主要存在新词发现和歧义切分等问题。我们注意到:正确的单词切分取决于对文本语义的正确理解,而单词切分又是理解语言的最初的一道工序。这样的一个“鸡生蛋、蛋生鸡”的问题自然成了(中文)自然语言处理的第一条拦路虎。

    其他级别的语言单位也存在着各种歧义问题。例如在短语级别上,“进口彩电”可以理解为动宾关系(从国外进口了一批彩电),也可以理解为偏正关系(从国外进口的彩电)。又如在句子级别上,“做手术的是她的父亲”可以理解为她父亲生病了需要做手术,也可以理解为她父亲是医生,帮别人做手术。总之,同样一个单词、短语或者句子有多种可能的理解,表示多种可能的语义。如果不能解决好各级语言单位的歧义问题,我们就无法正确理解语言要表达的意思。

    另外一个方面,消除歧义所需要的知识在获取、表达以及运用上存在困难。由于语言处理的复杂性,合适的语言处理方法和模型难以设计。

    例如上下文知识的获取问题。在试图理解一句话的时候,即使不存在歧义问题,我们也往往需要考虑上下文的影响。所谓的“上下文”指的是当前所说这句话所处的语言环境,例如说话人所处的环境,或者是这句话的前几句话或者后几句话,等等。假如当前这句话中存在指代词的时候,我们需要通过这句话前面的句子来推断这个指代词是指的什么。我们以“小明欺负小亮,因此我批评了他”为例。在其中的第二句话中的“他”是指代“小明”还是“小亮”呢?要正确理解这句话,我们就要理解上句话“小明欺负小亮”意味着“小明”做得不对,因此第二句中的“他”应当指代的是“小明”。由于上下文对于当前句子的暗示形式是多种多样的,因此如何考虑上下文影响问题是自然语言处理中的主要困难之一。

    再如背景知识问题。 正确理解人类语言还要有足够的背景知识。举一个简单的例子,在机器翻译研究的初期,人们经常举一个例子来说明机器翻译任务的艰巨性。在英语中“The spirit is willing but the flesh is weak.”,意思是“心有余而力不足”。但是当时的某个机器翻译系统将这句英文翻译到俄语,然后再翻译回英语的时候,却变成了“The Voltka is strong but the meat is rotten.”,意思是“伏特加酒是浓的,但肉却腐烂了”。从字面意义上看,“spirit”(烈性酒)与“Voltka”(伏特加)对译似无问题,而“flesh”和“meat”也都有肉的意思。那么这两句话在意义上为什么会南辕北辙呢?关键的问题就在于在翻译的过程中,机器翻译系统对于英语成语并无了解,仅仅是从字面上进行翻译,结果自然失之毫厘,差之千里。

    从上面的两个方面的主要困难,我们看到自然语言处理这个难题的根源就是人类语言的复杂性和语言描述的外部世界的复杂性。人类语言承担着人类表达情感、交流思想、传播知识等重要功能,因此需要具备强大的灵活性和表达能力,而理解语言所需要的知识又是无止境的。那么目前人们是如何尝试进行自然语言处理的呢?

    三、自然语言处理的发展趋势

    目前,人们主要通过两种思路来进行自然语言处理,一种是基于规则的理性主义,另外一种是基于统计的经验主义。理性主义方法认为,人类语言主要是由语言规则来产生和描述的,因此只要能够用适当的形式将人类语言规则表示出来,就能够理解人类语言,并实现语言之间的翻译等各种自然语言处理任务。而经验主义方法则认为,从语言数据中获取语言统计知识,有效建立语言的统计模型。因此只要能够有足够多的用于统计的语言数据,就能够理解人类语言。然而,当面对现实世界充满模糊与不确定性时,这两种方法都面临着各自无法解决的问题。例如,人类语言虽然有一定的规则,但是在真实使用中往往伴随大量的噪音和不规范性。理性主义方法的一大弱点就是鲁棒性差,只要与规则稍有偏离便无法处理。而对于经验主义方法而言,又不能无限地获取语言数据进行统计学习,因此也不能够完美地理解人类语言。二十世纪八十年代以来的趋势就是,基于语言规则的理性主义方法不断受到质疑,大规模语言数据处理成为目前和未来一段时期内自然语言处理的主要研究目标。统计学习方法越来越受到重视,自然语言处理中越来越多地使用机器自动学习的方法来获取语言知识。

    迈进二十一世纪,我们已经进入了以互联网为主要标志的海量信息时代,这些海量信息大部分是以自然语言表示的。一方面,海量信息也为计算机学习人类语言提供了更多的“素材”,另一方面,这也为自然语言处理提供了更加宽广的应用舞台。例如,作为自然语言处理的重要应用,搜索引擎逐渐成为人们获取信息的重要工具,涌现出以百度、谷歌等为代表的搜索引擎巨头;机器翻译也从实验室走入寻常百姓家,谷歌、百度等公司都提供了基于海量网络数据的机器翻译和辅助翻译工具;基于自然语言处理的中文(输入法如搜狗、微软、谷歌等输入法)成为计算机用户的必备工具;带有语音识别的计算机和手机也正大行其道,协助用户更有效地工作学习。总之,随着互联网的普及和海量信息的涌现,自然语言处理正在人们的日常生活中扮演着越来越重要的作用。

    然而,我们同时面临着一个严峻事实,那就是如何有效利用海量信息已成为制约信息技术发展的一个全局性瓶颈问题。自然语言处理无可避免地成为信息科学技术中长期发展的一个新的战略制高点。同时,人们逐渐意识到,单纯依靠统计方法已经无法快速有效地从海量数据中学习语言知识,只有同时充分发挥基于规则的理性主义方法和基于统计的经验主义方法的各自优势,两者互相补充,才能够更好、更快地进行自然语言处理。

    自然语言处理作为一个年龄尚不足一个世纪的新兴学科,正在进行着突飞猛进的发展。回顾自然语言处理的发展历程,并不是一帆风顺,有过低谷,也有过高潮。而现在我们正面临着新的挑战和机遇。例如,目前网络搜索引擎基本上还停留在关键词匹配,缺乏深层次的自然语言处理和理解。语音识别、文字识别、问答系统、机器翻译等目前也只能达到很基本的水平。路漫漫其修远兮,自然语言处理作为一个高度交叉的新兴学科,不论是探究自然本质还是付诸实际应用,在将来必定会有令人期待的惊喜和异常快速的发展。

    摘自:http://www.shcpda.com/xingyezixun/835.html

    展开全文
  • 一、什么自然语言处理 简单地说,自然语言处理(Natural Language Processing,简称NLP)就是用计算机来处理、理解以及运用人类语言(如中文、英文等),它属于人工智能的一个分支,是计算机科学与语言学的交叉学科...
  • 什么叫自然语言处理1.1 困难1.2历史1.3 智能1.4 经典nlp任务的进展02.技术体系2.1 词2.2 句子03 未来发展3.1 资源丰富的任务---中英翻译3.2 资源少的任务3.3 多轮问题--多轮对话4 未来之路 自然语言:规则—>...
  • 给外行能看懂的科普:这就叫自然语言处理如何向文科同学科普自然语言处理(NLP)? 刘知远,NLPer前几年曾经马少平老师的引荐,为某科普图书写过一篇短文介绍自然语言处理。如果只是介绍NLP的概念、任务和挑战,...
  • R语言下的自然语言处理学习笔记一

    千次阅读 2014-03-16 23:10:04
    使用R语言进行自然语言处理学习笔记一 第一章 基础 1 安装 R 是一个有着统计分析功能及强大作图功能的软件系统, 是由奥克兰大学统计学系的Ross Ihaka 和Robert Gentleman 共同创立(两个名字都是R打头,所以R语言...
  • 直到20世纪70年代,一些自然语言处理的先驱开始重新认识这个问题,找到了基于数学模型和统计的方法,自然语言处理进入了第二阶段。 2,从规则到统计 自然语言中的词的多义性很难用规则来描述,..
  • 人工智能之自然语言理解导语说起语言,大家都不陌生。平常讲话、写字,甭管中英法俄日语,都语言。...那么什么自然语言? 官方说法是:自然语言是区别于形式语言或人工语言(如逻辑语言和编程语言等)的人际交流
  • 机器人:对不起,我不知道您在说什么。 用户:Siri,帮我救护车。 ...Siri:好的,从现在开始我会你“救护车”。...根据人们的设想,我们只要说一句话,人工智能机器人就应该可以准确...“自然语言理解...
  • NLP是人工智能的一个子领域,作为AI产品经理,...什么是NLPNLP,中文叫自然语言处理,简单来说,是一门让计算机理解、分析以及生成自然语言的学科,大概的研究过程是: 研制出可以表示语言能力的模型——提出各种方法
  • 什么叫人工智能技术

    2020-12-22 18:02:09
    什么叫人工智能技术技术性专业性    人工智能技术技术性专业性(ArtificialIntelligence),英文简写为AI。它是科学研究、开发设计用以仿真模拟、拓宽和拓展人的智能化的基本知识、方式、专业能力及系统的一门新的...
  • 当没有“名字”时[“你叫什么名字?”,“请告诉我你的名字。”] 没有“电话号码”的时候[“请输入联系电话。(例如:010-1231-1232)”,“告诉我您的电话号码。(例如:010-1231-1232)”,“请输入预订人的电话...
  • 什么叫伪代码?

    千次阅读 2019-10-05 05:29:39
    由于最近找工作,面试时面试官提问时让我用伪代码回答他所提的问题,当时...是用介于自然语言和计算机语言之间的文字和符号(包括数学符号)来描述算法。使用伪代码的目的是使被描述的算法可以容易地以任何一种编程...
  • 2-知识表示-知识图谱-自然语言处理

    千次阅读 2018-06-04 16:29:27
    来源:《中文信息处理报告》定义 对客观世界知识进行建模,让... 【啥语义表示?】3)知识表示如何支持高效知识推理和计算,从而使知识表示具有得到新知识的推理能力。 当前的主流技术符号主义1) 基础假设其基...
  •  如果你也在通过自然语言接口做点什么,希望我的这篇博客能帮到你。我建了一个QQ群656580961,感兴趣的朋友咱们可以交流一下技术。  * 我的小程序名字“智能生活宝”,功能介绍: 1. 通过自然语言对查询  现在...
  • 它是一种十分简单的分类算法,它朴素贝叶斯分类是因为这种方法的思想真的很朴素,朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于...
  • 自带栈的有限状态机作下推自动机(PushDown Automaton,PDA)。 上面给出了下推自动机的概念,那么为什么我们要在有限自动机的基础上给其增加一个栈来构建下推自动机呢?其根本原因在于有限状态机本身无法存储...
  •  一种做法是把你能想到的所有特征都加进去,然后再检查哪个特征是重要的(参考资料上说这"kitchen sink" approach,然而并不明白这是什么意思,请大神指点!),但是包含的特征太多往往会出现过度拟合的现象...
  • 想想我们还是牙牙学语的时候,谁教会了我们语法呢,没有,只有从上小学开始,老师开始教我们写文章或阅读的时候,他们才教我们语法,我们也才开始懂得什么叫语法,并会下意识地用语法去分析一些句子,但潜意识里我们...
  • 人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。有个电影就人工...
  • 自定义语言

    2019-10-02 23:30:14
    世界是很复杂的,语言对于思想是... 每个人都可以发明概念与符号,而不用与其他人商量,发现一个东西就给他起个名字,给个符号,一词多意是语言对于思想的妥协,不过我关心的不是它叫什么,而是只有一个目的-----...
  • 温习LOGO语言

    2018-12-31 09:27:00
    LOGO语言是一种早期的编程语言,也是一种与自然语言非常接近的编程语言,它通过“绘图”的方式来学习编程,对初学者特别是儿童进行寓教于乐的教学方式。 LOGO语言创始于1968年,是美国国家科学基金会所资助的一项...
  • VB语言基础

    2012-02-05 18:39:00
    既然是总结,那么就从题目开始总结,“vb语言基础”,为什么叫基础呢?我个人认为,应该是应用比较广泛比较多的。那么我们就从vb中最简单的编程开始总结。 首先来说,我们知道的,计算机最早期用来做计算的,当然做...
  • 1. 为什么这门课叫人类语言处理而不叫自然语言处理? 传统的大多数自然语言处理课程超过百分之90的内容都是在讲如何解决文本(文字)相关的问题,而李老师这门课即讲如何解决语音相关问题又讲解决文本相关的问题。 2. ...
  • 贝叶斯方法是一个历史悠久,有着坚实的理论基础的方法,同时处理很多问题时直接而又高效,很多高级自然语言处理模型也可以从它演化而来。因此,学习贝叶斯方法,是研究自然语言处理问题的一个非常好的切入口。 联合...
  • 脚本语言见解之一

    2011-10-29 22:33:18
    脚本为什么叫脚本呢,当你用星际译王翻译Script这个单词时得到的那些解释你就会多多少少明白这个脚本的一些内在涵意了。在解释里得到的都是一些像手稿,剧本,电影文学载体之类的东西。这说明脚本是一个比较抽象化的...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 168
精华内容 67
热门标签
关键字:

什么叫自然语言