HanLP Analysis for Elasticsearch
基於 HanLP 的 Elasticsearch 中文分詞外掛,核心功能:
相容 ES 5.x-7.x ;
內建詞典,無需額外配置即可使用;
支援使用者自定義詞典;
支援遠端詞典熱更新(待開發);
內建多種分詞模式,適合不同場景;
拼音過濾器(待開發);
簡繁體轉換過濾器(待開發)。
版本
外掛版本和 ES 版本一致,直接下載對應版本的外掛進行安裝即可。
· 外掛開發完成時,最新版本已經為 6.5.2 了,所以個人只對典型的版本進行了測試;
· 5.X 在 5.0.0 、 5.5.0 版本進行了測試;
· 6.X 在 6.0.0 、 6.3.0 、 6.4.1 、 6.5.1 版本進行了測試;
· 7.X 在 7.0.0 版本進行了測試。
安裝使用
下載編譯
git clone 對應版本的程式碼,開啟 pom.xml 檔案,修改 <elasticsearch.version>6.5.1</elasticsearch.version> 為需要的 ES 版本;然後使用 mvn package 生產打包檔案,最終檔案在 target/release 資料夾下。
打包完成後,使用離線方式安裝即可。
使用預設詞典
· 線上安裝: .\elasticsearch-plugin install
· 離線安裝: .\elasticsearch-plugin install file:///FILE_PATH/elasticsearch-analysis-hanlp-A.B.C.zip
離線安裝請把 FILE_PATH 更改為 zip 檔案路徑; A 、 B 、 C 對應的是 ES 版本號。
使用自定義詞典
預設詞典是精簡版的詞典,能夠滿足基本需求,但是無法使用感知機和 CRF 等基於模型的分詞器。
HanLP 提供了更加完整的詞典,請按需下載。
詞典下載後,解壓到任意目錄,然後修改外掛安裝目錄下的 hanlp.properties 檔案,只需修改第一行
root=D:/JavaProjects/HanLP/
為 data 的父目錄即可,比如 data 目錄是 /Users/hankcs/Documents/data ,那麼 root=/Users/hankcs/Documents/ 。
使用自定義配置檔案
如果你在其他地方使用了 HanLP ,希望能夠複用 hanlp.properties 檔案,你只需要修改外掛安裝目錄下的 plugin.properties 檔案,將 configPath 配置為已有的 hanlp.properties 檔案地址即可。
內建分詞器
分析器 (Analysis)
· hanlp_index :細粒度切分
· hanlp_smart :常規切分
· hanlp_nlp :命名實體識別
· hanlp_per :感知機分詞
· hanlp_crf : CRF 分詞
· hanlp :自定義
分詞器 (Tokenizer)
· hanlp_index :細粒度切分
· hanlp_smart :常規切分
· hanlp_nlp :命名實體識別
· hanlp_per :感知機分詞
· hanlp_crf : CRF 分詞
· hanlp :自定義
自定義分詞器
外掛有較為豐富的選項允許使用者自定義分詞器,下面是可用的配置項:
案例展示:
# 建立自定義分詞器
PUT my_index
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"type": "hanlp",
"algorithm": "viterbi",
"enableIndexMode": "true",
"enableCustomDictionary": "true",
"customDictionaryPath": "",
"enableCustomDictionaryForcing": "false",
"enableStopWord": "true",
"stopWordDictionaryPath": "",
"enableNumberQuantifierRecognize": "true",
"enableNameRecognize": "true",
"enableTranslatedNameRecognize": "true",
"enableJapaneseNameRecognize": "true",
"enableOrganizationRecognize": "true",
"enablePlaceRecognize": "true",
"enableTraditionalChineseMode": "false"
}
}
}
}
}
# 測試分詞器
POST my_index/_analyze
{
"analyzer": "my_analyzer",
"text": " 張惠妹在上海市舉辦演唱會啦 "
}
分詞速度(僅供參考)
藉助 _analyze API ( 1 核 1G 單執行緒),透過改變分詞器型別,對 2W 字的文字進行分詞,以下為從請求到返回的耗時:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524777/viewspace-2642121/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Elasticsearch Analysis 分析器Elasticsearch
- Elasticsearch整合HanLP分詞器ElasticsearchHanLP分詞
- 09.elasticsearch-analysis-normalizer應用ElasticsearchORM
- Maven編譯elasticsearch-analysis-ik報錯Maven編譯Elasticsearch
- RISK ANALYSIS
- Flutter Analysis OptionsFlutter
- HanLP Android 示例HanLPAndroid
- Statistics and Data Analysis for BioinformaticsORM
- Web Scraping & Data AnalysisWebAPI
- pytorch contributing - matmul analysisPyTorch
- An Analysis of Sequential Recommendation Datasets
- A Security Analysis Of Browser Extensions
- MSE 609 Quantitative Data Analysis
- Slither: A Static Analysis Framework For SmartFramework
- pyhanlp:hanlp的python介面HanLPPython
- 案例2問答機器人報TypeError: Class com.hankcs.hanlp.HanLP is not found機器人ErrorHanLP
- ECON705 Housing Affordability Analysis
- Exercise 5: Field data acquisition and analysisUI
- Problems in Mathematical Analysis (American First Edition)
- Analysis of Set Union Algorithms 題解Go
- Fishing for Hackers: Analysis of a Linux Server AttackLinuxServer
- SAP QM Certificate of Analysis – Incoming Certificate
- Oracle Respones-Time Analysis ReportsOracle
- EBIS4043 Big Data Analysis and ApplicationsAPP
- CS209A Analysis of the Olympic Historical Dataset
- what-i-learned-from-analysis-vuepressVue
- R語言-Survival analysis(生存分析)R語言
- 在 Maven 專案中使用 HanLPMavenHanLP
- java分詞工具hanlp介紹Java分詞HanLP
- Eclipse myeclipse下配置HanLP的教程EclipseHanLP
- HanLP 自然語言處理 for nodejsHanLP自然語言處理NodeJS
- HanLP使用教程——NLP初體驗HanLP
- HanLP中文分詞Lucene外掛HanLP中文分詞
- 【Elasticsearch】Elasticsearch 索引模板Elasticsearch索引
- python_for_data_analysis_2nd_chinese_versionPython
- ME5701 Linear stability analysis of Mathieu equation
- In-depth analysis of the comparison between AT and XA of distributed transactions
- Linux Troubleshooting 超實用系列 - Disk AnalysisLinux