《从Lucene到Elasticsearch:全文检索实战》学习笔记二
今天我给大家讲讲分词算法
分词算法概述:词是语义的最小单位。分词对搜索引擎的作用很大,可以促进搜索引擎程序自动识别语句的含义,可以提高搜索结果的匹配度,分析的质量也将直接影响了搜索结果的精确度。分词存在于文本索引的建立过程和用户提交检索过程。利用相同的分词器把短语或句子划分成相同的结果,才能保证检索过程顺利进行。中文和英文的分词简介如下:
1.英文分词的原理
基本的处理流程是:
输入文本——————>词汇分割——————>词汇过滤——————>词干提取——————>大写转为小写——————>结果输出。
2.中文分词原理
中文分词比较复杂,这主要是因为中文的词与词之间并不像英文中那样用空格来隔开。中文分词主要有3种方法:基于词典匹配的分词方法、基于语义理解的分词、基于词频统计的分词。
基于字典匹配的分词方法按照一定的匹配策略将输入的字符串与机器字典词条进行匹配,查字典分词实际上就是把一个句子从左向右扫描一遍,遇到字典有的词就标识出来,遇到复合词就找到最长的词匹配,遇到不认识的字串则切分成单个词。按照匹配操作的扫描方向不同,字典匹配分词方法可以分为正向匹配、逆向匹配以及结合来两者的双向匹配算法:按照不同长度优先匹配的情况,可以分为最大匹配和最小匹配:按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与词性标注相结合的方法。几种常用的词典分词方法如下:
正向最大匹配(由左到右的方法)
逆向最大匹配(由右到左的方法)
基于语义理解的分词方法是模拟人脑对语言和句子的理解,对句子进行拆分。基本模式是把分词、句法、语义分析并行进行,利用句法和语义信息来处理分词的歧义。
一般结构总通常包括分词子系统、句法语义子系统、调度系统。在调度系统的协调下,分词子系统可以获得有关词、句子等等句法和语义信息,模拟人脑对句子等理解过程。基于语义理解等分词方法需要使用大量等语言知识和信息。
在中文文章的上下文中,相邻的字搭配出现的频率越多,就越有可能形成一个固定的词。根据n元语法知识可以知道,字与字相邻同时出现的频率或概率能够较好地反映成词的可信度。实际的系统中,通过对精心准备的中文语料中相邻共现概率,统计出来的信息体现了中文环境下汉字之间结合的紧密程度。当紧密程度高于阀值时,便可认为此字组可能构成一个词。
基于词频统计的分词方法只需要对语料中的字组频度进行统计,不需要切分词典,因而叫作无词典分词法或统计分词方法。这种方法经常抽出一些共现频度高但并不是词的常用字组,需要专门处理,提高精确度。实际应用的统计分词系统都使用一个基本的常用词词典,即将中文分词中的串频统计和串匹配结合起来,既发挥匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。
---------------------
作者:柯之梦
来源:CSDN
原文:https://blog.csdn.net/yin4302008/article/details/85925466
版权声明:本文为博主原创文章,转载请附上博文链接!
《从Lucene到Elasticsearch:全文检索实战》学习笔记二的更多相关文章
- sql分类及基本sql操作,校对规则(mysql学习笔记二)
sql针对操作对象分为不同语言 数据操作(管理)语言 DML或者将其细分为 ( 查询 DQL 管理(增,删,改) DML) 数据定义语言(对保存数据的格式进行定义) DDL 数据库控制语言(针对数 ...
- Microsoft.SQL.Server2012.Performance.Tuning.Cookbook学习笔记(二)
Creating trace with system stored procedures Following are the stored procedures which you should kn ...
- 《SQL必知必会》学习笔记二)
<SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...
- 《SQL必知必会》学习笔记整理
简介 本笔记目前已包含 <SQL必知必会>中的所有章节. 我在整理笔记时所考虑的是:在笔记记完后,当我需要查找某个知识点时,不需要到书中去找,只需查看笔记即可找到相关知识点.因此在整理笔记 ...
- 《SQL必知必会》学习笔记(一)
这两天看了<SQL必知必会>第四版这本书,并照着书上做了不少实验,也对以前的概念有得新的认识,也发现以前自己有得地方理解错了.我采用的数据库是SQL Server2012.数据库中有一张比 ...
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
- SQL语法语句总结(《SQL必知必会》读书笔记)
一.SQL语句语法 ALTER TABLE ALTER TABLE 用来更新已存在表的结构. ALTER TABLE tablename (ADD|DROP column datatype [NULL ...
- 【SQL必知必会笔记(1)】数据库基础、SQL、MySQL8.0.16下数据库、表的创建及数据插入
文章目录 1.数据库基础 1.1 数据库(database) 1.2 表(table) 1.3 列和数据类型 1.4 行 1.5 主键 2.什么是SQL 3.创建后续练习所需数据库.表(MySQL8. ...
- 读书笔记--SQL必知必会18--视图
读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...
- 学习《SQL必知必会(第4版)》中文PDF+英文PDF+代码++福达BenForta(作者)
不管是数据分析还是Web程序开发,都会接触到数据库,SQL语法简洁,使用方式灵活,功能强大,已经成为当今程序员不可或缺的技能. 推荐学习<SQL必知必会(第4版)>,内容丰富,文字简洁明快 ...
随机推荐
- 微信小程序实现图片裁剪上传(wepy)
参考https://github.com/we-plugin/we-cropper,在wepy中实现,参考的具体例子是we-cropper/example/cutInside/ 项目上传图片时2:3的 ...
- nmon 性能监控网页结果显示——EasyNmon
首先,看看最终展示的结果显示样式: 报告界面: 1.安装包下载地址:https://github.com/mzky/easyNmon 2.下载后有2个压缩文件: 其中,nmon16g_x86中含有不同 ...
- android外包公司—技术分享:Android开发环境搭建(长年承接安卓应用外包)
Android开发环境搭建 1.安装JDK 1.1.由于Android是基于java语言的.所以在开发过程中,首先要做的事儿就是安装JDK. 1.2.JDK的安装步骤: 设置环境变量:我的电脑---- ...
- js中实现截取数组的后几个元素作为一个新数组的方法
有时候我们会遇到这种需求,截取数组中后5个元素作为一个新数组,且顺序不能变.数组中的slice()方法和splice()方法都可以实现这样的操作. const arr = [1,2,7,2,6,0,3 ...
- python+selenium,实现带有验证码的自动化登录功能
python+selenium的环境准备,请自行安装完成,这里直接贴代码,方便做项目时直接使用. import time from selenium import webdriver from PIL ...
- Series.str——字符串批量处理方法
针对dataframe中的某一行(或列)想做批量字符串处理时,可采用此方法 series.str.python内置的str方法 例如: series.str.replace('A','B') # ...
- spark获取时间
在spark 中获取时间用到java.util.{Calendar,Date} 以及java.text.SimpleDateFormat来对时间输出格式作规范 首先先导入包 import java.t ...
- leetcode-algorithms 目录
leetcode算法目录 题号 链接 难度等级 36 leetcode-algorithms-36 Valid Sudoku medium 35 leetcode-algorithms-35 Sear ...
- [hdu P4334] Trouble
[hdu P4334] Trouble Hassan is in trouble. His mathematics teacher has given him a very difficult pro ...
- koa和express对比
不同: 1.启动方式不同 koa采用了new Koa()的方式,而express采用传统的函数形式 2.中间件形式二者不一样,这是由二者处理中间件的逻辑差异导致的,实际上这也是二者最根本的差别 3.k ...