自然语言处理 ( 英语 : Natural Language Processing,缩写作 NLP ) 是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言处理包括多方面和步骤,基本有认知、理解、生成等部分。
自然语言认知和理解是让计算机把输入的语言变成有意思的符号和关系,然后根据目的再处理。自然语言生成系统则是把计算机数据转化为自然语言。
任务和限制
理解 ( understanding ) 自然语言,需要关于外在世界的广泛知识以及运用操作这些知识的能力,自然语言认知,同时也被视为一个人工智能完备 ( AI-complete ) 的问题。同时,在自然语言处理中,”理解”的定义也变成一个主要的问题。
自然语言处理的主要范畴
中文自动分词 ( Chinese word segmentation )
中文自动分词指的是使用计算机自动对中文文本进行词语的切分,即像英文那样使得中文句子中的词之间有空格以标识。中文自动分词被认为是中文自然语言处理中的一个最基本的环节。
中文分词 [1] 。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符,虽然英文也同样存在短语的划分问题,不过在词这一层上,中文比之英文要复杂得多、困难得多。
在中文里,“词”和“词组”边界模糊
现代汉语的基本表达单元虽然为“词”,且以双字或者多字词居多,但由于人们认识水平的不同,对词和短语的边界很难去区分。
例如 : “对随地吐痰者给予处罚”,“随地吐痰者”本身是一个词还是一个短语,不同的人会有不同的标准,同样的“海上”“酒厂”等等,即使是同一个人也可能做出不同判断,如果汉语真的要分词书写,必然会出现混乱,难度很大。
中文分词的方法其实不局限于中文应用,也被应用到英文处理,如手写识别,单词之间的空格就不很清楚,中文分词方法可以帮助判别英文单词的边界。
中文分词是文本挖掘的基础,对于输入的一段中文,成功的进行中文分词,可以达到电脑自动识别语句含义的效果。
基本问题
- 汉语分词规范问题
- 歧义切分问题
- 未登录词问题
常用方法
- 基于词典的匹配,基于字符串匹配的分词方法,机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行匹配,若在词典中找到某个字符串,则匹配成功 ( 识别出一个词 ) 。
- 前向最大匹配,正向最大匹配法 ( 由左到右的方向 ) ;
- 后向最大匹配,逆向最大匹配法 ( 由右到左的方向 ) ;
- 最少切分 ( 使每一句中切出的词数最小 ) ;
- 双向最大匹配法 ( 进行由左到右、由右到左两次扫描 )
- 基于字的标注,基于统计的分词方法
- 最大熵模型
- 条件随机场模型
- 感知器模型
- 基于理解的分词方法,是通过让计算机模拟人对句子的理解,达到识别词的效果。
- 与词性标注结合
- 与句法分析结合
- 与语义分析结合
命名实体识别 ( Named entity recognition )
命名实体识别 ( 英语 : Named Entity Recognition,简称 NER ) ,又称作专名识别、命名实体,是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等,以及时间、数量、货币、比例数值等文字。指的是可以用专有名词 ( 名称 ) 标识的事物,一个命名实体一般代表唯一一个具体事物个体,包括人名、地名等。
NER 属于从非结构化文本中分类和定位命名实体感情的子任务,其过程是从是非结构化文本表达式中产生专有名词标注信息的命名实体表达式,目前 NER 有两个显着的问题,即识别和分类。例如,“奥巴马是美国总统”的“奥巴马”和“美国”都代表一个具体事物,因此都是命名实体。而“总统”不代表一个具体事物,因此不是命名实体。
文本朗读 ( Text to speech ) / 语音合成 ( Speech synthesis )
语音识别 ( Speech recognition )
词性标注 ( Part-of-speech tagging )
句法分析 ( Parsing )
自然语言生成 ( Natural language generation )
文本分类 ( Text categorization )
信息检索 ( Information retrieval )
信息抽取 ( Information extraction )
文字校对 ( Text-proofing )
问答系统 ( Question answering )
给一句人类语言的问句,决定其答案。 典型问题有特定答案 ( 像是加拿大的首都叫什么?),但也考虑些开放式问句 ( 像是人生的意义是是什么?)
机器翻译 ( Machine translation )
将某种人类语言自动翻译至另一种语言
自动摘要 ( Automatic summarization )
产生一段文字的大意,通常用于提供已知领域的文章摘要,例如产生报纸上某篇文章之摘要
文字蕴涵 ( Textual entailment )
自然语言处理研究的难点
单词的边界界定
在口语中,词与词之间通常是连贯的,而界定字词边界通常使用的办法是取用能让给定的上下文最为通顺且在文法上无误的一种最佳组合。在书写上,汉语也没有词与词之间的边界。
词义的消歧
许多字词不单只有一个意思,因而我们必须选出使句意最为通顺的解释。
句法的模糊性
自然语言的文法通常是模棱两可的,针对一个句子通常可能会剖析 ( Parse ) 出多棵剖析树 ( Parse Tree ) ,而我们必须要仰赖语义及前后文的信息才能在其中选择一棵最为适合的剖析树。
有瑕疵的或不规范的输入
例如语音处理时遇到外国口音或地方口音,或者在文本的处理中处理拼写,语法或者光学字符识别 ( OCR ) 的错误。
语言行为与计划
句子常常并不只是字面上的意思;例如,“你能把盐递过来吗”,一个好的回答应当是动手把盐递过去;在大多数上下文环境中,“能”将是糟糕的回答,虽说回答“不”或者“太远了我拿不到”也是可以接受的。再者,如果一门课程去年没开设,对于提问“这门课程去年有多少学生没通过?”回答“去年没开这门课”要比回答“没人没通过”好。
当前自然语言处理研究的发展趋势
- 传统的基于句法 - 语义规则的理性主义方法过于复杂,随着语料库建设和语料库语言学的崛起,大规模真实文本的机器学习处理成为自然语言处理的主要选择。
- 统计数学方法越来越受到重视,自然语言处理中越来越多地使用机器自动学习的方法来获取语言知识。
- 浅层处理与深层处理并重,统计与规则方法并重,形成混合式的系统。
- 自然语言处理中越来越重视词汇的作用,出现了强烈的“词汇主义”的倾向。词汇知识库的建造成为了普遍关注的问题。[7]
统计自然语言处理
统计自然语言处理运用了推测学、几率、统计的方法来解决上述,尤其是针对容易高度模糊的长串句子,当套用实际文法进行分析产生出成千上万笔可能性时所引发之难题。处理这些高度模糊句子所采用消歧的方法通常运用到语料库以及马可夫模型 ( Markov models ) 。统计自然语言处理的技术主要由同样自人工智能下与学习行为相关的子领域 : 机器学习及数据采掘所演进而成。