跳到主要內容

簡易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. 

Android 6.0 權限問題

因為總總原因,直到現在才重視這個問題 首先根據 官方文件所述 : 在Android 6.0 (API level 23) 之後分成兩種權限 一般權限(Normal permissions) 危險權限(Dangerous permissions) 列出危險權限的列表 Permission Group Permissions CALENDAR READ_CALENDAR WRITE_CALENDAR CAMERA CAMERA CONTACTS READ_CONTACTS WRITE_CONTACTS GET_ACCOUNTS LOCATION ACCESS_FINE_LOCATION ACCESS_COARSE_LOCATION MICROPHONE RECORD_AUDIO PHONE READ_PHONE_STATE CALL_PHONE READ_CALL_LOG WRITE_CALL_LOG ADD_VOICEMAIL USE_SIP PROCESS_OUTGOING_CALLS SENSORS BODY_SENSORS SMS SEND_SMS RECEIVE_SMS READ_SMS RECEIVE_WAP_PUSH RECEIVE_MMS STORAGE READ_EXTERNAL_STORAGE WRITE_EXTERNAL_STORAGE 不論一般權限與危險權限,都一樣必須在 AndroidManifest.xml 中使用 <uses-permission> 宣告 而最大的差異在於 危險權限必須另外執行請求權限的訊息框 。 附上在 Activity 實做的儲存權限範例: ... public final static int PERMISSION_CODE = 1 ; protected boolean isStoragePermissionGranted () { if (Build. VERSION . SDK_INT >= 23 ) { String permission = android. Man...

Android 檢查GPS

首先要記得有取得GPS的權限 <uses-permission android:name= "android.permission.ACCESS_FINE_LOCATION" /> 才能檢查GPS有無開啟的狀態 public boolean isGPSEnables () { LocationManager locationManager = (LocationManager) getSystemService(Context. LOCATION_SERVICE ); return locationManager. isProviderEnabled (LocationManager. GPS_PROVIDER ); } 純粹紀錄一下檢查GPS有無開啟的程式碼~