南宁本地网站有哪些,wordpress主题无法删除,十大编程教育培训机构,个人网页制作模板怎么做本文记录下使用 Elasticsearch 进行文本分类#xff0c;当我第一次偶然发现 Elasticsearch 时#xff0c;就被它的易用性、速度和配置选项所吸引。每次使用 Elasticsearch#xff0c;我都能找到一种更为简单的方法来解决我一贯通过传统的自然语言处理 (NLP) 工具和技术来解决…本文记录下使用 Elasticsearch 进行文本分类当我第一次偶然发现 Elasticsearch 时就被它的易用性、速度和配置选项所吸引。每次使用 Elasticsearch我都能找到一种更为简单的方法来解决我一贯通过传统的自然语言处理 (NLP) 工具和技术来解决的问题。
在某个时刻我意识到它可以直接用来解决很多问题而如果采用我以前学到的方法则需要从头开始构建解决方案。
环境
服务器elasticsearch7.9.3
前端elasticsearch-head
一、下载ICU和IK中文分词插件 进入elasticsearch/bin查看是否如下2个插件如果没有就需要下载。
[elasticsearch bin]$ ./elasticsearch-plugin list
analysis-icu
analysis-ik
有两种方式一种是在线下载一种是离线下载。由于我的网络环境需要代理设置第一种提示下载超时
root:/elasticsearch-7.9.3/bin# ./elasticsearch-plugin install analysis-icu
- Installing analysis-icu
- Failed installing analysis-icu
- Rolling back analysis-icu
- Rolled back analysis-icu
Exception in thread main java.net.ConnectException: 连接超时 (Connection timed out)at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)下载对应版本的ik和icu插件
Gitee 极速下载/elasticsearch-analysis-ik
https://artifacts.elastic.co/downloads/elasticsearch-plugins/analysis-icu/analysis-icu-7.9.3.zip
将2个压缩文件上传至服务器的elasticsearch/plugin解压并重启elasticsearch重启的方式见linux上安装部署elasticsearch7.9_elasticsearch linux部署_一个高效工作的家伙的博客-CSDN博客 二、使用分词器测试用例
1)普通分词
POST _analyze
{text: [他是一个前端开发工程师],analyzer: standard
}POST _analyze
{text: [他是一个前端开发工程师],analyzer: keyword
}2)IK 分词
POST _analyze
{text: [他是一个前端开发工程师],analyzer: ik_max_word
}
{text: [他是一个前端开发工程师],analyzer: ik_smart
}
3) ICU 分词
POST _analyze
{text: [他是一个前端开发工程师],analyzer: icu_analyzer
}
使用elasticsearch-head的复合查询写法如下 三、分词器的实际应用
1、创建索引
使用ik_smart作为分词器注需要新建索引时添加分词器如果添加数据后就无法添加分词器了。
put /sample
{mappings: {properties: {content: {type: text,analyzer: ik_smart},category: {type: text,analyzer: ik_smart,fields: {raw: {type: keyword}}}}}
}
2、 添加文档
//添加文档
POST /sample/_doc/1
{content:我是小鸟,category:动物
}POST /sample/_doc/2
{content:我是苹果,category:植物
}3、使用more_like_this查询
GET sample/_search
{query: {more_like_this: {fields: [content,category],like: 小鸟,min_term_freq: 1,max_query_terms: 20}}
} 四、结语
大多数的 NLP 任务都是从一个标准的预处理管道开始的
采集数据提取原始文本句子拆分词汇切分标准化词干分解、词形还原停用词删除词性标注
第 1 步和第 2 步可通过 Elasticsearch 中的采集附件处理器插件5.0 之前版本为映射工具附件插件来完成。
这些插件的原始文本提取基于 Apache Tika这个工具包可处理最常见的数据格式HTML/PDF/Word 等。
第 4 步到第 6 步可通过开箱即用的语言分析器来完成。比如icu和ik分词器完成。 有几个现实的原因训练一个 SVM 模型需要花费大量时间。特别是当您在一家初创公司工作或需要快速适应各种客户或用例时这可能会是一个棘手的问题。另外您可能无法在每次数据变更时都对模型进行重新培训。我在一家德国大银行的项目中曾亲身经历过这个难题。这种情况下您用过时的模型肯定不会带来好的结果。
而使用 Elasticsearch 方法不仅可在索引时进行训练还可在任何时间点动态更新模型而且应用程序的停机时间为零。如果您的数据存储在 Elasticsearch 中则不需要任何额外的基础设施。通常在第一页您就可以获得 10% 以上的高精度结果。这在很多应用程序中足以给人留下良好的第一印象。
既然有其他工具为什么还要使用 Elasticsearch 呢
因为您的数据已经存在它会预先计算底层的统计数据。就像是免费得到一些 NLP 一样