自然语言处理与Java语言实现
上QQ阅读APP看书,第一时间看更新

基础篇

第1章 自然语言处理实践基础

后台由大数据支撑的有大量用户的系统可以看成是一个巨大的智能系统。智能系统往往通过自然语言来了解这个系统所接触到的智能体的需求,或者获取智能体所发现的知识,通过机器学习等方法升级系统本身,系统和其中的智能体达到良性共生。而自然语言相对于计算机语言来说,不是太可靠。如何从自然语言中提取知识,并形成知识库,是一个需要解决的问题。智能系统与人的交互也需要自然语言处理技术。

自然语言处理(Natural Language Processing,NLP)技术包括很多方面,如文本分类、对话系统、机器翻译等。严格来说,自然语言处理包括自然语言理解和自然语言生成两部分。考虑到自然语言理解的基础地位,本书讲解的自然语言处理主要指自然语言理解部分。

目前,自然语言处理技术广泛地应用在人们生活、学习和工作的各个方面,给人们带来了极大的便利。但是,无论是搜索技术,还是语音识别技术,还是OCR技术(Optical Character Recognition,光学字符识别),都还需要进一步发展。

自然语言理解的关键是抓住文本的特征,因为特征可以显示“说话者”的意图。例如,用户输入的查询“感冒了可以吃海鲜吗?”中的“吗”字是一个很强的疑问特征词,而“Nokia N97港行”中的“Nokia”“N97”“港行”都是很好的产品购买特征词,“松下328传真机参数”中的“参数”则是一个很好的产品详细型号查询的特征词。对于这些显示语义的特征词,计算机要将其识别并形式化,从而达到理解的目的。

本书介绍的自然语言处理技术使用Java编程语言实现。为了集中关注程序的基本逻辑,书中的Java代码去掉了一些错误和异常处理,实际运行的代码可以从人邮教育社区(http://www.ryjiaoyu.com)或读者QQ群中获取。在以后的各章中将会深入探索自然语言处理技术的每个知识点以及相关的Java语言实现过程。