2007年5月31日 星期四

口琴自學的相關網站

2007年4月13日 星期五

變數的宣告

JavaScript 的區域性變數通常是在函數中宣告,必須使用 var 宣告之;全域性變數則無須使用 var 宣告。

  • 區域性變數僅於所在函數中有效。
  • 全域性變數於該文件的所有 <script> 標籤中均有效。

範例:

<script>
var arms = 2   //arms是全域變數
legs = 2   //legs是全域變數
function init() {
 var heads = 1  //heads是區域變數
 eyes = heads * 2 //eyes是全域變數
}
init()
document.write("手臂有",arms,"隻<BR>")
document.write("腿有"+legs+"條<BR>")
document.write("頭有",heads,"個<BR>")
document.write("眼睛有"+eyes+"粒<BR>")
</script>

上例只會印出:

手臂有2隻
腿有2條

因為當執行到「頭有 1 個」的時候,JavaScript 會發生錯誤,而無法繼續執行下去!

  • 在函數外宣告的變數,無論是否使用保留字 var 宣告,均稱為全域變數。
  • 在函數內宣告的變數,如使用 var 宣告,則為區域變數;未使用 var 宣告,則仍視為全域變數。

function 定義

function 為結構化程式設計的基礎,定義的 function 代表一段副程式。利用關鍵字 function 宣告函式名稱。 function 函式名稱(引數) {敘述} 若有多個引數(argument),須用逗號隔開。引數的個數可以用以下變數來取得: 函數名稱.arguments.length 引數的值可以用以下變數取得: 函數名稱.arguments[x]

2007年2月10日 星期六

CKIP Auto Tagger

說明

依據 CKIP 標準製作的 POS tagger。

安裝方法和注意事項

  1. 解壓縮 CKIP_AutoTagger。要注意的是,該目錄路徑中不能包含有空白字元。如 D:\Tools\CKIP_AutoTagger\CKIPAT
  2. 環境變數 PATH 中加入解壓縮後的目錄。如:SET PATH=%PATH%;D:\Tools\CKIP_AutoTagger\CKIPAT
  3. 接著在下載 Utility.dll 檔,並將之加入到專案的參考中
  4. 在程式中可以以如下的方式呼叫:

Token[] segments = Utility.CKIPSeg.Instance().Segment(input);

每個 Token 物件的 PartOfSpeech 屬性即為其 POS。

注意

AutoTag 會掉字元!比如:

將不會產生對應的 POS。另外,下列字元會被轉換(原字元:轉換輸出為):

  • —:-

2007年1月18日 星期四

如何在 .NET 環境下編譯 CRF++

請依照下列的步驟:

  1. 將原始碼匯入後,在 project property settting 內設定: C/C++ → Precompiled Header → Create/Use Precompiled Header,將其設定為“Not Using Precompiled Header”
  2. 定義下列的標頭(自行 include 建立的標頭檔,或是將該標頭檔命名為 config.h,並加入 HAVE_CONFIG_H 的前處理器定義):
    • #define VERSION "0.43"
    • #define PACKAGE "crf++"
  3. 定義前處理器定義(Preprocessor Definitions):
    • HAVE_WINDOWS_H
    • _WIN32
  4. 最後,對於 crf_test 而言,若是你的程式碼遇到了 CreateFile 失敗的錯誤訊息,請在 mmap.h 原始碼中加上如下的轉換(約在 117 行):
// add by hongjie to convert char* string to LPCWSTR
int len = strlen(filename) + 1;
wchar_t *ucString = new wchar_t[len];
mbstowcs(ucString, filename, len);

hFile = CreateFile(ucString, mode1, FILE_SHARE_READ, 0,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
// marked by hongjie
/*hFile = CreateFile(filename, mode1, FILE_SHARE_READ, 0,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);*/

64 位元?

編譯成 64 bit 時,若是產生 << 錯誤,請開啟 common.h 檔,並加入:

string_buffer& operator<<(size_t _n) { _UITOA(_n); }

當掉的原因列表

  1. 首先,請嘗試在產生的 feature file 尾端,加上三行空白,再去 train
  2. 檢查是否是記憶體不足的問題。
    • 若是在 64 位元電腦,請參考這篇文章
    • 若是在 32 位元的電腦上,且用的記憶體超過 2G,則必須在編譯時的 linker 選項中,加上 Enable Large Addresses 支援!另外要在開機選項中加上:
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /3GB