es的自定義詞典和停用詞

在 Elasticsearch 中,自定義詞典是優化分詞效果的核心手段,尤其適用于中文或專業領域的文本處理。以下是關于 ES 自定義詞典的完整指南:

  1. 為什么需要自定義詞典?
    默認分詞不足:
    ES 自帶的分詞器(如 Standard Analyzer)對中文處理效果差(按字拆分),IK 分詞器雖支持中文,但默認詞庫可能缺少特定領域詞匯(如 “大模型”“元宇宙”)。
    業務需求:
    確保專業術語不被拆分(如 “機器學習” 不應拆分為 “機器”“學習”);
    識別品牌名、人名、地名等專有名詞;
    處理網絡熱詞或縮寫(如 “yyds”“內卷”)。
  2. 如何配置自定義詞典?
    以 IK 分詞器為例,步驟如下:
    步驟 1:創建詞典文件
    在 ES 安裝目錄下的 plugins/ik/config 目錄中創建自定義詞典文件(如 custom/mydict.dic):
    步驟 2:修改配置文件
    編輯 plugins/ik/config/IKAnalyzer.cfg.xml,添加自定義詞典路徑:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties><comment>IK Analyzer 擴展配置</comment><!--用戶可以在這里配置自己的擴展字典 --><entry key="ext_dict">custom/mydic.dic</entry><!--用戶可以在這里配置自己的擴展停止詞字典--><entry key="ext_stopwords">custom/stopwords.dic</entry><!--用戶可以在這里配置遠程擴展字典 --><!-- <entry key="remote_ext_dict">words_location</entry> --><!--用戶可以在這里配置遠程擴展停止詞字典--><!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

路徑規則:
使用 正斜杠 / 或分號 ; 分隔多個詞典;
路徑相對于 ik/config 目錄(如 custom/mydict.dic 對應實際路徑 plugins/ik/config/custom/mydict.dic)
我的myidct.dic自定義詞典為:

有限公司
有限責任公司
人工智能
許家印
前首富

步驟 3:重啟 ES 并驗證

POST http://localhost:9200/_analyze
{"analyzer": "ik_smart","text": "中國前首富許家印"
}

結果:

{"tokens": [{"token": "中國","start_offset": 0,"end_offset": 2,"type": "CN_WORD","position": 0},{"token": "前首富","start_offset": 2,"end_offset": 5,"type": "CN_WORD","position": 1},{"token": "許家印","start_offset": 5,"end_offset": 8,"type": "CN_WORD","position": 2}]
}

去掉mydic.dic里面的內容,重啟es,不采用自定義詞典后的分詞效果如下

{"tokens": [{"token": "中國","start_offset": 0,"end_offset": 2,"type": "CN_WORD","position": 0},{"token": "前","start_offset": 2,"end_offset": 3,"type": "CN_CHAR","position": 1},{"token": "首富","start_offset": 3,"end_offset": 5,"type": "CN_WORD","position": 2},{"token": "許","start_offset": 5,"end_offset": 6,"type": "CN_CHAR","position": 3},{"token": "家","start_offset": 6,"end_offset": 7,"type": "CN_CHAR","position": 4},{"token": "印","start_offset": 7,"end_offset": 8,"type": "CN_CHAR","position": 5}]
}

-----------------------------------------------手動分割線---------------------------------------------------

在 Elasticsearch 中,自定義詞典和停用詞是兩種功能完全相反的配置,分別用于增強分詞精度和過濾冗余信息。以下是核心區別和應用場景:

  1. 核心區別對比
    在這里插入圖片描述
  2. 示例對比

場景:分析文本 “我愛自然語言處理”
自定義詞典配置:

<entry key="ext_dict">custom/nlp.dic</entry>

nlp.dic 內容:

自然語言處理

分詞結果:

["我", "愛", "自然語言處理"]  // “自然語言處理”被視為一個整體

停用詞配置:

<entry key="ext_stopwords">stopwords.dic</entry>

stopwords.dic 內容:

我
的
了

分詞結果:

["愛", "自然", "語言", "處理"]  // “我”被過濾
  1. 適用場景
    在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/88983.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/88983.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/88983.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微算法科技技術突破:用于前饋神經網絡的量子算法技術助力神經網絡變革

隨著量子計算和機器學習的迅猛發展&#xff0c;企業界正逐步邁向融合這兩大領域的新時代。在這一背景下&#xff0c;微算法科技&#xff08;NASDAQ:MLGO&#xff09;成功研發出一套用于前饋神經網絡的量子算法&#xff0c;突破了傳統神經網絡在訓練和評估中的性能瓶頸。這一創新…

一文讀懂循環神經網絡(RNN)—語言模型+讀取長序列數據(2)

目錄 讀取長序列數據 為什么需要 “讀取長序列數據”&#xff1f; 讀取長序列數據的核心方法 1. 滑動窗口&#xff08;Sliding Window&#xff09; 2. 分段截取&#xff08;Segmentation&#xff09; 3. 滾動生成&#xff08;Rolling Generation&#xff09; 4. 關鍵信息…

Oracle Virtualbox 虛擬機配置靜態IP

Oracle Virtualbox 虛擬機配置靜態IP VirtualBox的網卡&#xff0c;默認都是第一個不能自定義&#xff0c;后續新建的可以自定義。 新建NAT網卡、host主機模式網卡 依次點擊&#xff1a;管理->工具->網絡管理器新建host主機模式網卡 這個網卡的網段自定義&#xff0c;創建…

Linux RAID1 創建與配置實戰指南(mdadm)

Linux RAID1 創建與配置實戰指南&#xff08;mdadm&#xff09;一、RAID1 核心價值與實戰目標RAID1&#xff08;磁盤鏡像&#xff09; 通過數據冗余提供高可靠性&#xff1a;當單塊硬盤損壞時&#xff0c;數據不丟失支持快速陣列重建讀寫性能略低于單盤&#xff08;鏡像寫入開銷…

MySQL數據庫----函數

目錄函數1&#xff0c;字符串函數2&#xff0c;數值函數3&#xff0c;日期函數4&#xff0c;流程函數函數 1&#xff0c;字符串函數 MySQL中內置了很多字符串函數 2&#xff0c;數值函數 3&#xff0c;日期函數 4&#xff0c;流程函數

1.2 vue2(組合式API)的語法結構以及外部暴露

vue2 vue3中可以寫vue2的語法&#xff0c;vue2的結構像一個花盆里的根&#xff08;根組件App.vue&#xff09;&#xff0c;根上可以插上不同的枝杈和花朵&#xff08;組件&#xff09;。 組件的結構&#xff1a; // 這里寫邏輯行為 <script lang"ts"> export d…

Swift 解 LeetCode 324:一步步實現擺動排序 II,掌握數組重排的節奏感

文章目錄摘要描述題解答案題解代碼&#xff08;Swift&#xff09;題解代碼分析步驟一&#xff1a;排序數組步驟二&#xff1a;左右指針分段步驟三&#xff1a;按位置交錯插入示例測試及結果示例 1示例 2示例 3&#xff08;邊界情況&#xff09;時間復雜度分析空間復雜度分析總結…

使用SQLMAP的文章管理系統CMS的sql注入滲透測試

SQLMAP注入演示&#xff1a;抓包拿到Cookie:召喚sqlmap&#xff1a;sqlmap -u "http://192.168.1.99:8085/show.php?id34" --cookie "pma_langzh_CN; kbqug_admin_username2621-PL_LxhFjyVe43ZuQvht6MI5q0ZcpRVV5FI0pzQ6XR8; kbqug_siteid2621-PL_LxhFjyVe4yA5…

I3C通信協議核心詳解

一、物理層與電氣特性雙線結構 SCL&#xff08;串行時鐘線&#xff09;&#xff1a;主設備控制&#xff0c;支持 推挽&#xff08;Push-Pull&#xff09;輸出&#xff08;高速模式&#xff09;和 開漏&#xff08;Open-Drain&#xff09;&#xff08;兼容I2C模式&#xff09;。…

Docker搭建Redis哨兵集群

Redis提供了哨兵機制實現主從集群下的故障轉移&#xff0c;其中包含了對主從服務的檢測、自動故障恢復和通知。 1.環境 centos7、redis6.2.4、MobaXterm 目的&#xff1a; 搭建redis的主從同步哨兵集群&#xff08;一主一從三哨兵&#xff09; 2.步驟 1.主從集群的搭建 主從…

暑假Python基礎整理 --異常處理及程序調試

異常概念 在程序運行過程中&#xff0c;經常會遇到各種各樣的錯誤&#xff0c;這些錯誤統稱為“異常”。如下表是Python常見的異常與描述&#xff1a; 異常描述NameError嘗試訪問一個未聲明的變量引發錯誤IndexError索引超出序列范圍引發錯誤IndentationError縮進錯誤ValueErr…

k8s-高級調度(二)

目錄 Taint(污點)與Toleration(容忍) Taint&#xff08;污點&#xff09;&#xff1a;節點的排斥標記 Toleration&#xff08;容忍&#xff09;&#xff1a;Pod的適配聲明 與節點親和性的對比 警戒(cordon)和轉移(drain) Cordon&#xff1a;節點隔離&#xff08;阻止新 Po…

基于OpenCV的深度學習人臉識別系統開發全攻略(DNN+FaceNet核心技術選型)

核心技術選型表 技術組件版本/型號用途OpenCV DNN4.5.5人臉檢測FaceNet (facenet-pytorch)0.5.0人臉特征提取MiniConda最新版Python環境管理PyTorch1.8.0FaceNet運行基礎OpenVINO2021.4模型加速(可選)SSD Caffe模型res10_300x300高精度人臉檢測 一、環境準備與項目搭建 1.1 M…

【AI News | 20250714】每日AI進展

AI Repos 1、All-Model-Chat All Model Chat 是一款為Google Gemini API家族設計的網頁聊天應用&#xff0c;支持多模態輸入&#xff08;圖片、音頻、PDF等&#xff09;和多種模型&#xff08;如Gemini Flash、Imagen&#xff09;。它提供了豐富的自定義功能&#xff0c;包括高…

C 語言(二)

主要包括變量與常量、數據類型、存儲方式、數制轉換以及字符處理等內容一、變量與常量在 C 語言中&#xff0c;變量是用來存儲數據的命名空間&#xff0c;它會在內存中分配地址。例如&#xff1a;int i; i 12345; 其中 i 是變量&#xff0c;12345 是常量。常量表示在程序運行過…

原型繼承(prototypal inheritance)的工作原理

這是一個非常常見的 JavaScript 問題。所有 JS 對象都有一個__proto__屬性&#xff0c;指向它的原型對象。當試圖訪問一個對象的屬性時&#xff0c;如果沒有在該對象上找到&#xff0c;它還會搜尋該對象的原型&#xff0c;以及該對象的原型的原型&#xff0c;依次層層向上搜索&…

OpenCV 視頻處理與攝像頭操作詳解

1. 引言大家都來寫OpenCV&#x1f60a;&#xff0c;學的好開心&#xff01;2. 視頻基礎與OpenCV簡介2.1 視頻的定義視頻&#xff08;Video&#xff09;是由一系列靜態圖像&#xff08;幀&#xff09;以一定速率連續播放形成的動態影像。其本質是利用人眼的視覺暫留效應&#xf…

Agentic AI 的威脅與緩解措施

原文&#xff1a;https://www.aigl.blog/content/files/2025/04/Agentic-AI—Threats-and-Mitigations.pdf AI Agent 的定義 1. 定義與基礎 智能代理&#xff08;Agent&#xff09;的定義&#xff1a; 智能代理是一種能夠感知環境、進行推理、做出決策并自主采取行動以實現特定…

ArrayList列表解析

ArrayList集合 ArrayList 的底層是數組隊列&#xff0c;相當于動態數組。與 Java 中的數組相比&#xff0c;它的容量能動態增長。在添加大量元素前&#xff0c;應用程序可以使用ensureCapacity操作來增加 ArrayList 實例的容量。這可以減少遞增式再分配的數量。 ArrayList 繼承…

《戀與深空》中龍和蛇分別是誰的代表

在《戀與深空》宏大而神秘的世界觀中&#xff0c;每一個符號都蘊含著深意。當玩家們熱議“龍”和“蛇”這兩種強大而古老的生物究竟代表著誰時&#xff0c;所有的線索都默契地指向了同一個名字——秦徹。 他不僅是力量與權威的象征“惡龍”&#xff0c;也是背負著宿命與糾葛的“…