發(fā)現(xiàn)一款很輕量好用的分詞器->結(jié)巴分詞器 分享給大家
不僅可以對常規(guī)語句分詞,還可以自定義分詞內(nèi)容,很強(qiáng)大??!
源碼地址??:https://github.com/huaban/jieba-analysis
簡單使用
如果是常規(guī)的語句,使用這種方式?jīng)]有問題,如果是復(fù)雜語句或帶有專業(yè)名詞的語句請看 下方“復(fù)雜語句分詞”
1.引入依賴
<dependency>
<groupId>com.huaban</groupId>
<artifactId>jieba-analysis</artifactId>
<version>1.0.2</version>
</dependency>
2.使用方法
@Test
public void demo() {
String content = "中華人民共和國萬歲,世界人民大團(tuán)結(jié)萬歲";
JiebaSegmenter segmenter = new JiebaSegmenter();
List<String> result = segmenter.sentenceProcess(content);
System.out.println("分詞:" + result );
//分詞結(jié)果->分詞:中華人民共和國 萬歲 世界 人民 大團(tuán)結(jié) 萬歲
}
復(fù)雜語句分詞
自定義分詞,適合對帶有專業(yè)名詞的語句分詞
問題復(fù)現(xiàn)
使用上方代碼如果我對“使用前對yb清洗后,將婦科凝膠推進(jìn)器伸入yd,將婦科凝膠推入yd深處。每日1次,每次1支。”分詞 ;
結(jié)果為:分詞:[使用, 前, 對, yb, 清洗, 后, ,, 將, 婦科, 凝膠, 推進(jìn)器, 伸入, yd, ,, 將, 婦科, 凝膠, 推入, yd, 深處, 。, 每日, 1, 次, ,, 每次, 1, 支, 。] ;
婦科凝膠是一個專業(yè)名詞,很顯然不符合我分詞的需求 另外我還想把每日1次和每次1支合并在一起
自定義分詞
@Test
public void demo() {
String content = "使用前對yb清洗后,將婦科凝膠推進(jìn)器伸入yd,將婦科凝膠推入yd深處。每日1次,每次1支。";
JiebaSegmenter segmenter = new JiebaSegmenter();
List<String> result = segmenter.sentenceProcess(content);
System.out.println("分詞:" + result);
//↓↓↓↓自定義分詞器↓↓↓↓↓
Path path = Paths.get("D:\\資料\\fkck.txt");
WordDictionary.getInstance().loadUserDict(path);
List<String> result2 = segmenter.sentenceProcess(content);
System.out.println("自定義分詞:" + result2);
//自定義分詞:[使用, 前, 對, yb, 清洗, 后, ,, 將, 婦科凝膠, 推進(jìn)器, 伸入, yd, ,, 將, 婦科凝膠, 推入, yd, 深處, 。, 每日1次, ,, 每次1支, 。]
//可以看到婦科凝膠和每日1次,每次1支都正確的進(jìn)行了分詞
}
fkck.txt內(nèi)容
婦科凝膠 1 n
每日1次 1 num
每次1支 1 num
格式為:一個詞占一行;每一行分三部分:詞語、詞頻(可省略)、詞性(可省略),用空格隔開,順序不可顛倒。
去掉標(biāo)點符號
用正則表達(dá)式,把分詞后的結(jié)果中所有的標(biāo)點符號全部去除文章來源:http://www.zghlxwxcb.cn/news/detail-420391.html
result.toString().replaceAll("[\\pP‘’“”]", "")
覺得好用點個贊吧??????文章來源地址http://www.zghlxwxcb.cn/news/detail-420391.html
到了這里,關(guān)于【Java】jieba結(jié)巴分詞器自定義分詞詞典 超詳細(xì)完整版的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!