天然语言处理是现代技术最重要的组成之一,经常使用的天然语言通常指汉语、英语等。是随着人类社会发展演变而来的语言。区别于人工语言,如程序设计的语言。算法
天然语言是指用计算机对天然语言的形、音、义等信息进入处理,即对字、词、句、篇章的输入、输出、识别、分析、理解、生成等的操做和加工。实现人机间的信息交流。数据结构
随着计算机记录的文字资料越来多,尤为是伴随着互联网发展,文字资料与日俱增。如何让计算机自动处理这些文字资料甚至是理解这些文字呢?计算机专家们为此开始了几十年的研究。机器学习
我根据本身的认识来总结如下天然语言处理这些年都干了些什么,有哪些好的应用。学习
1、基础研究spa
(1)词、分词设计
统一一下文本里面的词频,看看哪些词是说起最多的等等。blog
英文,词与词之间是用空格分开的,统计词很简单。最多加上stemming算法,就是同一个词的不一样时态、单复数等处理。深度学习
中文,词与词之间没有空隙,最多在句子之间有标点符号。要统计中文词汇,首先要作个分词的步骤,业内术语叫作“中文分词”。作分词研究是中文天然语言处理的第一步,方法有不少种,无非是词典和机器学习。产品
(a)基于词典的方法微博
搞一个汉语词典,以必定的数据结构存储方便查找。其中一种叫作“Trie Tree”的数据结构很合适。词典的持续更新很重要,词典里面没有的新词就只能被分红单字。基于词典的有点就是一个字:快!
字典的持续更新是能够作到的,爬虫天天爬虫新闻、微博的内容,用新词发现算法从中发现新词更新到词典中。
新词发现算法,是一直统计算法,在一堆语料中经过统计计算字与字之间的粘合度、左右邻居的信息熵就能够把其中的词找出来,效果很好。
(b)机器学习
早些年的机器学习方法有HMM(隐马尔可夫模型),CRF(条件随机场),效果都不错,在封闭训练集上等达到百分之九十几的准确率。这些机器学习的方法能在必定程度上识别新词,但仅仅是必定程度上。
最近几年深度学习发展很快,有些研究者把它用到分词上也达到了很好的效果。不过,总感受这是杀鸡用牛刀。
实际应用中,都是字典加机器学习的方法结合来用的。
(2)词性标注(POS)
词性是人类语言文字中的一个规则,而这个规则又比较松散,一个词有多个词性,位置不一样词性不一样,人类本身识别起来都很费劲。词性标注,就是让计算机经过必定的算法把一句话里面的每一个词分红不一样的词性。
词性标注,通常都是用机器学习的方法来作。经过人工事先标注好的语料来进行机器学习获得一个模型,计算机程序使用这个模型再来对其它文本进行标注。早期的机器学习方法有HMM,CRF等。这些年也能够上深度学习来作。
(3)命名实体识别(NER)
命名实体,就是表明一个实体的词汇,好比,人名、地名、机构名。这个通常的作法是规则+机器学习的方法。CRF一样在这里有用武之地。
(4)句法分析
让计算机来把一句话的主谓宾、定状补给分析出来。这也是一项挑战。一样,它也能够经过CRF来实现。
以上过程,分词、词性标注、命名实体识别、依存句法分析均可以用CRF来实现。从原理上,他们有相同的特色,都是最字或词的一种标注。
CRF分词是由字组词的过程,训练语料把每一个字标记成词的开头、中间、结尾等标记。训练过程是学习这些字、标记的上下文关系;分词过程是根据学习的关系给字打上标记,再根据这些标记组成词。
CRF词性标注、命名实体识别、句法分析是一样的道理,但他们标注的都是词、词性等关系。
(5)语音处理
以上谈及的都是对文本内容的研究,语言的另外一种形式——语音也是多年来计算机研究的一个领域。
这里的语音处理主要是跟天然语言处理相关的,最主要的是语音转文本,其它还有文本转语音,唤醒词识别。
唤醒词识别,值得特别介绍一下。如今智能设备不少,智能语音助手、智能音响等具备语音交互功能的软硬件产品,基本上都有一个“语音唤醒功能”。好比你给你的智能音响或机器人起了个名字叫“小白”,你叫它“小白”之后,它就开始和你交互了;若是你叫它“小黑”,它就不搭理你。这个“小白”就是它的唤醒词,每一个人对本身的产品均可以用不一样的唤醒词。唤醒词识别作的就是如何训练一个特定词汇的识别模型,甚至还包括我的音色特征(别人叫它小白也不行)。
以上就是天然语言处理作的基础研究内容,这些基础研究有什么应用能让咱们的生活更美好呢?