4. Tp tin ngh cho tài l iu
4.1 Phân b it gia tp tin ngh cho và tp tin tr ct ip
p tin tr c ti p (direct file) là t p tin mà chính các m c thông tin ã cung c p th chính c a t p tin.
Ng c l i, t p tin ngh ch o (inverted file) c s p x p theo ch , m i ch i bao g m m t t p các m c thông tin.
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
Gi s có m t t p các tài li u, m i tài li u ch a danh sách các t . N u m t t xu t hi n trong m t tài li u, ghi s 1. Ng c l i, ghi 0. Khi ó, t p tin tr c ti p và t p tin ngh ch o s l u tr nh sau:
Tài li u 1 Tài li u 2 Tài li u 3
1 1 0 1 2 1 1 0 3 0 1 1 4 1 1 1 ng 4-1 Cách t p tin ngh ch o l u tr 1 2 3 4 Tài li u 1 1 1 0 1 Tài li u 2 0 1 1 1 Tài li u 3 1 0 1 1 ng 4-2 Cách t p tin tr c ti p l u tr 4.2 i sao s d ng t p tin ngh ch o l p ch m c
Trong h th ng tìm ki m thông tin, t p tin ngh ch o có ý ngh a r t l n, giúp vi c truy c p n các m c thông tin c nhanh chóng. Gi s khi ng i dùng nh p t câu truy v n, h th ng s tách thành 2 t là “t 1” và “t 2”. D a vào t p tin
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
ngh ch o, ta d dàng xác nh c các tài li u có liên quan n 2 t này tr v cho ng i tìm ki m. Tuy nhiên, khó kh n chính c a t p tin ngh ch o là khi thêm m t tài li u m i, t t c các t có liên quan n tài li u này u ph i c c p nh t l i. Ví d khi thêm tài li u 4 có ch a 2 t “t 3” và “t 4” vào t p tin ngh ch o:
Tài li u 1 Tài li u 2 Tài li u 3 Tài li u 4
1 1 0 1 0
2 1 1 0 0
3 0 1 1 1
4 1 1 1 1
ng 4-3 Thêm m t tài li u m i vào t p tin ngh ch o
Rõ ràng vi c này t n m t chi phí l n n u t p tin ngh ch o r t l n. Trong th c , t p tin ngh ch o tài li u có th ch a hàng tr m ngàn t . Tuy nhiên, trong các h th ng tìm ki m thông tin, ng i ta ch c p nh t l i t p tin t i m t kho ng th i gian nh
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
Ph n 2 : PHÂN TÍCH VÀ THI T K
Ch ng 5: PHÂN TÍCH
1. UseCase h th ng
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
STT ACTOR Ý NGH A
1 Admin Qu n tr h th ng 2 User Ng i s d ng ch ng trình 3 Cac tai lieu Các tài li u ã c tách t
4 Cac tai lieu lien quan cau hoi Các tài li u tr v khi ng i s d ng nh p vào câu h i
5 p tin chi muc p tin ch a các t khóa cùng v i các tài li u ch a t khóa ó
ng 5-1 Danh sách các Actor
STT USECASE Ý NGH A
1 Tach tu Tách v n b n thành các t riêng bi t 2 Tao moi t p tin chi muc o m i m t t p tin ch m c
3 Cap nhat t p tin chi muc p nh t thêm các tài li u m i vào t p tin ch m c có s n
4 Tim kiem Gõ vào t khóa và ch c n ng tìm ki m s tr v m t t p các tài li u liên quan
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
2. L p
2.1 các l p th hi n
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
2.2 các l p x lý
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép 3. Tách t 3.1 UseCase Hình 5-4 S Use-case tách t 3.2 Tu n t Hình 5-5 S tu n t tách t
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
3.3 C ng tác
Hình 5-6 S c ng tác tách t
3.4 L p
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
4. p ch m c
4.1 UseCase
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
4.2 Tu n t
4.2.1 o m i ch m c
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
4.2.2 p nh t ch m c
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
4.3 C ng tác
4.3.1 o m i ch m c
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
4.3.2 p nh t ch m c
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
4.4 L p
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép 5. Tìm ki m 5.1 UseCase Hình 5-14 S use-case tìm ki m 5.2 Tu n t Hình 5-15 S tu n t tìm ki m
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
5.3 C ng tác
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
5.4 L p
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
Ch ng 6: THI T K VÀ CÀI T
Ø Ngôn ng l p trình : C#, ASP.NET
Ø Công c l p trình : Microsoft Visual Studio .NET
Ø u tr d li u : t p tin XML
Ø ng d ng : Xây d ng h th ng tìm ki m thông tin ti ng Vi t
th ng tìm ki m s c xây d ng theomô hình không gian Vector.
Các tài li u ti ng Vi t và câu truy v n s ctách t theo ph ng pháp Longest Matching.
1. u trúc l u tr d li u
t c t p tin v n b n, t p tin ch a các t ã c tách, t p tin ch m c o, t p tin ch a các t không quan tr ng, t p tin l u tr t ng quan gi a câu truy v n và tài li u … u c l u tr d i d ng Xml.
1.1 p tin l u n i dung tài li u
ây là t p tin Xml dùng l u n i dung c a các t p tin v n b n g c, m i t p tin ch a kho ng 50 tài li u, có c u trúc c nh, trong ch ng trình nó c l u trong th
c “VanBanXML”.
1.1.1 u trúc DTD / XSD
• DTD
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
<!ELEMENT DOC (TITLE,AUTHOR,DATE,NEWS,CONTENT)> <!ATTLIST DOC DOC_ID CDATA #REQUIRED>
<!ELEMENT TITLE (#PCDATA)> <!ELEMENT AUTHOR (#PCDATA)> <!ELEMENT DATE (#PCDATA)> <!ELEMENT NEWS (#PCDATA)> <!ELEMENT CONTENT (#PCDATA)>
• 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 -->
<ElementType name="TITLE" content="textOnly" dt:type="string"/> <ElementType name="AUTHOR" content="textOnly" dt:type="string"/> <ElementType name="DATE" content="textOnly" dt:type="string"/> <ElementType name="NEWS" content="textOnly" dt:type="string"/> <ElementType name="CONTENT" content="textOnly"
dt:type="string"/>
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
<ElementType name="DOC" content="eltOnly" order="seq"> <attribute type="DOC_ID"/> <element type="TITLE"/> <element type="AUTHOR"/> <element type="DATE"/> <element type="NEWS"/> <element type="CONTENT"/> </ElementType>
<ElementType name="NEWSPAPERS" content="eltOnly"> <element type="DOC" minOccurs="1" maxOccurs="*"/> </ElementType>
</schema>
1.1.2 Tài li u XML
<NEWSPAPERS>
<DOC DOC_ID="1">
<TITLE>Thanh niên VN: ng l c cho nh ng t m nhìn m i</TITLE> <AUTHOR>Tác gi : .Bình</AUTHOR>
<DATE>Ngày :01/12/2000</DATE>
<NEWS>Tên t báo : Tu i tr Th lo i : ,Trang : trang 1, 14</NEWS>
<CONTENT>Thanh niên VN: ng l c cho nh ng ý t ng m i, t m nhìn
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
“S n sàng cho th k 21” sáng 30-11 t i Hà N i (do H i Liên hi p TN VN ph i h p v i các c quan LHQ t i VN t ch c), ông Edouard Wattez,
u ph i viên th ng trú LHQ t i VN, TN VN có vai trò quan tr ng trong quá trình m c a v i th gi i... . Bình.</CONTENT>
</DOC>
……
</NEWSPAPERS>
1.2 p tin sau khi tách t tài li u
ây là t p tin Xml l u các t tách c t các t p tin v n b n g c cùng v i các ID tham chi u t i chúng. M i t p tin ch a các t c a 50 tài li u t ng ng trong t p tin
n b n g c, trong ch ng trình các t p tin này c l u th m c “TachTu”.
1.2.1 u trúc DTD / XSD
• DTD
<!ELEMENT WORDS (WORD*)> <!ELEMENT WORD (DOC+)>
<!ATTLIST WORD Name CDATA #REQUIRED> <!ELEMENT DOC EMPTY>
<!ATTLIST DOC DOC_ID CDATA #REQUIRED>
• XSD
<?xml version='1.0'?>
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
xmlns:dt="urn:schemas-microsoft-com:datatypes"> <!-- contents of XML Schema document goes here --> <AttributeType name="DOC_ID" dt:type="string"/> <AttributeType name="Name" dt:type="string"/> <ElementType name="DOC" content="eltOnly">
<attribute type="DOC_ID"/> </ElementType>
<ElementType name="WORD" content="eltOnly"> <attribute type="Name"/>
<element type="DOC" minOccurs="1" maxOccurs="*"/> </ElementType>
<ElementType name="WORDS" content="eltOnly">
<element type="WORD" minOccurs="1" maxOccurs="*"/> </ElementType> </Schema> 1.2.2 Tài li u XML <WORDS> <WORD Name="thành l p"> <DOC DOC_ID="2051" /> <DOC DOC_ID="2063" />
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
<DOC DOC_ID="2091" /> </WORD>
<WORD Name="trung tâm"> <DOC DOC_ID="2091" /> <DOC DOC_ID="2092" /> <DOC DOC_ID="2099" /> </WORD> <WORD Name=" "> <DOC DOC_ID="2076" /> <DOC DOC_ID="2079" /> <DOC DOC_ID="2084" /> <DOC DOC_ID="2086" /> <DOC DOC_ID="2091" /> <DOC DOC_ID="2094" /> <DOC DOC_ID="2095" /> <DOC DOC_ID="2096" /> <DOC DOC_ID="2099" /> </WORD> …… </WORDS>
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
1.3 p tin ch a các t không th hi n n i dung c a v n b n (stop list)
ây là t p tin Xml ch a các t không th hi n n i dung c a v n b n, g i là danh sách StopList, trong ch ng trình t p tin này n m trong th m c “StopList”
1.3.1 u trúc DTD / XSD
• DTD
<!ELEMENT STOP_LIST (WORD*)> <!ELEMENT WORD EMPTY>
<!ATTLIST WORD Name 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="Name" dt:type="string"/>
<ElementType name="WORD" content="eltOnly"> <attribute type="Name"/>
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
<ElementType name="STOP_LIST" content="eltOnly">
<element type="WORD" minOccurs="1" maxOccurs="*"/> </ElementType> </Schema> 1.3.2 Tài li u XML <STOP_LIST> <WORD Name=" i" /> <WORD Name=" ng" /> <WORD Name="và" /> <WORD Name="có" /> <WORD Name="nh ng" /> <WORD Name=" " /> <WORD Name=" i" /> </STOP_LIST> 1.4 p tin ch m c o ( Inverted ).
p tin ch m c o l u các t ch m c, m i t có các tham chi u n tài li u ch a t ó kèm theo t n s , tr ng s c a t ó trong tài li u, trong ch ng trình t p tin này c l u trong th m c “Inverted ”.
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
• DTD
<!ELEMENT Inverted_File (Term*)> <!ELEMENT Term (DOC+)>
<!ATTLIST Term Name CDATA #REQUIRED> <!ELEMENT DOC EMPTY>
<!ATTLIST DOC D CDATA #REQUIRED> <!ATTLIST DOC F CDATA #REQUIRED> <!ATTLIST DOC W 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="D" dt:type="string"/>
<AttributeType name="F" dt:type="int"/>
<AttributeType name="W" dt:type="fixed.14.4"/> <AttributeType name="Name" dt:type="string"/>
<ElementType name="DOC" content="eltOnly"> <attribute type="D"/>
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
<attribute type="F"/> <attribute type="W"/> </ElementType>
<ElementType name="Term" content="eltOnly"> <attribute type="Name"/>
<element type="DOC" minOccurs="1" maxOccurs="*"/> </ElementType>
<ElementType name="Inverted_File" content="eltOnly">
<element type="Term" minOccurs="1" maxOccurs="*"/> </ElementType>
</Schema>
1.4.2 Tài li u XML
<Inverted_File>
<Term Name="nhân công">
<DOC D="378" F="1" W="2.5" /> <DOC D="879" F="3" W="7.49" /> <DOC D="1584" F="1" W="2.5" /> <DOC D="1627" F="1" W="2.5" />
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
<DOC D="1659" F="1" W="2.5" /> <DOC D="1708" F="1" W="2.5" /> <DOC D="2194" F="2" W="4.99" /> </Term>
<Term Name="gia truy n">
<DOC D="942" F="1" W="2.87" /> <DOC D="1670" F="1" W="2.87" /> <DOC D="2194" F="1" W="2.87" /> </Term> …… </Inverted_File>
1.5 p tin sau khi tách t câu h i.
p tin này ch a các t tách c trong câu h i, trong ch ng trình nó c l u trong th m c “CauHoi”
1.5.1 u trúc DTD / XSD
• DTD
<!ELEMENT WORDS (WORD*)> <!ELEMENT WORD EMPTY>
<!ATTLIST WORD Name CDATA #REQUIRED>
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
<?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="Name" dt:type="string"/>
<ElementType name="WORD" content="eltOnly"> <attribute type="Name"/>
</ElementType>
<ElementType name="WORDS" content="eltOnly">
<element type="WORD" minOccurs="1" maxOccurs="*"/> </ElementType> </Schema> 1.5.2 Tài li u XML <WORDS> <WORD Name=" t n c" /> <WORD Name="và" />
Xây d ng h th ng tìm ki m thông tin ti ng Vi t d a trên các ch m c là các t ghép
<WORD Name="vi t nam" /> </WORDS>