任意字符串NGram分词简易版

功能:输入一个字符串,拆成任意NGram:
输入字符串:今天是2014年4月7日15pm

  1. package task;   
  2.   
  3. public class testNGram {   
  4.     /**
  5.      * @param args  
  6.      * @author jacoxu  
  7.      * @date 2014/04/07 15:29  
  8.      */  
  9.     public static void main(String[] args) {   
  10.         String testStr = “今天是2014年4月7日15pm”;   
  11.         System.out.println(split2NGram(testStr,3));   
  12.         return;   
  13.     }   
  14.     private static String split2NGram(String testStr, int nGram) {   
  15.         if (nGram > testStr.length()) return testStr;   
  16.         StringBuffer str2NgramBuf = new StringBuffer();   
  17.         char[] strChar = testStr.toCharArray();   
  18.         for (int i=0; i<strChar.length-(nGram-1); i++){   
  19.             for (int j = 0; j < nGram; j++) {   
  20.                 str2NgramBuf.append(strChar[i+j]);   
  21.             }   
  22.             if (i==(strChar.length - nGram)) break;   
  23.             str2NgramBuf.append(“ ”);   
  24.         }   
  25.         return str2NgramBuf.toString();   
  26.     }   
  27. }  

输出结果:今天是 天是2 是20 201 014 14年 4年4 年4月 4月7 月7日 7日1 日15 15p 5pm

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>