停用词主要是为了提升性能与精度。
从早期的信息检索到如今,我们已习惯于磁盘空间和内存被限制为很小一部分,所以 必须使你的索引尽可能小。 每个字节都意味着巨大的性能提升。 词干提取的重要性不仅是因为它让搜索的内容更广泛、让检索的能力更深入,还因为它是压缩索引空间的工具。
一种最简单的减少索引大小的方法就是 _索引更少的词_。 有些词要比其他词更重要,只索引那些更重要的词来可以大大减少索引的空间。
那么哪些词条可以被过滤呢?我们可以简单分为两组:
低频词(Low-frequency terms)在文档集合中相对出现较少的词,因为它们稀少,所以它们的权重值更高。高频词(High-frequency terms)在索引下的文档集合中出现较多的常用词,例如 `the`、`and`、和`is`。 这些词的权重小,对相关度评分影响不大。
当然,频率实际上是个可以衡量的标尺而不是非高即低的标签。我们可以在标尺的任何位置选取一个标准,低于这个标准的属于低频词,高于它的属于高频词。
词项到底是低频或是高频取决于它们所处的文档。单词and如果在所有都是中文的文档里可能是个低频词。在关于数据库的文档集合里,单词database可能是一个高频词项,它对搜索这个特定集合毫无帮助。
每种语言都存在一些非常常见的单词,它们对搜索没有太大价值。在 Elasticsearch 中,英语默认的停用词为:
a, an, and, are, as, at, be, but, by, for, if, in, into, is, it,
no, not, of, on, or, such, that, the, their, then, there, these,
they, this, to, was, will, with

停用词的优缺点:
现在我们拥有更大的磁盘空间,更多内存,并且 还有更好的压缩算法。 将之前的 33 个常见词从索引中移除,每百万文档只能节省 4MB 空间。 所以使用停用词减少索引大小不再是一个有效的理由。
在此基础上,从索引里将这些词移除会使我们降低某种类型的搜索能力。将前面这些所列单词移除会让我们难以完成以下事情:
区分 happy 和 _not happy_。
搜索乐队名称 The The。
查找莎士比亚的名句 “To be, or not to be” (生存还是毁灭)。
使用挪威的国家代码: `no`。
移除停用词的最主要好处是性能,假设我们在个具有上百万文档的索引中搜索单词 fox`。或许 `fox 只在其中 20 个文档中出现,也就是说 Elasticsearch 需要计算 20 个文档的相关度评分 `_score `从而排出前十。现在我们把搜索条件改为 `the OR fox`,几乎所有的文件都包含 `the 这个词,也就是说 Elasticsearch 需要为所有一百万文档计算评分 `_score`。 由此可见第二个查询肯定没有第一个的结果好。

es中的停用词的更多相关文章

  1. 使用Python中的NLTK和spaCy删除停用词与文本标准化

    概述 了解如何在Python中删除停用词与文本标准化,这些是自然语言处理的基本技术 探索不同的方法来删除停用词,以及讨论文本标准化技术,如词干化(stemming)和词形还原(lemmatizatio ...

  2. 如何在java中去除中文文本的停用词

    1.  整体思路 第一步:先将中文文本进行分词,这里使用的HanLP-汉语言处理包进行中文文本分词. 第二步:使用停用词表,去除分好的词中的停用词. 2.  中文文本分词环境配置 使用的HanLP-汉 ...

  3. (3.1)用ictclas4j进行中文分词,并去除停用词

    酒店评论情感分析系统——用ictclas4j进行中文分词,并去除停用词 ictclas4j是中科院计算所开发的中文分词工具ICTCLAS的Java版本,因其分词准确率较高,而备受青睐. 注:ictcl ...

  4. ElasticSearch 2 (24) - 语言处理系列之停用词:性能与精度

    ElasticSearch 2 (24) - 语言处理系列之停用词:性能与精度 摘要 在信息检索早期,磁盘和内存相较我们今天的使用只是很小的一部分.将索引空间保持在一个较小的水平是至关重要的,节省每个 ...

  5. Elasticsearch的停用词(stopwords)

    1.问题 在使用搜索引擎(Elasticsearch或Solr)作为应用的后台搜索平台的时候,会遇到停用词(stopwords)的问题. 在信息检索中,停用词是为节省存储空间和提高搜索效率,处理文本时 ...

  6. ES 实现实时从Mysql数据库中读取热词,停用词

    IK分词器虽然自带词库 但是在实际开发应用中对于词库的灵活度的要求是远远不够的,IK分词器虽然配置文件中能添加扩展词库,但是需要重启ES 这章就当写一篇扩展了 其实IK本身是支持热更新词库的,但是需要 ...

  7. python使用jieba实现中文文档分词和去停用词

    分词工具的选择: 现在对于中文分词,分词工具有很多种,比如说:jieba分词.thulac.SnowNLP等.在这篇文档中,笔者使用的jieba分词,并且基于python3环境,选择jieba分词的理 ...

  8. 三、spark入门:文本中发现5个最常用的word,排除常用停用词

    package com.yl.wordcount import java.io.File import org.apache.spark.{SparkConf, SparkContext} impor ...

  9. elasticsearch对无意义的词进行屏蔽——停用词

    介绍 在使用elasticsearch进行搜索业务的时候,发现一篇和搜索关键字完全不匹配的文章排在最前面.打开它发现原来是这篇文章含有非常多的"的"这个无意义的词.而我的搜索关键字 ...

随机推荐

  1. C语言中的字符串处理库函数介绍与实现

    一.介绍 本文将主要介绍字符串处理库函数中的strlen.strcpy.strcat.strcmp.atoi等,主要由<string.h>头文件提供. 二.strlen函数:求字符串的长度 ...

  2. tronado学习

    请求处理程序和请求参数: 原创首发:http://www.cnblogs.com/zxlovenet/p/4128644.html 程序将URL映射到tornado.web.RequestHandle ...

  3. MATLAB plot()、scatter()的RGB颜色设置以及生成渐变色

    1.转载:https://blog.csdn.net/wh1312142954/article/details/80796764 plot(x,y,'Color',[R G B]);%只要设置颜色中R ...

  4. WPF listbox的分组研究

    1. 初探GroupItem对象 2.ContainerStyle 与 GroupItem的绑定对象 3.Grouping 级联

  5. QT开发环境安装配置教程

    QT开发环境安装配置教程 分类: QT2012-11-29 23:31 35366人阅读 评论(12) 收藏 举报 Linux版的直接在ubutnu软件中心输入QT,安装响应的Designer,Cre ...

  6. MySql 5.7 新特性概览

    安全的提升 1.1 在Mysql 8版本中,caching_sha2_password 是一个缺省的认证插见.5.7 版本的客户端支持 caching_sha2_password 的客户端认证. 1. ...

  7. C语言程序设计--执行命令

    1.system函数 1.1函数原型 int system(char *command); 1.2解释 system()会调用fork()产生子进程,由子进程来调用/bin/sh -c string来 ...

  8. C - Boxes in a Line 数组模拟链表

    You have n boxes in a line on the table numbered 1 . . . n from left to right. Your task is to simul ...

  9. AIX装机问题123

    好久没有实施,好记性不如好笔记,那就记录下吧 1文件系统创建挂载 通过smit工具很容易简单举例创建一个jfs2类型文件系统并挂载 创建lv smit mklv 创建jfs2类型文件系统 指定lv s ...

  10. JavaScript外部函数调用AngularJS的函数、$scope

    x 场景: 需要在用FusionCharts画的柱状图中添加点击事件,But弹出框是Angularjs搞的,我想的是直接跳到弹出框的那个路由里,然后在弹出框的控制器中绑定数据即可: /* 点击事件 * ...