自然语言处理(NLP)是人工智能领域的一个重要分支。
自然语言是人类智慧的体现,自然语言处理则是人工智能中最复杂的问题之一。研究自然语言处理既充满魅力又充满挑战。实际上,NLP提供了一种非常吸引人的交互方式。早期的语言处理系统如SHRDLU,在有限的“积木世界”中使用有限的词汇表进行交流时表现良好,这让研究人员对其前景充满信心。然而,当把这些系统应用于现实世界的模糊和不确定性环境中时,问题很快变得棘手。
理解自然语言不仅需要广泛的知识,还需要运用这些知识的能力。因此,自然语言的认知也被视为人工智能中的一个完整问题。同时,在自然语言处理中,“理解”的定义也成为了一个重要的议题。对这一问题的研究已经引起了广泛关注。
NLP面临的一些具体问题包括:
句子“我们把香蕉给猴子,因为它们饿了”和“我们把香蕉给猴子,因为它们熟透了”虽然结构相同,但代词“它们”在第一句中指的是“猴子”,而在第二句中指的是“香蕉”。如果不了解猴子和香蕉的特性,就无法正确区分。
研究难点
词边界的确定
在口语中,词与词之间往往是连续的。确定词的边界通常需要找到一种能够使给定上下文最连贯且符合语法的最佳组合。在书写中,汉语没有词与词之间的分隔符。
词义消歧
许多词语具有多种含义,因此必须选择最能使句子意义连贯的解释。
句法模糊性
自然语言的语法通常是模棱两可的。对于一个句子,通常可以生成多棵不同的分析树。为了选择最合适的一棵,我们需要依靠语义和上下文信息。
输入的缺陷或不规范
例如,在语音处理中遇到外国口音或方言,或者在文本处理中处理拼写、语法错误或光学字符识别(OCR)错误。
语言行为与意图
句子往往不仅仅是字面意思。例如,“你能把盐递过来吗?”一个好的回答应该是递过盐,而不是简单地说“能”。此外,如果一门课程去年没有开设,对于“去年有多少学生没有通过这门课程?”这样的问题,回答“去年没有开设这门课程”比回答“没有人不及格”更合适。
总的来说,统计自然语言处理利用推理、概率和统计方法解决上述问题,尤其是在处理高度模糊的长句时。解决这些模糊句子的方法通常涉及语料库和马尔科夫模型。统计自然语言处理技术主要从人工智能领域中的机器学习和数据挖掘子领域发展而来。