赞
踩
最近接到的项目里有一个门户网站智能客服功能,找了一个开源的jar包,我在这里封装一些方法和DEMO以便大家使用
import me.midday.FoolNLTK; import me.midday.lexical.AnalysisResult; import me.midday.lexical.Entity; import me.midday.lexical.LexicalAnalyzer; import me.midday.lexical.Word; import java.util.ArrayList; import java.util.List; /** * @Description: 分词处理工具 */ public class WordCutUtils { /** * 获取分词数组 * @param text * @return */ public static List<String> wordCutToString(String text){ List<String> str = new ArrayList<>(); List<List<Word>> words = wordCut(text); words.forEach((ws)-> ws.forEach((w)-> str.add(w.toString()))); return str; } /** * 分词 * @param text * @return */ public static List<List<Word>> wordCut(String text){ LexicalAnalyzer lexicalAnalyzer = FoolNLTK.getLSTMLexicalAnalyzer(); return lexicalAnalyzer.cut(text); } /** * 词性标注 * @param text * @return */ public static List<List<Word>> wordPos(String text){ LexicalAnalyzer lexicalAnalyzer = FoolNLTK.getLSTMLexicalAnalyzer(); return lexicalAnalyzer.pos(text); } /** * 实体识别 * @param text * @return */ public static List<List<Entity>> wordNer(String text){ LexicalAnalyzer lexicalAnalyzer = FoolNLTK.getLSTMLexicalAnalyzer(); return lexicalAnalyzer.ner(text); } /** * 分词,词性,实体识别 * @param text * @return */ public static List<AnalysisResult> wordAnalysis(String text){ LexicalAnalyzer lexicalAnalyzer = FoolNLTK.getLSTMLexicalAnalyzer(); return lexicalAnalyzer.analysis(text); } }
public static void main(String[] args){ WordCutUtils w = new WordCutUtils(); String text = "个人怎么样转入转出呢?为什么还有list?好奇怪。我想去马尔代夫"; System.out.println("---------0-----------------"); // 分词 转成string System.out.println(w.wordCutToString(text).toString()); System.out.println("---------1-----------------"); // 分词 ->得到数据 System.out.println(w.wordCut(text).toString()); System.out.println("---------2-----------------"); // 词性标注 System.out.println(w.wordPos(text).toString()); System.out.println("---------3-----------------"); // 实体识别 System.out.println(w.wordNer(text).toString()); System.out.println("---------4-----------------"); // 分词,词性,实体识别 System.out.println(w.wordAnalysis(text).toString()); }
---------0-----------------
[个人, 怎么样, 转入, 转出, 呢, ?, 为什么, 还有, list, ?, 好, 奇怪, 。, 我, 想, 去, 马尔代夫]
---------1-----------------
[[个人, 怎么样, 转入, 转出, 呢, ?, 为什么, 还有, list, ?, 好, 奇怪, 。, 我, 想, 去, 马尔代夫]]
---------2-----------------
[[个人/n, 怎么样/r, 转入/v, 转出/v, 呢/y, ?/ww, 为什么/r, 还有/v, list/nx, ?/ww, 好/d, 奇怪/v, 。/wj, 我/r, 想/v, 去/v, 马尔代夫/ns]]
---------3-----------------
[[马尔代夫|location_29_32]]
---------4-----------------
[words: 个人/n 怎么样/r 转入/v 转出/v 呢/y ?/ww 为什么/r 还有/v list/nx ?/ww 好/d 奇怪/v 。/wj 我/r 想/v 去/v 马尔代夫/ns entities:马尔代夫|location_29_32 ]
链接: https://download.csdn.net/download/qq_36757824/15420655
maven包依赖:
<!-- 处理分词 -->
<dependency>
<groupId>me.midday</groupId>
<artifactId>JFoolNLTK</artifactId>
<version>1.0</version>
</dependency>
听说点赞的都去大厂了~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。