跳到主要內容

簡易N-gram函式 - JAVA版

最近實在太容易用到N-gram,因此把自己用Java寫個簡單的N-gram的程式放上來,之後就可以直接copy-paste,因為我還頗懶的XD。
為了方便,所以回傳型態是用ArrayList。
如果不希望有重複字串,那就把回傳型態改成LinkedHashSet吧。

/** 
 * 從一個句子裡取得Ngram List 
 * @param sentence 要進行Ngram的句子 
 * @param max 最多要多少字數 
 * @param min 最少要多少字數 
 * @return */ 
public ArrayList< String > getNgram(String sentence,int max, int min){ 
    ArrayList< String > ngram_list = new ArrayList(50); 
    for(int termLength = min ; termLength <= max ; termLength++){ 
        for(int i = 0 ; i+termLength-1 < sentence.length() ; i++){ 
            ngram_list.add(sentence.substring(i, i+termLength));
        } 
    } 
    ngram_list.trimToSize(); 
    return ngram_list; 
}

不過這程式也只僅供參考,畢竟這也只是隨手寫出來的,效率應該還可以再提升!

留言

這個網誌中的熱門文章

What is phpize

What is phpize According to the PHP official document : The phpize command is used to prepare the build environment for a PHP extension. If you need to build such an extension that from github or another code repositories, you can use  build tools to perform the build manually.