自然语言处理(NLP)是计算机科学,人工智能,语言学关注计算机和人类(自然)语言之间的相互作用的领域。自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。因而它是计算机科学的一部分。
自然语言处理技术是所有与自然语言的计算机处理有关的技术的统称,其目的是使计算机理解和接受人类用自然语言输入的指令,完成从一种语言到另一种语言的翻译功能,自然语言处理技术的研究,可以丰富计算机知识处理的研究内容,推动人工智能技术的发展。
大快NLP模块是大快大数据一体化平台的一个组件,用户引用该组件可以有效进行自然语言的处理工作,如进行文章摘要,语义判别以及提高内容检索的精确度和有效性。
自然语言处理如今不仅作为人工智能核心课题来研究,而且也作为新一代计算机的核心课题来研究。从知识产业角度看,专家系统,数据库,知识库,计算机辅助设计系统(CAD)、计算机辅助教学系统(CAI)、计算机辅助决策系统,办公室自动化管理系统,智能机器人等,都需要用自然语言处理,具有篇章理解能力的自然语言理解系统可用于机器自动翻译、情报检索、自动标引、自动文摘、自动写故事小说等领域,都可以用我们的工具类DKNLPBase来处理。
标准分词
方法签名:List StandardTokenizer.segment(String txt);
返回:分词列表。
签名参数说明:txt:要分词的语句。
范例:下例验证一段话第5个分词是阿法狗。
public void testSegment() throws Exception
{
String text = "商品和服务";
List<Term> termList = DKNLPBase.segment(text);
assertEquals("商品", termList.get(0).word);
assertEquals("和", termList.get(1).word);
assertEquals("服务", termList.get(2).word);
text = "柯杰解说“李世石VS阿法狗第二局” 结局竟是这样";
termList = DKNLPBase.segment(text);
assertEquals("阿法狗", termList.get(5).word); // 能够识别"阿法狗"
}
关键词提取
方法签名:List extractKeyword(String txt,int keySum);
返回:关键词列表.
签名参数说明:txt:要提取关键词的语句,keySum要提取关键词的数量
范例:给出一段话提取一个关键词是“程序员”。
public void testExtractKeyword() throws Exception
{
String content = "程序员(英文Programmer)是从事程序开发、维护的专业人员。" +
"一般将程序员分为程序设计人员和程序编码人员," +
"但两者的界限并不非常清楚,特别是在中国。" +
"软件从业人员分为初级程序员、高级程序员、系统" +
"分析员和项目经理四大类。";
List<String> keyword = DKNLPBase.extractKeyword(content, 1);
assertEquals(1, keyword.size());
assertEquals("程序员", keyword.get(0));
}
短语提取
方法签名:List extractPhrase(String txt, int phSum);
返回:短语
签名参数说明:txt:要提取短语的语句,phSum短语数量
范例:给出一段文字,能代表文章的五个短语,第一个短语是算法工程师。
迈进二十一世纪,我们已经进入了以互联网为主要标志的海量信息时代,这些海量信息大部分是以自然语言表示的。一方面,海量信息也为计算机学习人类语言提供了更多的“素材”,另一方面,这也为自然语言处理提供了更加宽广的应用舞台。例如,作为自然语言处理的重要应用,搜索引擎逐渐成为人们获取信息的重要工具,涌现出以百度、谷歌等为代表的搜索引擎巨头;机器翻译也从实验室走入寻常百姓家,谷歌、百度等公司都提供了基于海量网络数据的机器翻译和辅助翻译工具;基于自然语言处理的中文(输入法如搜狗、微软、谷歌等输入法)成为计算机用户的必备工具;带有语音识别的计算机和手机也正大行其道,协助用户更有效地工作学习。总之,随着互联网的普及和海量信息的涌现,自然语言处理正在人们的日常生活中扮演着越来越重要的作用。
然而,我们同时面临着一个严峻事实,那就是如何有效利用海量信息已成为制约信息技术发展的一个全局性瓶颈问题。自然语言处理无可避免地成为信息科学技术中长期发展的一个新的战略制高点。同时,人们逐渐意识到,单纯依靠统计方法已经无法快速有效地从海量数据中学习语言知识,只有同时充分发挥基于规则的理性主义方法和基于统计的经验主义方法的各自优势,两者互相补充,才能够更好、更快地进行自然语言处理。
自然语言处理作为一个年龄尚不足一个世纪的新兴学科,正在进行着突飞猛进的发展。回顾自然语言处理的发展历程,并不是一帆风顺,有过低谷,也有过高潮。而现在我们正面临着新的挑战和机遇。例如,目前网络搜索引擎基本上还停留在关键词匹配,缺乏深层次的自然语言处理和理解。语音识别、文字识别、问答系统、机器翻译等目前也只能达到很基本的水平。路漫漫其修远兮,自然语言处理作为一个高度交叉的新兴学科,不论是探究自然本质还是付诸实际应用,在将来必定会有令人期待的惊喜和异常快速的发展。