Java調(diào)用IK分詞器進(jìn)行分詞方式,封裝工具類
使用場景
在大數(shù)據(jù)的場景下,一般用于統(tǒng)計(jì)關(guān)鍵詞出現(xiàn)的頻率,因此我們需要對(duì)一些數(shù)據(jù)文本進(jìn)行分詞,得到我們想要的關(guān)鍵詞。
導(dǎo)入依賴
<dependency> <groupId>com.janeluo</groupId> <artifactId>ikanalyzer</artifactId> <version>2012_u6</version> </dependency>
分詞的使用
ArrayList<String> result = new ArrayList<>(); // 創(chuàng)建一個(gè)reader對(duì)象 StringReader reader = new StringReader(keyword); // 創(chuàng)建一個(gè)分詞對(duì)象 IKSegmenter ikSegmenter = new IKSegmenter(reader, true); Lexeme next = ikSegmenter.next(); while ( next != null ) { // 獲取分詞的結(jié)果 result.add(next.getLexemeText()); next = ikSegmenter.next(); } return result;
分詞結(jié)果:
- useSmart = true時(shí)的結(jié)果,一個(gè)詞不會(huì)重復(fù)出現(xiàn)
- useSmart = false時(shí)的結(jié)果,詞會(huì)多次出現(xiàn)
顯然useSmart = false效果好點(diǎn)
封裝工具類
package com.cw.util; import org.wltea.analyzer.core.IKSegmenter; import org.wltea.analyzer.core.Lexeme; import java.io.IOException; import java.io.StringReader; import java.util.ArrayList; import java.util.List; /** * @author CW * @version 1.0 * @date 2023/3/1 8:41 * @desc ik分詞工具類 */ public class IKUtil { /** * 分詞 * @param keyword 需要分詞的文本 * @return */ public static List<String> splitKeyWord(String keyword) throws IOException { ArrayList<String> result = new ArrayList<>(); // 創(chuàng)建一個(gè)reader對(duì)象 StringReader reader = new StringReader(keyword); // 創(chuàng)建一個(gè)分詞對(duì)象 IKSegmenter ikSegmenter = new IKSegmenter(reader, false); Lexeme next = ikSegmenter.next(); while ( next != null ) { // 獲取分詞的結(jié)果 result.add(next.getLexemeText()); next = ikSegmenter.next(); } return result; } }
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于Spring AMQP實(shí)現(xiàn)消息隊(duì)列的示例代碼
Spring AMQP作為Spring框架的一部分,是一套用于支持高級(jí)消息隊(duì)列協(xié)議(AMQP)的工具,AMQP是一種強(qiáng)大的消息協(xié)議,旨在支持可靠的消息傳遞,本文給大家介紹了如何基于Spring AMQP實(shí)現(xiàn)消息隊(duì)列,需要的朋友可以參考下2024-03-03Spring?Cloud?Alibaba?Nacos兩種檢查機(jī)制
這篇文章主要介紹了Spring?Cloud?Alibaba?Nacos兩種檢查機(jī)制,作為注冊(cè)中心不止提供了服務(wù)注冊(cè)和服務(wù)發(fā)現(xiàn)功能,它還提供了服務(wù)可用性監(jiān)測的機(jī)制,下面我們就一起進(jìn)入文章了解具體詳情吧2022-05-05一文教你如何使用AES對(duì)接口參數(shù)進(jìn)行加密
這篇文章主要是想為大家介紹一下如何使用AES實(shí)現(xiàn)對(duì)接口參數(shù)進(jìn)行加密,文中的示例代碼簡潔易懂,具有一定的借鑒價(jià)值,需要的小伙伴可以了解一下2023-08-08Idea中如何查看SpringSecurity各Filter信息
這篇文章主要介紹了Idea中如何查看SpringSecurity各Filter信息,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01java中hashmap的底層數(shù)據(jù)結(jié)構(gòu)與實(shí)現(xiàn)原理
Hashmap是java面試中經(jīng)常遇到的面試題,大部分都會(huì)問其底層原理與實(shí)現(xiàn),本人也是被這道題問慘了,為了能夠溫故而知新,特地寫了這篇文章,以便時(shí)時(shí)學(xué)習(xí)2021-08-08