日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IK分词器详解

發布時間:2024/9/30 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IK分词器详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

IK分詞器插件

什么是 IK 分詞器

分詞:即把一段中文或者別的劃分成一個個的關鍵字,我們在搜索時候會把自己的信息進行分詞,會把數據庫中或者索引庫中的數據進行分詞,然后進行一個匹配操作,默認的中文分詞器是將每個字看成一個詞,比如"我愛技術"會被分為"我",“愛”,“技”,“術”,這顯然不符合要求,所以我們需要安裝中文分詞器IK來解決這個問題

IK提供了兩個分詞算法:ik_smart和ik_max_word

其中ik_smart為最少切分,ik_max_word為最細粒度劃分

下載安裝

同樣下載不說直接安裝.記得版本相同

解壓縮后拷貝到ElasticSearch的plugins文件夾下

ik 目錄

重啟ES

之前是沒有插件加載的

可以清晰的看到加載了 analysis-ik

也可以通過ES自帶的工具查看 命令行執行 ElasticSearch-plugin list

進入Kibana測試

先測試 ik_smart

最少劃分

GET _analyze {"analyzer": "ik_smart", "text": "天津理工大學" }

返回結果

{"tokens" : [{"token" : "天津","start_offset" : 0,"end_offset" : 2,"type" : "CN_WORD","position" : 0},{"token" : "理工大學","start_offset" : 2,"end_offset" : 6,"type" : "CN_WORD","position" : 1}] }

最細粒度劃分

GET _analyze {"analyzer": "ik_max_word", "text": "天津理工大學" }

返回結果

{"tokens" : [{"token" : "天津","start_offset" : 0,"end_offset" : 2,"type" : "CN_WORD","position" : 0},{"token" : "理工大學","start_offset" : 2,"end_offset" : 6,"type" : "CN_WORD","position" : 1},{"token" : "理工大","start_offset" : 2,"end_offset" : 5,"type" : "CN_WORD","position" : 2},{"token" : "理工","start_offset" : 2,"end_offset" : 4,"type" : "CN_WORD","position" : 3},{"token" : "工大","start_offset" : 3,"end_offset" : 5,"type" : "CN_WORD","position" : 4},{"token" : "大學","start_offset" : 4,"end_offset" : 6,"type" : "CN_WORD","position" : 5}] }

若發現結果沒有區別, 而且他不認為 查詢的詞 比如 鑫澤 是一個詞, 這就是一個問題,則么辦呢?

這種自己需要的詞,需要自己加到字典中

IK分詞器增加自己的配置

我們找到IK的配置文件, 位于ik/config/IKAnalyzer.cfg.xml

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"></entry><!--用戶可以在這里配置自己的擴展停止詞字典--><entry key="ext_stopwords"></entry><!--用戶可以在這里配置遠程擴展字典 --><!-- <entry key="remote_ext_dict">words_location</entry> --><!--用戶可以在這里配置遠程擴展停止詞字典--><!-- <entry key="remote_ext_stopwords">words_location</entry> --> </properties>

修改后的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">xinze.dic</entry><!--用戶可以在這里配置自己的擴展停止詞字典--><entry key="ext_stopwords"></entry><!--用戶可以在這里配置遠程擴展字典 --><!-- <entry key="remote_ext_dict">words_location</entry> --><!--用戶可以在這里配置遠程擴展停止詞字典--><!-- <entry key="remote_ext_stopwords">words_location</entry> --> </properties>

xinze.dic

鑫澤

測試

GET _analyze {"analyzer": "ik_smart", "text": "超級喜歡鑫澤" }

結果

{"tokens" : [{"token" : "超級","start_offset" : 0,"end_offset" : 2,"type" : "CN_WORD","position" : 0},{"token" : "喜歡","start_offset" : 2,"end_offset" : 4,"type" : "CN_WORD","position" : 1},{"token" : "鑫澤","start_offset" : 4,"end_offset" : 6,"type" : "CN_WORD","position" : 2}] }

文章已上傳gitee https://gitee.com/codingce/hexo-blog
項目地址: https://github.com/xzMhehe/codingce-java

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的IK分词器详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。