2011年10月5日 星期三

中文斷詞系統使用

在文字探勘中斷詞斷字是資料處理的重要步驟,英文句子我們可以藉由空白取得句中的每個單字,但中文句子因為沒有分隔符號所以我們無法藉由程式自動化處理取得句中的字或詞,所幸中研院有研發中文斷詞系統,本篇將介紹如何申請及使用

首先我們先連結到中文斷詞系統的網址


進入畫面後,我們可以看到左方選單有個線上服務申請的連結,點選後右方畫面此時會更新並出現按此申請的字樣


填寫相關資訊並勾選我同意本服務條款及前述注意事項後按下送出按鈕


接著進入填寫相關資訊時所留的電子信箱,此時會收到啟動確認信函,點撃信件中的此處即完成服務申請


由於中文斷詞系統是經由TCP Socket傳送相關資料,我們必須撰寫Socket Client程式或直接使用中文斷詞系統網站上的斷詞服務客戶程式,這裡我們只介紹斷詞服務客戶程式,首先我們可以看到網頁左方有個線上資源連結,點選後右方會出現下載斷詞服務客戶程式(console)字樣,點選連結下載即可


下載後解壓縮我們可以得到下面的目錄及檔案


其中ckipsocket.propeties是設定檔,裡面記載著中文斷詞系統的IP、通訊埠、帳號、密碼...等,
帳號及密碼是之前申請服務時所填寫的申請帳號及申請密碼,host及port請不要變更這二項是固定的,更詳細的說明請參酌README.txt


在目錄Text中有二個資料夾,input資料夾所儲放的是要送往中文斷詞系統進行斷詞處理的文件,而文件的個數可以是一個或多個,output資料夾則是中文斷詞系統處理後回傳的結果文件,結果文件內容是以全型空白作為詞與詞的分隔符號,至於是否可以自行定義目錄結構或目錄名稱,答案是可以的,我們可以參考test.bat的內容
CkipClient.exe ckipsocket.propeties Text\input Text\output
CkipClient.exe是主程式
ckipsocket.propeties是設定檔
Text\input是預設的input資料夾
Text\output是預設的output資料夾

最後我們以財政部2011-11-10新聞稿「民眾檢舉逃漏稅應提出明確具體事證」部份內容並刪除標點符號作為我們實驗裡input的資料












然後執行test.bat
































接著我們會在output資料夾看到與input資料相同檔名的文件,以下為文件內容















每個詞後面是詞類標記,而(N)一般來說代表名詞,詳細詞類標記可至中文斷詞系統裡的詞類標記列表下載

2011年9月22日 星期四

淺談資料庫實體檔案搬移(3)

延續上篇現在我們來看第三種方法
方法三:利用T-SQL語法
首先我們利用T-SQL語法查詢Northwind資料庫的相關資料


--database_id DB的ID
--name 邏輯名稱
--physical_name 實際檔案儲存位置
SELECT database_id, name, physical_name
FROM sys.master_files
WHERE database_id = DB_ID('Northwind');


從查詢結果我們可以得知Northwind資料庫的DB ID、邏輯名稱及實際檔案儲存位置,接著我們要變更實際檔案儲存位置,由C:\SQL Server 2000 Sample Databases目錄改為D:\SQL Server 2000 Sample Databases目錄,執行以下語法可以完成目錄變更


--變更檔案儲存位置
ALTER DATABASE Northwind
MODIFY FILE (NAME = Northwind, FILENAME = 'D:\SQL Server 2000 Sample Databases\Northwind.mdf');

ALTER DATABASE Northwind
MODIFY FILE (NAME = Northwind_log, FILENAME = 'D:\SQL Server 2000 Sample Databases\Northwind_log.ldf');

這裡要注意的是完成語法只是代表系統目錄已修改Northwind資料庫的檔案路徑,但實際檔案還是要自己將Northwind.mdf及Northwind_log.ldf從C:\SQL Server 2000 Sample Databases目錄移至D:\SQL Server 2000 Sample Databases目錄


為了能搬移檔案我們執行資料庫離線語法

USE master
--設定離線
ALTER DATABASE Northwind SET OFFLINE


執行後我們才可以搬移Northwind.mdf及Northwind_log.ldf到D:\SQL Server 2000 Sample Databases目錄,搬移完成後再執行資料庫在線語法


USE master
--設定在線
ALTER DATABASE Northwind SET ONLINE

最後我們再利用語法檢查


--database_id DB的ID
--name 邏輯名稱
--physical_name 實際檔案儲存位置
SELECT database_id, name, physical_name
FROM sys.master_files
WHERE database_id = DB_ID('Northwind');


至於Detach/Attach與ALTER DATABASE的不同可點此參考,最後還是再提醒讀者這一系列的發文只針對單純的個人使用環境不適用於複雜營運中的資料庫。




淺談資料庫實體檔案搬移(2)

延續上篇我們現在來看第二種方法
方法二:利用備份、還原方式
整個流程是先備份Northwind資料庫再刪除Northwind資料庫,刪除Northwind資料庫的目的在於移除C:\SQL Server 2000 Sample Databases目錄下的NORTHWND.MDF及NORTHWND.LDF,接著我們建立同名資料庫並將路徑選擇在D:\SQL Server 2000 Sample Databases目錄,最後再將備份檔還原,以下為操作說明及圖示,首先選取Northwind資料庫,按滑鼠右鍵選取[工作(T)]並點選[備份(B)...]




接著我們為備份檔命名及指定存放路徑








接著我們刪除原先的Northwind資料庫


再新增同名資料庫,並將路徑指定於D:\SQL Server 2000 Sample Databases目錄




此時我們可以看到D:\SQL Server 2000 Sample Databases目錄下產出Northwind.mdf及Northwind_log.ldf



接著我們再將備份檔還原到新建的Northwind資料庫,先點選Northwind資料庫接著按滑鼠右鍵選取[工作(T)],選取[工作(T)]後再選取[還原(R)],最後點選[資料庫(D)]


還原來源選取D:\SQL Server 2000 Sample Databases目錄的備份檔




最後只要選取[選項]頁面並勾選[覆寫現有的資料庫]再按[確定]鈕即可




如果我們的實體磁碟機有二顆以上,在備份時可將備份檔指定放在資料庫所在磁碟之外的磁碟,可加速備份及還原主要能加速的原因是減少硬碟I/O的爭用。


下篇

2011年9月19日 星期一

淺談資料庫實體檔案搬移(1)

撰寫這篇的原因起於同學在使用MS SQL上的問題,同學的實驗環境中資料庫實體檔案是儲存在C磁碟槽,但目前C磁碟槽剩餘空間不足,無法應付後續資料的成長,所以想將資料庫搬移至D磁碟槽,因此我提出了三個搬移方式,至於運作於商業環境的資料庫使用者,則請忽略此篇文章,因為商業環境的資料庫搬移需要更細膩的策略這裡不探討,底下為Demo環境及三個搬移方式說明:

OS:Windows XP Professional Service Pack 3
DBMS:SQL Server 2005 Developer Edition
DB:Northwind

方法一:利用卸離、附加方式
一般來說我們無法搬移正在使用中的使用者資料庫,必須先將資料庫卸離後才能移動資料庫,否則將會出現下圖的錯誤


我們要將Northwind資料庫的實體檔案從C:\SQL Server 2000 Sample Databases目錄移至D:\SQL Server 2000 Sample Databases目錄,首先我們先點選Northwind資料庫,再點選滑鼠右鍵並移至[工作]選擇[卸離]


當資料庫卸離後我們可以搬移檔案到D:\SQL Server 2000 Sample Databases目錄,搬移的檔案包含資料庫的mdf檔及ldf檔


搬移完成後,我們要附加資料庫,我們先點選[資料庫]再按右鍵選取[附加]

此時會出現挑選畫面,按下[加入(A)...]挑選D:\SQL Server 2000 Sample Databases目錄下的NORTHWND.MDF,最後按下[確定]



最後我們再來檢視一下附加後的Northwind資料庫檔案路徑,點選Northwind資料庫後,按滑鼠右鍵並選擇[屬性],在屬性視窗中選擇[檔案]頁面


下篇

2011年9月10日 星期六

IdeaSparks ASP.NET CoolControls簡介

IdeaSparks ASP.NET CoolControls是什麼東西?它是一個擴充自GridView的元件,
也意謂著在使用這個元件時基本的運用方式就像GridView一樣簡單使用,好處
就是學習門檻低,那到底IdeaSparks ASP.NET CoolControls提供什麼額外的功能
?這裡我引述作者官方blog所列功能
  1. Fixed column header, footer and pager
  2. Scrollable content
  3. User-resizeable column widths (new!)
  4. Maintains scroll position and column widths after a postback or callback (new!)
接著我會以Visual Studio 2010 Professional加上北風資料庫做Demo

Step 1:將IdeaSparx.CoolControls.Web.dll放到專案的Bin目錄,在這裡我的專案
類型是Web Site,放置Bin目錄後專案會自行參考


Step2:接著我們要為Toolbox增加CoolControls,首先我們點選Standard tab再按滑鼠右鍵,選擇Choose Items,選取之前放置在Bin目錄的IdeaSparx.CoolControls.Web.dll




Step3:將畫面切換至Design模式,並將CoolGridView托曳至畫面,這裡資料來源是使用SqlDataSource方式連結北風資料庫的Customers資料表



Step4:執行
IE 6

Firefox 6.0.2

Chrome 13.0.782.220

從畫面看來在主流瀏覽器顯示固定表頭功能都能正常運作,接著我們來嘗試Column Resize的功能,讓CompanyName及Country的欄位變寛靠近捲軸,這裡只顯示IE 6的結果

變更欄位寛度過程

變更後結果

至於其餘細節讀者可自行研究,底下是元件作者的blog