1.导入依赖
<dependency>
<groupId>org.ansj</groupId>
<artifactId>ansj_seg</artifactId>
<version>5.1.3</version>
</dependency>
2.实现Ansj分词
/**
* 使用Ansj分词
*/
public class AnsjTest {
public static void test() {
//只关注这些词性的词
Set<String> expectedNature = new HashSet<String>() {{
add("n");add("v");add("vd");add("vn");add("vf");
add("vx");add("vi");add("vl");add("vg");
add("nt");add("nz");add("nw");add("nl");
add("ng");add("userDefine");add("wh");
}};
String str = "虎年春节的脚步越来越近啦! “原年人”与Z世代的崛起,让预制菜成为年夜饭新宠。与往年预定餐厅的年夜饭不同,2022年春节预制菜销量走俏,线下商超卖场、线上各大餐饮品牌纷纷推出年夜饭预制菜套餐。" ;
Result result = ToAnalysis.parse(str); //分词结果的一个封装,主要是一个List<Term>的terms
System.out.println(result.getTerms());
List<Term> terms = result.getTerms(); //拿到terms
System.out.println(terms.size());
for(int i=0; i<terms.size(); i++) {
String word = terms.get(i).getName(); //拿到词
String natureStr = terms.get(i).getNatureStr(); //拿到词性
if(expectedNature.contains(natureStr)) {
System.out.println(word + ":" + natureStr);
}
}
}
public static void main(String[] args) {
test();
}
}
3.效果