ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Đào Tùng Thịnh
CHUẨN HOÁ VÀ XÁC ĐỊNH MỐI QUAN HỆ
GIỮA CÁC CỤM TỪ, TÌM VÀ LẤY THÔNG TIN
LIÊN QUAN ĐẾN CỤM TỪ
Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60 48 05
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. LÊ HUY THẬP
Hà Nội - 2009
i
LỜI CAM ĐOAN
Trong quá trình th hi lu vn tác gi nghiên c xây d tài
lu vn c mình trên c s tham kh các ngu tài li gi thi
ph TÀI LI THAM KH và không sao chép t b k m ngu nào
khác.
Tác gi lu vn xin
Tác giả luận văn
Đào Tùng Thịnh
ii
LỜI CẢM ƠN
này tôi
Tôi xin chân
thành
, gi
n
ý chân thành
.
T các ,
và nh ai lu vn này.
Hà Nội, tháng 12 năm 2009
Học viên
Đào Tùng Thịnh
iii
MỤC LỤC
i
ii
iii
v
vi
vii
1
Chương 1- TỔNG QUAN 2
1.1 2
2
3
3
4
4
1.6.1 Google () 4
1.6.2 Ask ( ) 5
1.6.3 Exalead ( 5
1.6.4 Google Scholar ( 5
1.6.5 ( 6
1.6.6 Xalo(www.xalo.vn) 6
1.6.7 Timnhanh (www.timnhanh.com) 6
1.6.8 Vatgia (www.vatgia.com) 6
1.6.9 Baamboo (www.baamboo.com) 6
1.7 6
Chương 2 - CƠ SỞ LÝ THUYẾT 7
2.1 .NET Framework 7
7
8
se 9
10
12
13
14
18
18
iv
27
34
34
43
Chương 3 - CÀI ĐẶT THUẬT TOÁN 44
44
p trình 44
44
45
45
45
45
46
46
46
59
62
Chương 4 - KẾT LUẬN 63
63
63
64
v
DANH MỤC CÁC KÝ HIỆU, TỪ VIẾT TẮT
STT
Ký hiệu,
từ viết tắt
Diễn giải
1
CSDL
Cơ sở dữ liệu
2
CNTT
Công nghệ thông tin
3
HTTP
HyperText Transfer Protocol
4
RDBMS
Relationship DataBase Managerment System
5
XML
eXtended Markup Language
6
URL
Uniform Resource Locator
7
URI
Uniform Resource Identifier
8
CLR
Common Language Runtime
9
RE
Regular Expression
10
Q&A
Question and Answer
11
NXB
Nhà xuất bản
12
Tr
Trang
vi
DANH MỤC CÁC BẢNG
8
9
15
23
24
25
28
28
29
29
29
30
30
31
31
46
49
50
51
52
52
54
54
56
57
59
vii
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
7
25
34
ng 46
47
47
48
49
50
51
52
53
54
Hình 14. Màn hình chín 55
55
57
58
59
1
MỞ ĐẦU
Ngày nay cu cách m Khoa h Công ngh ang phát tri m
cách nhanh chóng, nó làm thay n kinh t toàn c và tr thành l
l s xu tr ti. Khoa h Công ngh a nhân lo chuy d t
n vn minh công nghi sang n kinh t tri th. Trong CNTT là m
trong các ngành m nh a n kinh t toàn c có m b phát tri
phá m m. Nó có t quan tr cho m qu gia nh là v các
n ang phát tri mu hoà nh v n kinh t th gii nh n ta.
M d quan tr c CNTT là vi áp d vào qu lý, bi
trong l v qu lý nhà n, qu lý kinh t - xã h. Nó giúp cho các nhà
qu lý a ra nh quy chính xác, k th, x lý nhanh chóng các tình
hu nh nâng cao hi qu qu lý.
V
ng
Thông
CSDL
CSDL, chúng ta có
CSDL
2
Chương 1- TỔNG QUAN
1.1 Đặt vấn đề
tìm trên các W
CSDL
CSDL, chúng ta có
CSDL.
xâu
.
ta
và trích rút
“Chuẩn
hóa và xác định mối quan hệ giữa các cụm từ, tìm và lấy thông tin liên quan đến
cụm từ”.
1.2 Tình hình nghiên cứu trong và ngoài nước
Ngày nay v
c.
khai thác
tri t
?
T
Ask, Exalead, Scirus
3
chung
vtrên
.
1.3 Mục đích, yêu cầu của luận văn
Khi ta (
), ta i google tìm
xâu
danh sách
các website . làm cho ta
và
doanh.
trên
nhanh
kin.
“mode”
.
xây các và
c nhanh các
1.4 Ý nghĩa, lợi ích của luận văn
4
1.5 Nội dung nghiên cứu
Các vấn đề cần nghiên cứu để thực hiện đề tài:
T
Luận văn này được tổ chức thành 4 chương như sau:
TNG QUAN: cu
làm gì,
: c
, CSDL và các
.
: t
,
.
: c
1.6 Một số công cụ tìm kiếm
tác gi xin
1.6.1 Google ()
thông tin
.
5
1.6.2 Ask ( )
, k
&A, giúp
1.6.3 Exalead (
Exalead .
. ph
“thị trường chứng khoán việt nam”
danh sách m Exalead
1.6.4 Google Scholar (
(
,
, ,
,) .
6
. Scholar
Links-
.
1.6.5 (
Scirus .
,
,
.
1.6.6 Xalo(www.xalo.vn)
Công ty Tinh Vân
2008.
H có
1.6.7 Timnhanh (www.timnhanh.com)
Timnhanh v thông
-
1.6.8 Vatgia (www.vatgia.com)
Vatgia l
;
1.6.9 Baamboo (www.baamboo.com)
1.7 Kết luận chương
này trình bày
7
Chương 2 - CƠ SỞ LÝ THUYẾT
2.1 .NET Framework
cho
.Net Framework là
dên
khác nhau C#.NET, VB.NET, ASP.NET, J#.NET.
2.1.1 Mô hình kiến trúc .Net FrameWork
Hình 1. Kiến trúc .Net Framework
.Net Framework bao gồm 3 tầng:
ET và Windows Forms.
- ASP.NET
().
-
8
chúng ET
ET (Common Language
Runtime).
2.1.2 Lớp WebRequest và WebResponse
WebRequest và WebResponse
System.Net. Hai l này xây d ph v cho l trình m giao ti
gi Client và Server. Vì lu vn là tài ch y nghiên c sâu v các thu
toán tìm ki và trích rút thông tin trên m internet do hai l WebRequest
và WebResponse có ý ngh cc k quan tr trong vi l trình th nghi.
WebRequest và WebResponse tng
g yêu c và thông tin trên internet
HTTP. WebRequest
Website WebResponse t
WebServer. t (instance) WebRequest
Create(URL). WebResponse
GetResponseStream() Stream.
Thuộc tính/Phương thức
Diễn giải
System.Net.WebRequest.RequestUri
System.Net.WebRequest.Headers
System.Net.WebRequest.ContentLength
System.Net.WebRequest.ContentType
System.Net.WebRequest.Credentials
System.Net.WebRequest.PreAuthenticate
System.Net.WebRequest.GetRequestStream()
System.Net.WebRequest.GetResponse()
Bảng 1. Một số thuộc tính và phương thức của lớp WebRequest
9
Thuộc tính/Phương thức
Diễn giải
System.Net.WebResponse.Headers
.
System.Net.WebResponse.ContentLength
server.
System.Net.WebResponse.ContentType
.
System.Net.WebResponse.GetResponseHe
ader(string headerName)
headerName.
System.Net.WebResponse.GetResponseStr
eam()
.
Bảng 2. Một số thuộc tính và phương thức của lớp WebResponse
WebRequest và
WebResponse
protected void Button1_Click(object sender, EventArgs e)
{
string URL = "";
WebRequest request = WebRequest.Create(URL);
WebResponse response = request.GetResponse();
StreamReader reader = new
StreamReader(response.GetResponseStream());
string str = reader.ReadLine();
while(str != null)
{
txtBox1.text = txtBox1.text + str;
txtBox1.text = txtBox1.text + "\n";
str = reader.ReadLine();
}
}
2.1.3 Lớp HttpWebRequest và HttpWebResponse
LWebRequest và WebResponse trong gói th vi
System.Net, chúng chúng. chúng ta
HttpWebRequest và HttpWebResponse tng th
hi g yêu c và nh k qu tr v t Webserver.
10
bên d các t HttpWebRequest và
HttpWebResponse thay th cho các t WebRequest và WebResponse.
protected void Button1_Click(object sender, EventArgs e)
{
string URL = "";
HttpWebRequest request =
(HttpWebRequest)WebRequest.Create(URL);
HttpWebResponse response =
(HttpWebResponse)request.GetResponse();
String ver = response.ProtocolVersion.ToString();
StreamReader reader = new
StreamReader(response.GetResponseStream() );
string str = reader.ReadLine();
while(str != null)
{
txtBox1.text = txtBox1.text + str;
txtBox1.text = txtBox1.text + "\n";
str = reader.ReadLine();
}
}
2.1.4 Trích rút thông tin từ các website có yêu cầu xác thực
Khi th hi tìm ki và trích rút thông tin t nhi ngu khác nhau trên
internet, s xu hi tr h chúng ta truy xu ph các website b
m, các tr khi có th truy xu
vào . Nh v t website có yêu xác th chúng ta
WebRequest.Credentials
Một số kiểu xác thực mà website thường sử dụng:
W Basic authentication hay Digest authentication, chúng
ta
System.Net.NetworkCredential
HttpWebRequest.Credentials.
W Integrated Windows authentication, chúng ta
Chúng ta tin
System.Net.CredentialCache.
11
Website chúng ta
t
System.Security.Cryptography.X509Certificates.X509Certificate,
và thêm HttpWebRequest.ClientCertificates.
Đoạn mã dưới đây thực hiện cả 3 cách tiếp cận trên:
using System;
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class DownloadWithAuthentication {
private static void Main() {
string uriBasic, uriIntegrated, uriCertificate;
// Xác thực username và password với Basic authentication.
WebRequest requestA = WebRequest.Create(uriBasic);
requestA.Credentials =new NetworkCredential("userName", "password")
;
requestA.PreAuthenticate = true;
// Đăng nhập người dùng hiện hành với
// Integrated Windows authentication.
WebRequest requestB = WebRequest.Create(uriIntegrated);
requestB.Credentials = CredentialCache.DefaultCredentials;
requestB.PreAuthenticate = true;
// Xác thực người dùng bằng chữ ký điện tử.
HttpWebRequest requestC = (HttpWebRequest) WebRequest.Create(uri
Certificate);
12
X509Certificate cert =X509Certificate.CreateFromCertFile(@"c:\user.cer
");
requestC.ClientCertificates.Add(cert);
// (Bắt đầu xử lý trích rút thông tin.)
}
}
2.2 Biểu thức chính quy
.
(regular expression) regexp, regex hay regxp
và
ình
( C#, Java, PHP)
hai literal và
metacharacters.
literal -z) mà chúng ta
Metacharacters là k
b
^(From|To|Subject|Date):
.
-
13
- ^ cho b
chúng ta
- Subject, Date literal
- Các ký t (, ), và | là nh metacharacters literal và
- metacharacter m hàng.
cho khớp bất cứ chuỗi con nào bắt đầu bởi một hàng mới theo sau bởi bất cứ 4
chuỗi literal: From,To,Subject và Date rồi theo sau bởi dấu hai chấm
2.2.1 Ý nghĩa của các metacharacters
. , \n.
quy: sh.t
c i chung là nó hai ký
.
\d -9]
\D không
\s \f\n\r\t\v]
\S \f\n\r\t\v]
\w : -zA-
Z_0-9]
\W : [^a-zA-Z_0-9]
^ dòng
$ dòng
\A
\z
|
[abc]
[a-z] --
[^abc]
a hay b hay c.
() (group -
trong (pattern) .V
?
*
14
+ Ví
{n} , k
{n, } AA, AAA
{m,n} -
AA,AAA,AAAA.
2.2.2 Các lớp thao tác với biểu thức chính quy trong .NET
Trong
.
System.Text.RegularExpression là không gian tên trong
.
a. Lớp Regex
Regex
).
mà .
Thuộc tính/Phương thức
Diễn giải
Options
T
constructor Regex.
RightToLeft
N giá bi th
chính quy .
GetGroupNames()
T
bi th chính quy.
GetGroupNumbers()
T
m
GroupNameFromNumber()
IsMatch()
Tbi th
chính quy
không trên m (pattern).
Match()
Dò tìm trên m (pattern)
bi th chính quy
15
Matches()
D
bi th chính quy có hay không
Replace()
Cho phép
bi th
chính quy
Split()
Chia
bi th chính quy.
Unescape()
C
escape trên pattern.
Bảng 3. Một số thuộc tính và phương thức của lớp Regex
Ví dụ dùng Regex tách chuỗi sử dụng phương thức Split của nó:
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
namespace RegexTesting
{
class Program
{
static void Main(string[] args)
{
string chuoi = "Mot, Hai, Ba, Bon, Nam.";
//tạo pattern
//luật: xem chuỗi nào có chứa khoảng trắng hay dấu phẩy
string pattern = " |, ";
Regex regex = new Regex(pattern);
string[] sKQ = regex.Split(chuoi);
foreach (string subString in sKQ)
{
Console.WriteLine(subString);
}
16
Console.ReadLine();
}
}
}
Kết quả:
Mot
Hai
Ba
Bon
Nam.
b. Lớp Match
(match) y
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
namespace RegexTesting
{
class Program
{
static void Main(string[] args)
{
string chuoi = "123abcd456bdabc";
string pattern = "abc";
Regex regex = new Regex(pattern);
Match m = regex.Match(chuoi);
if (m.Success)
{
17
Console.WriteLine("Tim thay chuoi con {0} o vi tri thu {1} trong
chuoi", m.Value, m.Index);
}
else
Console.WriteLine("Khong tim thay");
Console.ReadLine();
}
}
}
Kết quả:
Tim thay chuoi con abc o vi tri thu 3 trong chuoi
c. Lớp MatchCollection
Regex.Matches
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
namespace RegexTesting
{
class Program
{
static void Main(string[] args)
{
//tập hợp chứa những so khớp
MatchCollection mc;
//1 chuỗi thử nghiệm
string chuoi = "Tim chuoi con trong chuoi to";
//tạo pattern
string pattern = "chuoi";