Elasticsearch 用于词形还原的开源 Hebrew 分析器

作者:来自 Elasticsearch Lily Adler

一个开源 Elasticsearch 9.x 分析器插件,通过在分析链中对 token 进行词形还原,改善 Hebrew 搜索,以提高对 Hebrew 形态的召回率。

Elasticsearch 拥有丰富的新功能,帮助你为你的使用场景构建最佳搜索解决方案。在我们关于构建现代 Search AI 体验的实操 webinar 中,了解如何将这些功能付诸实践。你也可以现在开始免费 cloud 试用,或在本地机器上试用 Elastic。


Hebrew 在形态上非常丰富:前缀、词形变化和附着词使得精确 token 搜索脆弱。该项目提供了一个开源 Elasticsearch 9.x 的 Hebrew 分析器插件,在分析链中执行神经词形还原,使用嵌入的 DictaBERT 模型,并通过 ONNX Runtime 以 INT8 量化模型在进程中执行。

快速开始

下载相关版本或构建并安装(Linux 构建脚本会生成与 Elasticsearch 兼容的 zip):

复制代码
./scripts/build_plugin_linux.sh

在 Elasticsearch 中安装:

复制代码
/path/to/elasticsearch/bin/elasticsearch-plugin install file:///path/to/heb-lemmas-embedded-plugin-<ES_VERSION>.zip

测试:

复制代码
curl -k -X POST "https://localhost:9200/_analyze" \
  -H "Content-Type: application/json" \
  -u "elastic:<password>" \
  -d '{"tokenizer":"whitespace","filter":["heb_lemmas","heb_stopwords"],"text":"הילדים אוכלים את הבננות"}'

为什么 Hebrew 搜索不同

Hebrew 在形态上非常丰富:前缀、后缀、词形变化和附着词都会合并为单一的表面形式。这使得简单的 tokenization 不足。没有真正的词形还原,搜索质量会下降;用户可能因为形式的简单变化而错过相关结果。该项目通过将 Hebrew 词形还原模型嵌入分析器本身解决了这个问题,使每个 token 在索引和查询前都通过神经模型处理。

示例

用户可能搜索词干 "בית"(house),但文档可能包含:

  • בית(a house)
  • בבית(in the house)
  • לבית(to the house)
  • בבתים(in houses)
  • לבתים(to houses)

没有词形还原时,这些会成为不同的表面 token;词形还原会将它们规范化到相同的词干(בית),提高召回率:

这个插件的功能

该分析器不是依赖规则的词干提取,而是在 Elasticsearch 分析链中运行 Hebrew 词形还原模型,为每个 token 输出一个规范化的词干。因为模型是神经网络,它可以在每个分析段中利用局部上下文,在模糊情况下选择合适的词干 ------ 同时仍生成适合索引和查询的稳定 token。该分析器:

  • 在 Elasticsearch 内运行 Hebrew 词形还原模型。
  • 为 Hebrew 文本生成更好的规范化 token。
  • 支持停用词和标准分析器管道。

结果:快速、可靠的词形还原

该分析器针对实际吞吐量进行了优化:

  • 使用 ONNX Runtime 进行进程内推理
  • INT8 量化模型以降低延迟和内存占用。
  • 通过 Java Foreign Function Interface(FFI)实现高性能原生推理。

结果:快速、可靠的词形还原,操作行为可预测。

为了评估性能,我们在 Docker 容器(4 核,12 GB RAM)中对 100 万条大文档(5.7 GB 数据)进行基准测试,数据来源于 Hebrew Wikipedia 数据集。结果如下:

Metric (search) Task Value Unit
Min throughput hebrew-query-search 409.75 ops/s
Mean throughput hebrew-query-search 490.65 ops/s
Median throughput hebrew-query-search 491.85 ops/s
Max throughput hebrew-query-search 496.13 ops/s
50th percentile latency hebrew-query-search 7.02242 ms
90th percentile latency hebrew-query-search 10.7338 ms
99th percentile latency hebrew-query-search 19.0406 ms
99.9th percentile latency hebrew-query-search 27.165 ms
50th percentile service time hebrew-query-search 7.02242 ms
90th percentile service time hebrew-query-search 10.7338 ms
99th percentile service time hebrew-query-search 19.0406 ms
99.9th percentile service time hebrew-query-search 27.165 ms
Error rate hebrew-query-search 0 %

开源且兼容 Elastic

该插件完全开源,可在以下环境中使用:

  • Elastic 开源发行版
  • Elastic Cloud

你可以自行构建,也可以下载预构建版本并像安装其他插件一样安装。

要将分析器插件上传到 Elastic Cloud,请在 Elastic Cloud 控制台中导航到 Extensions 部分,然后进行上传。

鸣谢

该项目是 Korra ai Hebrew 分析插件(MIT)的一个 fork,由 Korra.ai 实现,并在 MAFAT 和以色列创新局领导的国家 NLP 项目资助和指导下完成。

此 fork 关注 Elasticsearch 9.x 兼容性,并通过 ONNX Runtime 完全在进程内运行词形还原,使用 INT8 量化模型和捆绑的 Hebrew 停用词。词形还原由 DictaBERT dicta-il/dictabert-lex(CC‑BY‑4.0)提供支持。

特别感谢 Dicta 团队为社区提供高质量的 Hebrew 自然语言处理(NLP)模型。

链接

原文:https://www.elastic.co/search-labs/blog/elasticsearch-lemmatization-hebrew-analyzer

相关推荐
SeaTunnel15 小时前
(八)收官篇 | 数据平台最后一公里:数据集成开发设计与上线治理实战
java·大数据·开发语言·白鲸开源
极客老王说Agent15 小时前
2026供应链智变:实在Agent供应链库存预测助手核心能力与配置深度教程
人工智能·机器学习·ai·chatgpt
极客老王说Agent16 小时前
2026供应链革命:实在Agent货物智能入库智能助理使用方法与库位优化全指南
人工智能·ai
一直会游泳的小猫16 小时前
gstack-guide
开源·安全防护·ai辅助开发·技能工具集·sprint流程
IT研究所17 小时前
AI 时代下的知识管理:从 Claude 的“复盘”能力看生成式 AI价值
大数据·运维·数据库·人工智能·科技·低代码·自然语言处理
AIGC大时代17 小时前
AI Agent 六大趋势怎么看
科技·ai·科普
云边云科技_云网融合17 小时前
企业出海的 “数字丝绸之路“:SD-WAN 如何重构全球网络竞争力
大数据·运维·网络·人工智能
JZC_xiaozhong17 小时前
2026年深圳企业如何统一管理ERP、MES、OA权限?身份识别与访问管理高效方案
大数据·运维·自动化·企业数据安全·数据集成与应用集成·权限治理·多系统权限管理
Hical_W17 小时前
Hical 踩坑实录五部曲(五):Boost.MySQL 协程集成的 5 个坑
数据库·mysql·开源
老陈头聊SEO18 小时前
长尾关键词策略提升SEO效果的最新分析与实践分享
其他·搜索引擎·seo优化