-1-
B GIÁO D C VÀ ĐÀO T O
Đ I H C ĐÀ N NG
NGUY N VĂN HU
NGHIÊN C U XÂY D NG CHƯƠNG TRÌNH
TÍCH H P X LÝ CH VI T T T, GÕ T T
Chuyên ngành: KHOA H C MÁY TÍNH
Mã s : 60.48.01
TĨM T T LU N VĂN TH C SĨ K THU T
ĐÀ N NG - Năm 2012
-2-
Cơng trình đư c hồn thành t i
Đ I H C ĐÀ N NG
Ngư i hư ng d n khoa h c: TS. Huỳnh Công Pháp
Ph n bi n 1: ………………………………….
Ph n bi n 2: ………………………………….
Lu n văn ñư c b o v t i H i ñ ng ch m Lu n văn t t
nghi p th c sĩ k thu t h p t i Đ i h c Đà N ng vào
ngày … tháng … năm 2012
* Có th tìm hi u lu n văn t i:
- Trung tâm Thông tin - H c li u, Đ i h c Đà N ng
- Trung tâm H c li u, Đ i h c Đà N ng.
-3M
Đ U
1. Lý do ch n ñ tài
Trong nh ng năm g n ñây, cu c s ng xã h i (cơng nghi p, nơng
nghi p, văn hố xã h i...) phát tri n r t m nh m v m i m t, lu ng
thơng tin tăng nhanh, vì v y trong ngơn ng nói cũng như ngơn ng
vi t, hi n tư ng nói t t, vi t t t tr nên r t ph bi n. Đi u này ñáp
ng ñư c yêu c u ti t ki m th i gian, gi y bút nhưng cũng gây khó
hi u cho ngư i nghe, ngư i đ c.
Quy t c hình thành ch vi t t t (CVT) r t đa d ng. Có nh ng
CVT gi ng nhau ñ ch các s v t gi ng nhau và đư c c th gi i
cơng nh n cho dù tên g i c a m i nư c đ i v i s v t đó có khác
nhau. Ví d : Ký hi u các nguyên t hố h c, các đơn v đo lư ng
theo h SI... Có nh ng CVT hình thành do l y tr n v n m t vài ch
trong c c m ch tên g i. Có nhi u trư ng h p m t tên g i trong
nguyên ng nghĩa có đ n vài tên vi t t t khác nhau ho c ngư c l i
m t CVT l i ñư c dùng ñ ch nhi u tên g i ngun ng khác nhau.
Tình hình trên đã gây khơng ít khó khăn cho ngư i s d ng. Chính vì
lý do này, vi c nghiên c u xây d ng kho d li u CVT ñư c phân lo i
theo nhi u lĩnh v c là h t s c c n thi t, gi i quy t nhu c u tra c u, s
d ng CVT trong th c ti n, góp ph n quan tr ng trong vi c phát tri n
các h th ng tra c u, h tr vi c di n gi i nghĩa chính xác giúp NSD
x lý văn b n có t vi t t t ñư c thu n l i. CVT ñư c s d ng nhi u
trong lĩnh v c nghiên c u, qu n lý, khai thác và xu t b n n i dung,
gi ng d y và h c t p hi u qu .
-4Trong q trình so n th o trên máy tính chúng ta thư ng g p
nhi u t , c m t ñư c l p ñi l p l i nhi u l n mà v n ph i gõ ñi gõ
l i. Đi u này ñã gây ra khơng ít phi n tối và t n r t nhi u th i gian
c a ngư i so n th o. Trong MS Word, ta cũng có th đ nh nghĩa
CVT và gõ t t nh s d ng tính năng “AutoCorrect Options”. Tuy
nhiên ta khơng dùng đư c nh ng t vi t t t ñã ñư c ñ nh nghĩa này
trong các chương trình khác như là FrontPage, Excel, Access,
WordPad, Notepad, skype, yahoo,…cũng ñang ch y trên Windows.
D li u CVT dùng ñ h tr vi c gõ t t r t h n ch , không có s n
trong lúc c n s d ng nên m i khi có nhu c u thì ph i ñ nh nghĩa
trư c. Ph n m m Unikey cũng h tr tính năng này nhưng cũng r t
h n ch và khó s d ng, chưa h tr đư c tính đa ng và đa nghĩa
c a CVT. Ngồi ra cũng có m t vài ng d ng khác ñã nghiên c u v
v n ñ này như ñ tài “Nghiên c u tích h p mơi trư ng, cơng c và
k thu t tìm ki m, qu n lý ch vi t t t.” Lu n văn th c sĩ k thu t
Khoa h c máy tính, c a B ch Như Nguy n (2007). Nhưng nhìn
chung nh ng ng d ng đó cịn t n t i nh ng h n ch như:
•
Chưa t ch c đư c kho d li u CVT ña ng và ña nghĩa đ y
đ
•
Chưa khai thác và ng d ng đư c kho d li u CVT ña ng ,
ña nghĩa ñ y ñ giúp ngư i s d ng gõ t t trên t t c các môi
trư n so n th o như Microsoft Ofice, Notepad, WordPad,
chát và các chương trình ng d ng khác
V y v n đ ñ t ra là:
-5•
Làm th nào đ t p h p đư c kho d li u CVT chu n g m
nhi u lĩnh v c và đa ngơn ng . H tr ngư i dùng tra c u
CVT m t cách nhanh chóng và chính xác
•
Làm th nào đ khai thác kho d li u CVT ña ng , ña nghĩa
trên giúp ngư i dung gõ t t trên các ng d ng
Vì th , tơi ch n đ tài “Nghiên c u xây d ng chương trình tích
h p x lý ch vi t t t, gõ t t” ñ nghiên c u gi i quy t nh ng v n
ñ trên.
2. M c đích nghiên c u
Xây d ng cơ s d li u CVT v i các gi i pháp thu th p,
phân lo i CVT theo lĩnh v c, chuyên ngành. Xây d ng ñư c m t h
th ng qu n lý, tra c u CVT và gõ t t trong so n th o văn b n và
trong các ng d ng khác. H tr tra c u ph c v công tác nghiên
c u, h c t p.
3. Đ i tư ng và ph m vi nghiên c u
Đ i tư ng nghiên c u bao g m: Quy t c c u thành và d u
hi u đ c trưng CVT, cơng c xây d ng và qu n lý cơ s d li u
CVT, ngơn ng l p trình xây d ng ng d ng khai thác CVT, tài li u,
văn b n, website có t vi t t t. Ph m vi nghiên c u g m: Nghiên c u
CVT, nghiên c u k thu t tìm ki m CVT, k thu t x lý thơng đi p
trên windows.
4. Phương pháp nghiên c u
Phương pháp chính là nghiên c u qua ngu n tư li u ñã xu t
b n, các bài báo đăng trên các t p chí khoa h c, sưu t p các tư li u
-6liên quan ñ n v n ñ ñang nghiên c u trên m ng Internet. Xây d ng
ng d ng, ki m th kho d li u CVT, ñánh giá k t qu
ng d ng
trong tìm ki m CVT và gõ t t.
5. Ý nghĩa khoa h c và th c ti n c a lu n văn
Nghiên c u các công ngh tiên ti n, xây d ng t ng th và
chu n hóa h th ng CVT góp ph n phát tri n ngôn ng . Làm cho văn
b n đư c tinh g n, có tính th m m cao, th i gian so n th o ñư c rút
ng n, h n ch ph i thao tác nhi u trên bàn phím, s d ng ít ký t
nh t có th , khơng dành nhi u không gian cho vi c lưu tr nh m
nâng cao ch t lư ng n i dung so n th o.
6. B c c c a lu n văn
Lu n văn ñư c t ch c thành 3 chương như sau:
Chương 1 - Lý thuy t t ng quan: Gi i thi u t ng quan các v n
ñ x lý văn b n, gi i thi u các v n đ liên quan đ n CVT, k thu t
tìm ki m trên văn b n b ng bi u th c chính quy, k thu t x lý thơng
đi p c a Windows. Trên cơ s đó, phân tích ñ xu t phương pháp
tìm ki m và c p nh t nh m ñ nh hư ng xây d ng cơ s d li u CVT.
Chương 2 - Xây d ng gi i pháp k thu t: L a ch n công c h
tr xây d ng cơ s d li u, xây d ng gi i pháp thu th p và c p nh t
d li u CVT t nhi u ngu n d li u khác nhau, xây d ng gi i pháp
tìm ki m CVT, k thu t gõ t t ti ng Vi t trong văn b n ph c v nhu
c u s d ng c a ngư i dùng.
-7Chương 3 - Xây d ng ng d ng: Trên cơ s phân tích các mơ
hình d li u, c u trúc các b ng d li u, xây d ng cơ s d li u CVT
ñ ng th i tri n khai xây d ng ng d ng khai thác CSDL CVT.
Chương 1
LÝ THUY T T NG QUAN
1.1 TÌM HI U V N Đ X LÝ VĂN B N
X lý thơng tin là q trình bi n đ i d li u t d ng này
thành d ng khác đ có th thu đư c thơng tin và tri th c. Trong giai
ño n ñ u, CNTT t p trung vào các d li u d ng s , bi u di n b i các
d ng ñư c c u trúc như các véc tơ (vector) hay các b ng. Trong hơn
n a th k phát tri n, CNTT d n d n “x lý” nhi u ki u d li u
khác, như hình nh, âm thanh, văn b n, ký hi u hình th c, đ th ,...
và g n ñây là nhi u ki u d li u ph c t p như d li u sinh h c
(genomic data). Phương pháp x lý cũng ngày càng phong phú, t
tính tốn đ n suy lu n, và nhi u ki u khác n a. X lý ngơn ng
chính là x lý thơng tin khi đ u vào là “d li u ngôn ng ” (d li u
c n bi n ñ i), t c d li u “văn b n” hay “ti ng nói”.
Hi n nay có nhi u bài tốn liên quan đ n lĩnh v c x lý văn
b n, sau đây tơi xin trình bày m t s bài tốn như sau:
•
Nh n d ng ch vi t (optical character recognition).
•
D ch t đ ng (machine translation).
•
Tóm t t văn b n (text summarization).
•
Tìm ki m thơng tin (information retrieval).
-8•
Trích ch n thơng tin (information extraction).
Trong ph m vi c a ñ tài, CVT là ñ i tư ng chính c n x lý.
Tìm ki m và nh n d ng CVT trong văn b n cũng là m t v n ñ thu c
lĩnh v c x lý văn b n. Nghiên c u v n ñ này giúp tơi tìm ra các
gi i pháp thích h p nh m xác ñ nh ñơn v t nào trong văn b n là
CVT.
1.2 NGHIÊN C U CH
VI T T T TI NG VI T
1.2.1 Nh ng quy ñ nh ch vi t t t ti ng Vi t
Khi s d ng CVT trong so n th o văn b n, chúng ta ph i
xem xét hai trư ng h p sau:
•
CVT đã có s n: CVT trong trư ng h p này CVT ñã ñư c
ñ nh nghĩa, minh gi i trư c đây ho c thơng d ng, nhi u
ngư i bi t, không m p m , khơng ph n nghĩa khi dùng; ho c
đã có quy ñ nh.
•
CVT chưa ñư c ñ nh nghĩa: Trong trư ng h p này chúng ta
c n ñ nh nghĩa CVT ngay khi xu t hi n l n ñ u trong văn
b n theo d ng sau:
<C m t ñ y ñ > (<Ch vi t t t>)
1.2.2 Các quy t c t o l p ch vi t t t ti ng Vi t
1.2.2.1 T o l p theo ti ng
Trong d ng này, l n lư t các ch cái ñ u c a các ti ng trong
c m t c n vi t t t s ñư c ghép l i v i nhau t o thành CVT.
Ví d : KCNC
=
Khu Cơng ngh cao
-91.2.2.2 T o l p theo t
T t c các ch cái ñ u tiên c a m i t có nghĩa trong c m t c n vi t
t t ñư c ghép l i v i nhau t o thành CVT.
Ví d :
TĐC
Tiêu chu n Đo lư ng Ch t lư ng
=
1.2.2.3 T o l p theo ghép âm hay ghép ti ng
CVT thành l p b ng cách l y l n lư t các âm chính ñ u, hay
ph n âm d ñ c, d nh n bi t c a m i t trong c m t c n vi t t t,
sau đó ghép chúng l i thành CVT.
Ví d : VINASA =
Hi p h i ph n m m Vi t Nam
1.2.2.4 T o l p theo ch cái vi t ph
Tương t như d ng ghép theo ti ng ho c d ng ghép theo t
có nghĩa nhưng có s d ng kèm theo ch cái ph khơng vi t hoa.
Ví d :
ThS
=
Th c sĩ
1.2.2.5 T o l p theo ch vi t t t ti ng nư c ngoài
Theo d ng th c này chúng ta mư n nguyên CVT ti ng nư c
ngoài (ch y u là ti ng Anh) ñ s d ng cho CVT ti ng Vi t.
Ví d :
SMS
=
Short Message Service
1.2.2.6 T o l p theo t thu c lĩnh v c khoa h c
CVT dùng trong các lĩnh v c khoa h c, ñư c xem như là các
quy ñ nh, ký hi u. Đây là cách s d ng ph bi n trong các ngành
Toán h c, Hóa h c, V t lý,…
Ví d :
NaCl
= Natri Clorua (mu i ăn)
- 10 1.2.2.7 T o l p t phát
Là cách vi t t t không theo m t quy lu t, nguyên t c nào.
Ví d :
Bit rui
= Bi t r i
1.2.2.8 T o l p có chèn thêm ti ng nư c ngồi
Đây là d ng CVT đư c s d ng r t ph bi n trong tin nh n
SMS, chat, email, Twitter, ....
Ví d : Thanks U da nhac! = Cám ơn b n ñã nh c!
1.2.2.9 T o l p theo ph âm c a ti ng
Ph âm ñ u ch :
B ng 1.1. Qui ư c thay ph âm đ u ch
Cách thay
Ví d
F thay PH
Fai
=
Phai
K thay KH
Ki ko kan =
Khi kho khan
Ph âm cu i ch :
B ng 1.2. Qui ư c thay ph âm cu i ch
Cách thay
Ví d
G thay NG
Kog mog =
Khong mong
H thay NH
Tah
Tanh
=
1.2.3 Các d ng s d ng ch vi t t t
Trong so n th o văn b n, CVT n m trong d u ngo c ñơn
(…) ngay sau c m t vi t ñ y ñ khi CVT ñư c ñ nh nghĩa l n ñ u.
- 11 1.2.4 Phân lo i ch vi t t t theo lĩnh v c
Qua quá trình nghiên c u, tìm hi u thơng tin v CVT trên
các tài li u văn b n, báo cáo khoa h c, các trang báo ñi n t và ñ c
bi t là các t đi n CVT trên m ng, tơi đã phân tách thành nhi u lo i
như: giáo d c ñào t o, quân s , y h c, khoa h c và công ngh , tài
nguyên và môi trư ng, cơng ngh thơng tin và truy n thơng, tài
chính, t ch c chính tr xã h i.
1.3 BI U TH C CHÍNH QUY
Bi u th c chính quy (ti ng Anh: regular expression, vi t t t là
regexp, regex hay regxp) là m t chu i miêu t m t b các chu i
khác, theo nh ng quy t c cú pháp nh t đ nh.
Qua phân tích các ñ c ñi m c a BTCQ, tôi nh n th y r ng
BTCQ mang đ n kh năng tìm ki m ký t ho c xâu ký t m nh m
cho b t c công c x lý văn b n nào, có th xem đây là m t chu i
các ký t ñ c bi t giúp xây d ng nên các m u tìm ki m (search
pattern). Trong ph m vi tìm ki m và nh n d ng CVT trong văn b n,
các m u đó có vai trị r t h u hi u. K t h p v i các d ng th c s
d ng CVT hi n nay, ta có th t o nên các m u tìm ki m giúp xác
đ nh ñơn v t nào trong văn b n là CVT.
1.4 K THU T X
LÝ THÔNG ĐI P TRÊN WINDOWS
1.4.1 C a s và các thơng đi p
1.4.1.1 Hook x lý thơng đi p
Hook là k thu t đi u khi n thơng đi p (message-handling)
giúp cho ng d ng có th cài đ t m t th t c ñ ñi u khi n lu ng
- 12 thơng đi p và ti n hành x lý các thơng đi p đó trư c khi thơng đi p
đó đi t i c a s đích.
1.4.1.2 S d ng hook
Ta có th cài đ t th t c hook vào chu i hook b ng vi c g i
hàm SetWindowsHookEx..Hook nên ñư c b ñi n u như không c n
thi t n a b ng cách s d ng hàm UnhookWindowsHookEx.
1.4.2 K thu t hook giao di n l p trình ng d ng
1.4.2.1 Thay đ i các b ng nh p xu t c a hook
Hook API (application programming interface) là k thu t
dùng ñ ch n các l i g i hàm API trong Windows và chuy n hư ng
sang m t hàm khác do ngư i dùng xây d ng.
1.4.2.2 Chèn l nh vào giao di n l p trình ng d ng
Đ hook hàm API ta có th thay đ i tr c ti p trên hàm đó,
phương pháp chèn l nh JMP (Jump) vào ñ u hàm API (Overwriting
the start of the hooked API with a JMP instruction) là m t k thu t
ph bi n ñư c s d ng ñ hook API b ng cách thay ñ i ño n mã ñ u
c a hàm API thành l nh nh y t i hàm thay th .
Chương 2
XÂY D NG GI I PHÁP K THU T
2.1 PHƯƠNG PHÁP C P NH T CH
VI T T T
2.1.1 C p nh t t giao di n chương trình
Chương trình cung c p giao di n nh p li u, thông tin ñư c
nh p tr c ti p và t ñ ng đư c ki m tra tính h p l trư c khi ñưa vào
cơ s d li u.
- 13 2.1.2 C p nh t t t p lưu tr ch vi t t t
Chương trình cung c p giao di n th c hi n ñ c toàn b n i
dung c a t p ch a danh m c các CVT t trư c, sau đó th c hi n tách
t đ trích xu t CVT và n i dung di n gi i c p nh t vào CSDL.
Thu t toán th c hi n
Input: T p d li u ngu n d ng *.Doc
Output: Danh m c CVT ñư c lưu vào b ng CVT_TAM
B t ñ u:
1. Xác ñ nh t p ngu n ch a danh m c CVT
2. M file d li u ngu n
3. Kh i t o các bi n trung gian tencvt, diengiai
4. Xác đ nh v trí c a b ng ch a CVT
5. Repeat
- Đ c t ng dòng trong t p ngu n
- Tách chu i, ñưa n i dung vào các bi n trung gian
TenCVT, DiengiaiTV, DiengiaiTA
- M k t n i cơ s d li u
- G i hàm Insert_Data2(tencvt, diengiai) ñ lưu thơng
tin CVT vào CVT_TAM
Until Đ c h t t p
6.
Đóng t p
7.
Đóng k t n i cơ s d li u
K t thúc.
Hàm Insert_Data2(tencvt, diengiai) chèn d li u vào b ng
CVT_TAM và tr v k t qu th c hi n.
- 14 2.1.3 C p nh t t trang Web
D a vào c u trúc lưu tr d li u c a HTML, ñ c bi t là các
c p th <table>, <tr> và <td>, tôi s d ng các m u so kh p c a bi u
th c chính quy trích l c ra các CVT m i ñ b sung vào CSDL.
2.1.4 C p nh t s d ng các ti n ích c a SQL Server
2.2.4.1 Máy ch liên k t
Máy ch liên k t (Linked Server) là gi i pháp cho phép liên
k t nhi u ngu n d li u v m t máy ch , ñ c bi t là các ngu n d
li u CVT có s n, cung c p m t lư ng d li u r t l n r t c n thi t
trong vi c làm giàu kho d li u CVT.
2.2.4.2 Trích rút d li u
K t rút d li u (Import data) là m t ti n ích c a SQL Server.
Đây cũng là gi i pháp giúp ta có th k t rút d li u t các ngu n d
li u CVT khác nhau. Phương pháp tìm ki m ch vi t t t.
2.1.5 Tìm ki m ch vi t t t s d ng phương pháp so kh p
D a vào phương pháp kh p t i ña (Maximum Matching MM), khi duy t m t ño n văn b n ta ch c n ch n ra các t có nhi u
kh năng là CVT. Sau đó so kh p v i t ñi n CVT ho c cơ s d
li u CVT có trư c. Như v y xác su t tìm ki m chính xác CVT là r t
cao và hi u qu . Sau ñây là m t thu t tốn tìm ki m CVT trong t p
văn b n s d ng phương pháp so kh p:
Thu t toán th c hi n:
Input:
Các t p văn b n
- 15 Output: T p k t qu là danh sách lưu tr n i dung bao g m t ng s
CVT, n i dung di n gi i và t n su t s d ng c a t ng CVT.
B t ñ u:
Xác ñ nh t p ngu n hàm s tương tác
1.
2.
•
•
3.
M t p ngu n
Đ c n i dung t p gán vào bi n chuoiluutru
Kh i t o bi n danhsachlk
Đ c n i dung trong chuoiluutru
Repeat
-
Đ c t ng ño n văn b n trong chuoiluutru
-
Gán n i dung vào bi n line
-
Đ c n i dung trong line
•
Ki m tra c m t theo các tiêu chí nh n d ng
CVT
+ Tách n i dung tìm CVT và di n gi i
+ G i hàm sokhop(cvt) ñ so kh p CVT
v i t ñi n ho c CSDL CVT, n u ñúng
Gán vào Tencvt
Gán di n gi i vào Diengiai
•
Ki m tra Tencvt có t n t i trong danhsachlk,
n u có
- Tăng bi n Solansudung, ngư c l i:
- T o m i danhsachlk
- Tăng bi n ñ m Solansudung
- Gán Tencvt, Diengiai, Solansudung
vào bi n danhsachlk
Until ñ c cho ñ n h t chuoiluutru
4.
Đóng t p ngu n
- 16 5.
6.
Lưu vào t p ketqua
•
•
M t p ketqua
Đ c n i dung Tencvt, Diengiai, Solansudung lưu
vào t p ketqua
Đóng t p ketqua
K t thúc.
Hàm ki m tra sokhop(cvt) có ch c năng ki m tra xem CVT
tìm đư c có t n t i trong CSDL CVT hay khơng ? N u có thì tr v
chu i k t qu ch a n i dung di n gi i, lo i CVT và ngơn ng c a
CVT đó. N u khơng thì tr v chu i r ng.
2.1.6 Tìm ki m ch vi t t t s d ng bi u th c chính quy
BTCQ r t quan tr ng và thư ng ng d ng trong các trình
biên t p văn b n và các ti n ích tìm ki m và x lý văn b n d a trên
các m u ñư c quy ñ nh. K t h p v i các phương pháp nh n d ng
CVT đư c trình bày t i m c các hình th c nh n d ng CVT trong
chương 1. Ta có th t o nên các m u tình ki m CVT r t d dàng và
xác xu t phát hi n CVT là r t l n.
2.1.7 Tìm ki m ch vi t t t t cơ s d li u
M c tiêu là tìm ki m t t c CVT cùng n i dung di n gi i
trong CSDL và th ng kê theo t ng lo i CVT. K thu t chính c a th
t c là s d ng phép truy v n “Select” và “Join” ñ thành l p câu truy
v n tìm t p k t qu mong mu n.
2.2 PHƯƠNG PHÁP GÕ T T TRONG VĂN B N
Phương pháp này d a vào các giao di n l p trình ng d ng
(API) c a Windows nh m đón b t t t c các ký t ñư c gõ t bàn
phím, sau đó x lý và tr v
ng d ng hi n hành n i dung di n gi i
- 17 c a CVT tìm đư c. Đây là phương pháp b o đ m NSD có th gõ t t
trong b t kỳ ng d ng nào c a Windows.
Thu t toán th c hi n:
Input: T p ký t nh p t bàn phím, T p văn b n *.txt ch a danh
sách CVT.
Output: Chu i ký t mô t di n gi i c a t vi t t t tìm đư c.
B t đ u:
1. Cài ñ t Hook b ng l nh SetWindowsHookEx
Kh i t o các bi n diengiai, cvt
2. Gõ ký t t bàn phím
•
S d ng HookedKeys đ nh n giá tr c a phím
•
Gán giá tr phím vào bi n cvt
•
S d ng Keys.Space đ th c hi n x lý
3. M t p danh sách các t vi t t t
Repeat
- Đ c t ng dòng n i dung hi n t i
- Tách l y ch vi t t t
- Ki m tra cvt = <t vi t t t tìm đư c>, n u có
+ Lưu di n gi i vào bi n diengiai
+ Thốt vịng l p
Until đ c h t t p
Đóng t p
4. Chèn n i dung CVT
•
S
d ng keybd_event((byte)Keys.Back, 0, 0,
UIntPtr.Zero) xóa t vi t t t
- 18 •
S d ng Clipboard.settext(diengiai) dán n i dung
bi n diengiai vào clipboard
5. H y b Hook b ng l nh UnhookWindowsHookEx
K t thúc.
Hook là m t k thu t tương đ i khó và ki n th c v nó cũng
khá r ng. Tuy nhiên, n u chúng ta mu n xây d ng ng d ng có can
thi p vào vi c x lý các thơng đi p c a h đi u hành thì hook là k
thu t không th thi u.
Chương 3
XÂY D NG
NG D NG
3.1 PHÂN TÍCH VÀ THI T K H TH NG
3.1.1 Mơ hình sơ đ dịng d li u (DFD)
Hình 3. 1. Mơ hình sơ đ dịng d li u (DFD)
- 19 3.1.2 Mơ hình c u trúc các th c th
Đ xây d ng CSDL CVT, Ta ph i xác ñ nh các ñ i tư ng d li u
c a ng d ng. Căn c vào yêu c u c a lu n văn, căn c vào các u
c u ch c năng c a chương trình, tơi xác ñ nh “Ch vi t t t” là ñ i
tư ng d li u chính c a CSDL. Bên c nh đó, các thơng tin liên quan
đ n CVT như: tác gi t o nên CVT, ngôn ng c a CVT, ngu n g c
c a CVT và CVT thu c lĩnh v c gì ? D a vào các danh t đó, tơi
ti p t c xác đ nh thêm các đ i tư ng liên quan mơ t các thơng tin v
CVT như sau:
• Tác gi t o nên CVT.
• Ngơn ng CVT.
• Ngu n g c xu t phát c a CVT.
• Lo i (lĩnh v c) c a CVT.
• CVT có cùng nghĩa.
Xác đ nh ñúng và ñ các ñ i tư ng d li u t o cơ s cho vi c
phân tích và thi t k cơ s d li u có th ch a m i thông tin CVT
ph c v
ng d ng khai thác sau này.
3.1.3 Mơ hình th c th k t h p
T nh ng th c th ñã xây d ng
trên và xét m i quan h gi a
các th c th ta có th xây d ng đư c mơ hình th c th k t h p như
sau:
- 20 -
Hình 3. 2. Mơ hình th c th k t h p
3.1.4 Thi t k c u trúc các b ng d li u ch vi t t t
Đ xây d ng mơ hình bi u di n CSDL CVT ti ng Vi t,
tôi l p các b ng bi u di n các thu c tính và ki u d li u CVT như
hình 3.3.
3.1.5 Thi t k mơ hình quan h d li u ch vi t t t
D a trên cơ s mơ hình logic d li u và c u trúc các b ng, tôi
thi t k CSDL CVT ti ng Vi t b ng h qu n tr CSDL SQL Server
có tên là CVT g m các b ng d li u sau:
•
CVT (mơ t ch vi t t t).
•
LOAICVT (mơ t lo i ch vi t t t).
•
TACGIA (mơ t ngư i t o CVT).
•
NGONNGU (mơ t ngơn ng c a CVT).
•
NGUONGOC (mô t ngu n g c c a CVT).
- 21 •
DONGNGHIA (mơ t CVT đ ng nghĩa).
Sơ đ quan h đư c bi u di n như hình sau
Hình 3. 3. Mơ hình quan h d li u CVT
3.2 XÂY D NG
NG D NG
3.2.1 T ng quan công c và thư vi n h tr l p trình
3.2.1.1 Cơ s d li u – H qu n tr cơ s d li u
3.2.1.2 DOT NET FrameWork
3.2.1.3 Visual studio 2005
3.2.2 Mơ hình ho t đ ng c a ng d ng
- 22 Mơ hình ho t đ ng c a chương trình bao g m c p nh t và khai thác
CVT đư c mơ t như hình dư i đây:
Hình 3. 4. Mơ hình ho t đ ng c a ng d ng
NSD có th khai thác d li u CVT v i các tính năng như: tra
c u và th ng kê CVT, tìm ki m CVT trên văn b n, gõ t t trong văn
b n, gõ t t trên thanh ñ a ch Internet, chat…
3.2.3 Các u c u và m c đích c a ng d ng
ng d ng đáp ng các m c đích sau đây:
•
Xây d ng cơ s d li u CVT.
•
Xây d ng các gi i pháp c p nh t t i ưu.
•
Xây d ng các gi i pháp tìm ki m.
•
Tích h p gõ t t ti ng vi t.
- 23 •
ng d ng có th ch y đ c l p trên máy ñơn, ho c ch y trên
nhi u máy trong m ng n i b nhưng cùng truy xu t đ n m t
CSDL chung.
•
ng d ng có giao di n d s d ng, thân thi n ngư i dùng, d
cài ñ t và kh năng ch u t i l n.
3.2.4 Các giao di n c a ng d ng
3.2.4.1 Giao di n chính
3.2.4.2 Giao di n c p nh t CVT
3.2.4.3 Giao di n c p nh t CVT t t p, trang Web
3.2.4.4 Giao di n biên t p, phân lo i CVT
3.2.4.5 Giao di n tra c u CVT
3.2.4.6 Giao di n tìm ki m, th ng kê CVT trong văn b n
Hình 3. 5. K t qu CVT tìm đư c trong t p văn b n
- 24 M c đích chính c a ch c năng này là xác ñ nh ñơn v t nào
trong văn b n là CVT. NSD ch n ñư ng d n đ n t p, kích ch n nút
“Tìm”, chương trình s t đ ng phân tích và đưa ra các đo n văn b n
có ch a CVT, danh sách các CVT, th ng kê s lư ng và hi u su t s
d ng c a t ng CVT.
3.2.4.7 Giao di n gõ t t
Chương trình đư c tích h p vào các ng d ng ch y trên mơi
trư ng Windows, tính năng
ng d ng gi ng như tính năng
Autocorrect trong Microsoft Word, nhưng thành ph n CVT đư c m
r ng thơng qua các l a ch n v lo i CVT trư c khi s d ng. Do s
d ng hook toàn c c nên ta có th
ng d ng gõ t t trong t t c các
ng d ng khác c a Windows.
Hình 3. 6. Giao di n ng d ng gõ t t
3.2.5 Cài ñ t ng d ng
ng d ng ñư c cài đ t trên các máy có c u hình: Pentium IV
tr lên, t c đ x lý c a CPU là 2 Ghz, B nh Ram 500 MB, ñĩa
c ng 20 GB.
ng d ng có th ch y trên máy ñơn, ho c trên nhi u
máy trong m ng LAN. Cơ s d li u ñư c cài trên máy có c u hình
- 25 cao, lưu trũ d li u và cung c p thông tin cho các ng d ng trên các
máy khác.
3.3 K T QU TH NGHI M NG D NG
Sau khi xây d ng và cài ñ t thành cơng, tơi đã ti n hành q
trình ki m th tính hi u qu c a ng d ng. Dang sách các tính năng
đã th nghi m: C p nh t CVT, tìm ki m CVT trong t p, gõ t t trong
so n th o văn b n, tra c u CVT.
K T LU N
Sau th i gian n l c nghiên c u, phân tích xây d ng đ tài
“Nghiên c u xây d ng chương trình tích h p x lý ch vi t t t,
gõ t t” tơi đã hồn thành và đáp ng các u c u cơ b n v vi c xây
d ng, c p nh t và khai thác kho CSDL CVT. Tôi xin chân thành cám
ơn th y giáo Huỳnh Công Pháp, b n bè và ñ ng nghi p ñã giúp tơi
hồn thành lu n văn này.
1. K T QU Đ T ĐƯ C C A LU N VĂN
•
Trình bày nhu c u s d ng CVT trong h c t p, nghiên c u.
Nêu lên các d ng th c t o l p, quy ñ nh s d ng CVT trong
th c ti n.
•
Xây d ng phương pháp gõ t t ti ng Vi t trong so n th o văn
b n và các ng d ng khác.
•
H tr tra c u, th ng kê ph c v h c t p, nghiên c u, gi ng
d y...