Xây dng h thng tìm kim thông tin ting Vit da trên các ch mc là các t ghép
Nguyn Th Thanh Hà - 0112215 81 Nguyn Trung Hiu - 0112216
<!ATTLIST Doc SIMILAR CDATA #REQUIRED>
<!ATTLIST Doc Words CDATA #REQUIRED>
• XSD
<?xml version='1.0'?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:datatypes">
<! contents of XML Schema document goes here >
<AttributeType name="DOC_ID" dt:type="string"/>
<AttributeType name="SIMILAR" dt:type="fixed.14.4"/>
<AttributeType name="Words" dt:type="int"/>
<AttributeType name="Name" dt:type="string"/>
<ElementType name="Doc" content="eltOnly">
<attribute type="DOC_ID"/>
<attribute type="SIMILAR"/>
<attribute type="Words"/>
</ElementType>
<ElementType name="CAU_HOI" content="eltOnly">
<attribute type="Name"/>
Xây dng h thng tìm kim thông tin ting Vit da trên các ch mc là các t ghép
Nguyn Th Thanh Hà - 0112215 82 Nguyn Trung Hiu - 0112216
<element type="Doc" minOccurs="1" maxOccurs="*"/>
</ElementType>
</Schema>
1.8.2 Tài liu XML
<CAU_HOI Name="t nc và con ngi Vit Nam">
<Doc DOC_ID="12" SIMILAR="8.44" Words="3" />
<Doc DOC_ID="13" SIMILAR="1.24" Words="1" />
:
void TachThanhCumTu (chui vn bn)
{
while(gp tc bit u tiên trong chui vn bn)
{
// Ct phn u thành mt cm t.
// Gán chui vn bn thành phn sau.
}
}
Xây dng h thng tìm kim thông tin ting Vit da trên các ch mc là các t ghép
Nguyn Th Thanh Hà - 0112215 85 Nguyn Trung Hiu - 0112216
Ví d :
chui u vào = “Thanh niên VN: ng lc cho nhng ý tng mi, tm nhìn mi.”
tr v ta s có 3 chui cm t :
chui 1 = “Thanh niên VN”
chui 2 = “ng lc cho nhng ý tng mi”
chui 3 = “tm nhìn mi”
- Hàm TachMangTieng( ) : tách mt cm t thành tng ting da vào khang
trng.
* Thut toán :
void TachMangTieng(cm t)
{
while(gp ký t khong trng u tiên trong cm t)
{
// Ct phn u thành mt ting.
// Gán cm t thành phn sau.
}
}
Ví d :
2.1.3.2 Các hàm chính :
- Hàm TaoXML( ) : chuyn mt tp tin vn bn có cu trúc thành tp tin XML
* Thut toán :
void TaoXML (tp tin vn bn)
{
To tp tin Xml lu li ni dung tp tin vn bn.
// Dch con tr tp tin
while(cha ht tp tin vn bn)
{
B1 : tìm t khóa DOC ly phn giá tr.
B2 : tìm t khóa TITLE ly phn giá tr.
B3 : tìm t khóa AUTHOR ly phn giá tr.
B4 : tìm t khóa DATE ly phn giá tr.
B5 : tìm t khóa NEW ly phn giá tr.
B6 : tìm t khóa CONTENT ly phn giá tr.
lu li phn giá tr vào tp tin Xml.
Xây dng h thng tìm kim thông tin ting Vit da trên các ch mc là các t ghép
Nguyn Th Thanh Hà - 0112215 88 Nguyn Trung Hiu - 0112216
}// ENDWHILE
}
- Hàm Tachtu( ) : c phn ni dung ca tp tin XML vn bn và dùng i
ng thuc lp CTachTuGhep trích thành các t.
* Thut toán :
string Tachtu (tp tin vn bn Xml)
{
- y phn ni dung (CONTENT) trong tp tin Xml
- Dùng i tng ca lp tách t ghép tách t.
- t qu tr v s là mt mng cha các t riêng bit.
}
DocID nào ó xem kt qu tách t và tn s ca mi t trong tài liu ó. Sau khi
chn mt DocID s có giao din nh sau :
Hình 6-6 Màn hình chi tit tách t
Xây dng h thng tìm kim thông tin ting Vit da trên các ch mc là các t ghép
Nguyn Th Thanh Hà - 0112215 91 Nguyn Trung Hiu - 0112216
- Hàm x lý TachTu_Click( ) : hàm này s tách t tt c các tp tin c chn trong
ListBox2.
2.2 Các lp trong quá trình lp ch mc
2.2.1 các lp
Hình 6-7 S lp lp ch mc
Xây dng h thng tìm kim thông tin ting Vit da trên các ch mc là các t ghép
Nguyn Th Thanh Hà - 0112215 92 Nguyn Trung Hiu - 0112216
2.2.2 p lp ch mc
Hình 6-8 Lp lp ch mc
u vào ca lp lp ch mc là các tp tin tài liu ã c tách t và u ra s là
p tin ch mc tài liu. Nó s làm nhim v tính tn s, trng s ca t trong tài liu
sau ó s lu các thông tin này li thành tp tin Xml ch mc tài liu.
2.2.2.1 Ý ngha ca các bin thành phn :
• sl : i tng thuc lp CstopList kim tra t có nm trong danh
sách StopList hay không.
2.2.2.2 Các hàm chính :
- Hàm TinhTanSo( ) : tính s ln xut hin ca t trong tài liu.
* Thut toán :
int TinhTanSo(string Tu, string MaTL)
{
- T mã tài liu xác nh c tên tp tin cha ni dung ca tài
liu.
- Duyt tu n cui vn bn ta tìm t khóa cn tìm, nu
B4 : Cp nht li trng s tòan b tp tin Inverted.
}
- Hàm CapNhatTrongSo() : Sau khi thêm tài liu mi vào trng s s
không còn chính xác na nên ta phi cp nht li trng s.
* Thut toán :
void CapNhatTrongSo()
{
- Duyt qua tng t trong tp tin Inverted.
- Tính s tài liu cha tó (s nút con ca nó)
- Tính tng s tài liu.
- Cp nht li thuc tính trng s (gi hàm TinhTrongSo)
}
2.2.3 p giao din to mi ch mc
Hình 6-9 Lp giao din to mi ch mc
p này s có các i tng h tr giao din cho ngi s dng lp ch mc,
o ra tp tin Inverted mi
2.2.3.1 Ý ngha ca các bin thành phn :
Xây dng h thng tìm kim thông tin ting Vit da trên các ch mc là các t ghép
Nguyn Th Thanh Hà - 0112215 95 Nguyn Trung Hiu - 0112216
• lcm : i tng thuc lp lp ch mc.
2.2.3.2 Màn hình giao din to mi ch mc :
Hình 6-10 Màn hình to mi ch mc
• txtDuongDan : cha ng dn n các tp tin ã c tách t.
• btnDuongDan : chn ng dn n các tp tin ã c tách t.
• ListBox1 : cha các tp tin Xml trong ng dn ca txtDuongDan
• ListBox2 : cha các tp tin Xml c chn lp ch mc.
• btnLeft, btnRight : chuyn các tp tin qua li gia 2 ListBox
Xây dng h thng tìm kim thông tin ting Vit da trên các ch mc là các t ghép
• btnCapNhat : chng trình bt u cp nht ch mc.
- S kin btnCapNhat_Click( ) : dùng i tng lcm (ca lp lp ch mc)
p nht ch mc cho tt c các tp tin trong ListBox2, các tp tin nu ã c
p ch mc ri thì chng trình tng b qua.
2.3 Các lp trong quá trình tìm kim
2.3.1 các lp
Hình 6-13 S lp tìm kim
Xây dng h thng tìm kim thông tin ting Vit da trên các ch mc là các t ghép
Nguyn Th Thanh Hà - 0112215 99 Nguyn Trung Hiu - 0112216
2.3.2 p tìm kim
Hình 6-14 Lp x lý tìm kim
Lp CTimKiem s có nhim v tách t câu hi, loi b các t trong danh sách
StopList, sau ó tìm các t khóa ca câu hi trong tp tin Inverted xác nh các tài
liu liên quan n câu hi, cui cùng là tính tng quan gia các tài liu vi câu
i, sp xp tng quan gim dn và hin th cho ngi s dng.
2.3.2.1 Ý ngha ca các bin thành phn:
• ttg : ây là i tng ca lp tách t ghép dùng tách t câu hi.
• sl : ây là i tng ca lp CstopList dùng kim tra các t trong
câu hi có nm trong danh sách StopList không.
2.3.2.2 Các hàm chính :
- Hàm TachTuCauHoi( ) : hàm này nhm mc ích tách câu hi thành các t
riêng bit. Ta dùng mt i tng thuc lp CTachTuGhep tách t câu hi. Kt qu
tr v là mt chui cha các tã c tách ta s lu vào mt tp tin CauHoi.xml
trong th mc CauHoi.
Xây dng h thng tìm kim thông tin ting Vit da trên các ch mc là các t ghép
Nguyn Th Thanh Hà - 0112215 100 Nguyn Trung Hiu - 0112216
* Thut toán :
void TachTuCauHoi(câu hi)
<WORD Name="tphcm" />
</WORDS>
- Hàm ThemDocVaWeight( ) : hàm này nhm mc ích là tìm kim trong tp
tin Inverted các tài liu liên quan n các t khóa ca câu hi.
* Thut toán
:
void ThemDocVaWeight()
{
- tp tin CauHoiLoaiBoST.xml và duyt qua tng t.
- o tp tin CauHoiVaTaiLieu.xml
- i vi tng t ta dùng công c XPath xác nh v trí t trong tp
tin Inverted
- a t khóa và các tài liu liên quan ( mã tài liu, tn s, trng s)
vào tp tin CauHoiVaTaiLieu.xml
}
Ví d : tp tin CauHoiVaTaiLieu.xml sau khi gi hàm ThemDocVaWeight
Xây dng h thng tìm kim thông tin ting Vit da trên các ch mc là các t ghép
Nguyn Th Thanh Hà - 0112215 102 Nguyn Trung Hiu - 0112216
<WORDS>
<WORD Name="tai nn" />
<Doc DOC_ID="1" Frequence="2" Weight="3.63" />
</WORD>
<WORD Name="giao thông" />
<Doc DOC_ID="3" Frequence="1" Weight="1.32" />
</WORD>
<WORD Name="tphcm" />
<Doc DOC_ID="4" Frequence="1" Weight="1.08" />
</WORD>
</WORDS>
i
) =
ij
1
w*
n
qj
j
d
=
∑
i :
n : S t phân bit trong tp tài liu.
d
ij
: trng s ca t j trong tài liu d
i
. (ta ã tính c trc ó)
w
qj
: trng s ca t j trong câu truy vn Q. S có 2 giá tr nh sau :
Xây dng h thng tìm kim thông tin ting Vit da trên các ch mc là các t ghép
Nguyn Th Thanh Hà - 0112215 104 Nguyn Trung Hiu - 0112216
w
qj
= 1 : Nu t j có trong câu truy vn Q.
w
qj
= 0 : Nu t j không có trong câu truy vn Q.
§ tk : i tng ca lp x lý tìm kim.