Ansj中文分词Java开发词性分类
生活随笔
收集整理的這篇文章主要介紹了
Ansj中文分词Java开发词性分类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
用ansj分詞后,只提取滿足提交的詞性的單詞。
Ansj下載地址:http://maven.ansj.org/org/ansj/ansj_seg/
輔助包NLP下載地址:http://maven.ansj.org/org/nlpcn/nlp-lang/
這兩個包引入Java工程中即可,具體代碼如下:
package csc.ansj;import java.util.Iterator;import org.ansj.domain.Result; import org.ansj.domain.Term; import org.ansj.splitWord.analysis.ToAnalysis;import csc.util.Logs;public class ChnWordSeg {//中文分詞public String chnSeg(String content){String strResult="";try{//分詞Result segWords=ToAnalysis.parse(content); //提取分詞Iterator<Term> segTerms=segWords.iterator();StringBuffer strbuf=new StringBuffer();while (segTerms.hasNext()) { Term tm=segTerms.next();String strNs=tm.getNatureStr();//獲取詞性if(strNs=="null") continue;char cns=strNs.charAt(0);//取詞性第一個字母//http://nlpchina.github.io/ansj_seg/content.html?name=詞性說明if(cns=='n' || cns=='t' || cns=='s' ||//名詞、時間詞、處所詞cns=='f' || cns=='v' || cns=='a' || //方位詞、動詞、形容詞cns=='b' || cns=='z' || cns=='r' ||//區別詞、狀態詞、代詞strNs.equals("mq") || cns=='q' || cns=='d' ||//數詞、數量詞、副詞cns=='y' || cns=='x' || strNs.equals("en")){//語氣詞、字符串x、英文//介詞p、連詞c、助詞u、嘆詞e、擬聲詞o、標點符號w、前綴h、后綴k不獲取 ,數詞m只獲取其中mq數量詞 String strNm=tm.getName();strbuf.append(strNm+"|");}//strbuf.append("\r\n");//換行}strResult=strbuf.toString();strResult=strResult.substring(0,strResult.length()-1);//截取最后一個字符|}catch (Exception e) {System.out.println(e.getMessage());Logs.writeLogs("中文分詞失敗!");} return strResult;}public static void main(String args[]) {String str = "歡迎使用ansj_seg,(ansj中文分詞)在這里如果你遇到什么問題都可以聯系我.我一定盡我所能.幫助大家.ansj_seg更快,更準,更自由!" ;//System.out.println(ToAnalysis.parse(str).toString());ChnWordSeg cws=new ChnWordSeg();System.out.println(cws.chnSeg(str));} }
總結
以上是生活随笔為你收集整理的Ansj中文分词Java开发词性分类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全文检索工具迅搜的安装和体验(可用于自建
- 下一篇: 算法导论之多项式与快速傅里叶变换