笔记转载于GitHub项目:https://github.com/NLP-LOVE/Introduction-NLP 3. 二元语法与中文分词 上一章中我们实现了块儿不准的词典分词,词典分词无法消歧.给定两种分词结果"商品 和服 务"以及"商品 和 服务",词典分词不知道哪种更加合理. 我们人类确知道第二种更加合理,只因为我们从小到大接触的都是第二种分词,出现的次数多,所以我们判定第二种是正确地选择.这就是利用了统计自然语言处理.统计自然语言处理的核心话题之一,就是…
Solr中虽然提供了一个中文分词器,但是效果很差,可以使用IKAnalyzer或Mmseg4j 或其他中文分词器. 一.IKAnalyzer分词器配置: 1.下载IKAnalyzer(IKAnalyzer2012_u6)包,当前使用版本IKAnalyzer2012_u6.jar 2.将IKAnalyzer2012_u6包下的IKAnalyzer.cfg.xml和stopword.dic复制到solr应用/WEB-INF/classes下. 3.在${solr_home}/[core路径下]/co…
1. 新手上路 自然语言处理(Natural Language Processing,NLP)是一门融合了计算机科学.人工智能及语言学的交叉学科,它们的关系如下图所示.这门学科研究的是如何通过机器学习等技术,让计算机学会处理人类语言,乃至实现终极目标--理解人类语言或人工智能. 美国计算机科学家Bill Manaris在<计算机进展>( Advances in Computers)第47卷的<从人机交互的角度看自然语言处理>一文中曾经给自然语言处理提出了如下的定义: "自…
2. 词典分词 中文分词:指的是将一段文本拆分为一系列单词的过程,这些单词顺序拼接后等于原文本. 中文分词算法大致分为基于词典规则与基于机器学习这两大派. 2.1 什么是词 在基于词典的中文分词中,词的定义要现实得多:词典中的字符串就是词. 词的性质--齐夫定律:一个单词的词频与它的词频排名成反比. 2.2 词典 互联网词库(SogouW, 15万个词条).清华大学开放中文词库(THUOCL).HanLP词库(千万级词条) 这里以HanLP附带的迷你核心词典为例(本项目路径):data/dict…
笔记转载于GitHub项目:https://github.com/NLP-LOVE/Introduction-NLP 5. 感知机分类与序列标注 第4章我们利用隐马尔可夫模型实现了第一个基于序列标注的中文分词器,然而效果并不理想.事实上,隐马尔可夫模型假设人们说的话仅仅取决于一个隐藏的{B.M,E,S序列,这个假设太单纯了,不符合语言规律.语言不是由这么简单的标签序列生成,语言含有更多特征,而隐马弥可夫模型没有捕捉到.隐马弥可夫模型能捕捉的特征仅限于两种: 其一,前一个标签是什么:其二,当前字符…
笔记转载于GitHub项目:https://github.com/NLP-LOVE/Introduction-NLP 6. 条件随机场与序列标注 本章介绍一种新的序列标注模型条件随机场.这种模型与感知机同属结构化学习大家族,但性能比感知机还要强大.为了厘清该模型的来龙去脉,我们先对机器学习模型做番柿理.然后结合代码介绍条件随机场理论,探究它与结构化感知机的异同. 6.1 机器学习的模型谱系 机器学习的模型谱系图如下图所示: 根据建模的究竟是联合概率分布 P(x,y) 还是条件概率分布 P(y|x…
笔记转载于GitHub项目:https://github.com/NLP-LOVE/Introduction-NLP 9. 信息抽取 信息抽取是一个宽泛的概念,指的是从非结构化文本中提取结构化信息的一类技术.这类技术依然分为基于规则的正则匹配.有监督学习和无监督学习等各种实现方法.我们将使用一些简单实用的无监督学习方法.由于不需要标注语料库,所以可以利用海量的非结构化文本. 本章按照颗粒度从小到大的顺序,介绍抽取新词.关键词.关键短语和关键句的无监督学习方法. 9.1 新词提取 概述 新词是一个…
以前发布过HanLP的Lucene插件,后来很多人跟我说其实Solr更流行(反正我是觉得既然Solr是Lucene的子项目,那么稍微改改配置就能支持Solr),于是就抽空做了个Solr插件出来,开源在Github上,欢迎改进. HanLP中文分词solr插件支持Solr5.x,兼容Lucene5.x. 图1 快速上手 1.将hanlp-portable.jar和hanlp-solr-plugin.jar共两个jar放入${webapp}/WEB-INF/lib下 2.修改solr core的配置…
以前发布过HanLP的Lucene插件,后来很多人跟我说其实Solr更流行(反正我是觉得既然Solr是Lucene的子项目,那么稍微改改配置就能支持Solr),于是就抽空做了个Solr插件出来,开源在Github上,欢迎改进. HanLP中文分词solr插件支持Solr5.x,兼容Lucene5.x. 快速上手 将hanlp-portable.jar和hanlp-solr-plugin.jar共两个jar放入${webapp}/WEB-INF/lib下 修改solr core的配置文件${cor…
自然语言处理定义: 自然语言处理是一门计算机科学.人工智能以及语言学的交叉学科.虽然语言只是人工智能的一部分(人工智能还包括计算机视觉等),但它是非常独特的一部分.这个星球上有许多生物拥有超过人类的视觉系统,但只有人类才拥有这么高级的语言. 自然语言处理的目标是让计算机处理或说“理解”自然语言,以完成有意义的任务,比如订机票购物或QA等.完全理解和表达语言是极其困难的,完美的语言理解等效于实现人工智能. 自然语言处理涉及的几个层次: 作为输入一共有两个来源,语音与文本.所以第一级是语音识别和OC…