码迷,mamicode.com
首页 > 编程语言 > 详细

快速了解掌握中文自然语言处理

时间:2018-03-26 16:00:55      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:自然语言处理   Hadoop   

NLP是什么
在计算机领域, NLP(Natural Language Processing),也就是人们常说的「自然语言处理」,就是研究如何让计算机读懂人类语言。这包括,既要能让计算机理解自然语言文本的意义,也能以自然语言文本来表达给定的深层的意图、思想等。所以,这项技术往往体现了人工智能的最高任务与境界,也就是说,只有当计算机具备了理解自然语言的能力时,机器才算实现了真正的智能。但是,由于中文词语是由汉字千变万化组成的,所以中文领域的「自然语言处理」显得尤为复杂。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。因而它是计算机科学的一部分。自然语言处理(NLP)是计算机科学,人工智能,语言学关注计算机和人类(自然)语言之间的相互作用的领域。
专注于「自然语言处理」领域多年, NLP 的技术和服务一直伴随着大快的发展而不断进步。从自动翻译、情报检索、自动标引、自动文摘、自动写故事小说等领域,都可以用我们的工具类DKNLPBase来处理,NLP 技术已不再单纯的停留在概念层面,而是逐步渗透并成功应用在大快的各个领域中。技术分享图片

为什么需要NLP
举个例子,日常生活中,我们总会碰到一些不知道怎么读的生僻字, 这时往往就会去搜索引擎搜索,比如“4 个又念什么”。我们发现,搜索结果一定是向你展示“ 4 个又组成的字”是怎样的,并一旁附上拼音及注释等,而不是“ 4 个又念什么”这几个孤零零的词或者其表面的匹配结果。技术分享图片

这其实就是NLP技术的一个体现了。通过这项技术,人们不必花费大量心力去学习和了解难懂的计算机语言,而是用自己最习惯的语言来使用计算机,并进一步了解这背后的意义。
NLP究竟能用来干什么
大快NLP模块是大快大数据一体化平台的一个组件,用户引用该组件可以有效进行自然语言的处理工作,如进行文章摘要,语义判别以及提高内容检索的精确度和有效性。
自然语言处理如今不仅作为人工智能核心课题来研究,而且也作为新一代计算机的核心课题来研究。从知识产业角度看,专家系统,数据库,知识库,计算机辅助设计系统(CAD)、计算机辅助教学系统(CAI)、计算机辅助决策系统,办公室自动化管理系统,智能机器人等,都需要用自然语言处理,具有篇章理解能力的自然语言理解系统可用于机器自动翻译、情报检索、自动标引、自动文摘、自动写故事小说等领域,都可以用我们的工具类DKNLPBase来处理。
标准分词
方法签名:List<Term> 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<String> 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<String> extractPhrase(String txt, int phSum);
返回:短语
签名参数说明:txt:要提取短语的语句,phSum短语数量
范例:给出一段文字,能代表文章的五个短语,第一个短语是算法工程师。技术分享图片

NLP在最近几年取得了很好的进展,但还有许多的难题需要去解决,所以大快在积极的尝试,不过也正是这样有挑战的问题,才能让更多有才华的人投身到大快来推动它的发展。

快速了解掌握中文自然语言处理

标签:自然语言处理   Hadoop   

原文地址:http://blog.51cto.com/13636660/2091164

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!