文獻處理實驗室 專案計畫

行政院國家科學委員會研究計畫案 1999年12月

搜文解字

技術規格資料

Page 1 of 3

計畫主持人:黃居仁  中央研究院語言所

壹、搜文解字網站「搜詞尋字」使用技術資料

一、 原始檔案:語料庫(文字檔)

二、 硬體:

(一) NT Server 主要硬體設備規格如下:

  1. Intel Pentium II 450 雙CPU
  2. IBM 18.2G SCSI 硬碟兩顆
  3. 3.128Mb記憶體
  4. Viewsonic17吋螢幕

(二) 影像掃描器(照片及圖片)

三、 軟體

  1. 網頁開發工具: Perl5.004版; Flash3.0; Javascript; Photoshop 5.0PhotoImpact 4.0; Frontpage 98
  2. 斷詞技術開發工具: gcc on UNIX; BCB 3.0
  3. 文字放大鏡開發工具: Microsoft Visual C++ 6.0
  4. 資料庫內容建檔: Microsoft Access 97; Microsoft Word 97; WordPad;UltraEdit Professional Text/Hex Editor 6.00c
  5. 檔案壓縮: WinZip 6.3
  6. 上傳資訊: WS_FTP、CuteFTP
  7. 瀏覽器: Internet Explore 5.0; Netcape Communicator 4.5

四、系統技術簡介:

(一) 搜詞尋字網頁建置

語料庫建立:

  1. 自動斷詞, 自動標記詞性
  2. 人工校對
  3. 詞頻分析
  4. 列表

大量語料庫查詢:

  1. 設計查詢方式
  2. 設計查詢入口
  3. 設計使用者介面

(二) CKIP 中文自動斷詞系統1.0版

[CKIP Auto-pagger]

  • 功能

  1. 中文自斷詞功能。
  2. 中文詞類自動標記功能。

使用者可以根據自己的需求,而選擇不同的詞典,做為斷詞及標記系統的參考。

在本版中,內建有中央研究院詞庫小組的中文詞庫,以及從中央研究院平衡語料庫中所抽取的額外詞條約二萬目詞),外加定量詞及重疊詞構詞律,以供使用者斷詞時之使用。

  • 安裝說明:
  1. 系統需求:
    系統必須在 MS Windows 95/ MS Windows 98/ MS Windows NT 4.0的作業系統下執行。
  2. 解壓縮:
    winzip 或是 pkunzip 把 autotag1_0.zip 解壓縮到一個暫存的目錄中。例如 ”C:\Windows\Temp\autotag” 安裝好之後就可以將該目錄刪除)。
  3. 執行安裝程式:
    解壓縮之後,請在該目錄中,執行setup.exe執行檔。然後,依照安裝程式的指示進行安裝。
  • 使用說明:
    1. 執行主程式
    2. 載入欲斷詞之語料
    3. 選擇詞典
    4. 設定輸出選項
    5. 執行斷詞
    6. 儲存斷詞結果

(三) 文字放大鏡

  • 功能:

  1. 即時查詢:
    即時顯示游標所指位置開始之詞的注音和解釋在主視窗中採長詞優先策略顯示。
  2. 簡單查詢:
    輸入所欲查詢之字詞, 得到結果將顯示在文字放大鏡主視窗中。
  • 安裝說明:
    1. 系統需求:
    2. 系統必須在 MS Windows NT 4.0的作業系統下執行。

    3. 解壓縮:
    4. winzip 或是 pkunzip 把 autotag1_0.zip 解壓縮到一個暫存的目錄中。例如 ”C:\WordMagnifier。

    5. 執行GetString.exe即可使用
  • 使用說明:
  1. 執行主程式GetString.exe
  2. 即時查詢:
    在螢幕下方有文字放大鏡的綠色icon, 將之點選即會聽到啤一聲, icon色轉紅即可開始使用即時查詢功能, 將游標移至欲查詢字詞上即可。
  3. 簡單查詢:
    可在文字放大鏡主視窗上之查詢方式下拉式選單中選取簡單查詢一項,在欄位中填入所欲查詢字詞即可。
  • 技術探討
  1. 研究問題:
  2. (1) 如何取得游標在哪個window,以及在此window中的位置。
    我們要做的第一件事情,就是隨時知道滑鼠指標道底現在在哪個window的上方,並且指在它的哪個位置。它的難度在於,一但滑鼠指標移開了我們的程式window之外,就不會收到訊息了,如此它移動到誰身上,我們就不得而知了。

    (2) 而在WIN32的GUI環境之下,每個window中的「字」都是利用DC device context) 以「畫」的方式畫出來,不像是在DOS的文字模式之下,將要秀的字,填到顯示記憶體中,而能夠清鬆地讀出來到底螢幕上秀了些什麼。所以,在WIN32下要知道一個window中,便是一個困難的問題了。

    (3) 在WIN32中,當一個程式要執行時,系統會產生一個process,並在其中產生一個主要的thread來。當這個process中的thread都結束後,此process也會隨之結束。而每一個process都是被分配在一個獨立的4G bytes的空間中執行,為了安全性的考量,各個process互不干擾,所以要從另一個process中的window將資料讀出來,就變得有些困難。

  1. 解決方法:

(1) 呼用SetTimer)向系統要求請每一段時間送WM_TIMER的message給我們的程式。

(2) 當程式收到WM_TIMER時,便利用GetCursorPos)取得目前指標的位置。

(3) 將指標位置傳入WindowFromPoint)及ScreenToClient),便可以到它的所在window及window中所指的位置。

註1:這是目前本程式實作的做法,有許多的即時翻譯軟體採用這個方式以隨時取得滑鼠座標。因為每一小段時間便要測試一次,如果timer間隔太小,會變得沒有效率;timer間隔太大,又不夠精準。


Page 1 of 3
上一頁

回目錄

下一頁

文獻處理實驗室