1. Trang chủ
  2. » Công Nghệ Thông Tin

XÂY DỰNG ỨNG DỤNG PHÂN TÍCH NGỮ NGHĨA TRONG TÌM KIẾM TÀI LIỆU TRỰC TUYẾN PHẦN 2

32 665 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 32
Dung lượng 1,96 MB

Nội dung

Dưới đây là biểu đồ tiến trình.User W_Tìm kiếm QL_Tài liệu :Tài liệu Yêu cầu tìm kiếmtừ khoá Tìm kiếmtừ khoá Lấy tài liệu kết quả kết quả Hiển thị Hình 5: Biểu đồ tiến trình chức năng tì

Trang 1

PHẦN III: GIẢI PHÁP KỸ THUẬT

1 GIẢI PHÁP ĐỌC ĐỊNH DẠNG TÀI LIỆU

1.1 Giao diện Ifilter

Giao diện Ifilter được thiết kế bởi Microsoft để sử dụng cho dịch vụ định chỉ số(Indexing Service) Mục đích chính của nó là trích rút phẩn text từ file để dịch vụ Địnhchỉ số có thể đánh chỉ số và tìm kiếm nó về sau Một vài phiên bản của Windows cótrình thực thi Ifilter cho các file office, cũng có những phiên bản miễn phí hoặc thươngmại cho việc đọc các loại file khác (pdf có bộ lọc Adobe PDF là phổ biến nhất) Giaodiện IFilter có thể được sử dụng trong các dạng không phải dạng text giống như các tàiliệu office, tài liệu pdf…hay cũng của dụng dạng file text như html, xml, để trích rútnhững phần quan trong của file Mặc dù giao diện IFilter được sử dụng chủ yếu cho cácmục đích trích rút text từ tài liệu, nó cũng được sử dụng trong các bộ máy tìm kiếm

Windows Desktop Search sử dụng các bộ lọc để đánh chỉ số cho file

Chi tiết công nghệ của giao diện IFilter không được tiết lộ bởi Microsoft Phần sauđây, tôi giới thiệu cách phần mềm được chọn sử dụng giao diện IFilter để đọc file nhưthế nào

1.2 Chương trình EPocalipse.IFilter

Để thực hiện một việc tách từ, đơn giản sử dụng:

TextReader reader=new FilterReader(fileName);

using (reader)

{

textBox1.Text=reader.ReadToEnd();

}

Với fileName là đường dẫn tuyệt đối của file được định vị trên ổ cứng

Quá trình thực thi nhận dạng extension của file được thực hiện như sau: Gọiphương thức LoadIFilter và truy tìm theo dấu vết của các keys đăng ký trong registrytrong quá trình thực hiện đó Chi tiết được thực hiện trong lớp FilterLoader Khi mộtcặp lớp/DLL được tìm thấy cho mở rộng của file đó, các thông tin này được lưu lạitrong cach để tránh việc phải đọc lại registry

Khi có tên của DLL và ID của lớp thực hiện cho bộ lọc, lớp ComHelper thực hệncác công việc sau:

 Tải dll sử dụng phương thức LoadLibrary trong API của Win32

 Gọi phương thức GetProcAddress để lấy một con trở tới hàm

DllGetClassObject.

Trang 2

 Sử dụng Marshal.GetDelegateForFunctionPointer() để chuyển con trỏhàm tới một delegate Chú ý, chỉ available trong NET 2.0

 Gọi hàm DllGetClassObject để nhận một đối tượng IclassFactory

 Khi có một đối tượng IClassFactory , ta sử dụng nó để tạo một các instance củalớp thực thi filter

private static IFilter LoadFilterFromDll(string dllName,

//And create an IFilter instance using that class factory

Guid IFilterGUID=new Guid("89BCB740-6119-101A-BCB7-00DD010655AF"); Object obj;

classFactory.CreateInstance(null, ref IFilterGUID, out obj);

2.1Giải pháp tách từ Tiếng Anh

Với các tài liệu tiếng Anh, từ của tiếng Anh được phân cách với nhau bằng dấucách Điều đó có nghĩa là chúng ta có thể tách từ tiếng Anh bằng dấu phân tách là dấucách Việc xử lý các stopword của tiếng anh thì chúng tôi cũng có một file gồm hơn

300 từ stopword của tiếng Anh để phục vụ cho việc loại bỏ stopword khỏi văn bản tách

Trang 3

In Dictionar

Còn 1 từ

để tách ra những từ quan trọng, tránh những từ mang ý nghĩa chung, hay chỉ là cảmthán

2.2Giải pháp cho Tiếng Việt

Yes

Hình 1: Giải thuật tách từ từ câu

Câu bên trái Câu cần tách

Trang 4

Tài liệu được tách thành các câu chuẩn (hoàn chỉnh) Giải thuật tách các từ khóa từ các câu đó.Các từ trong câu sẽ được kiểm tra xem có tồn tại trong từ điển không bằng các so sánh nó với

các từ trong từ điển Nếu nó “giống” từ trong từ điển, thì tách từ đó và kiểm tra tiếp Giải thuật

trên giảm thiểu tối đa tình huống nhập nhằng Tuy nhiên trong trường hợp câu này thì giải

thuật tách sai: Học sinh học sinh học Học|sinh học|sinh học Nhưng như tình huống này

(thuộc địa bàn) thì lại giải quyết tốt (thuộc|địa bàn).

Chi phí về thời gian cho giải thuật trên là rất lớn ở bước kiểm tra từ tách ra có trong

từ điển hay không Từ điển với hơn 99.000 từ được load vào bộ nhớ trong dưới vớikiểu dữ liệu được tổ chức theo 2 kiểu như sau:

 Một là mảng các string Mỗi phần tử là từ hay cụm từ của từ điển Mảng này đượcsắp xếp theo thứ tự tăng dần của mã ASCII (Trong C#, kiểu dữ liệu mảng nó

 Tổ chức thành một arraylist mà mỗi phần tử của nó là mảng các string Mảng cácstring thuộc 1 phần tử nó giống nhau về âm tiết đầu tiên của từ Ví dụ

An giấc

Anh Anh chàng Anh hùng Anh hùng

chủ nghĩa

Anh kiệt Anh linh Anh vũ

Table 1: Bảng một số ví dụ về cấu trúc lưu trữ từ điển

Khi đọc một từ, ta tách âm tiết đầu tiên của nó và kiểm tra trước với các phần tử đầutiên của mảng, sau đó, kiểm tra tiếp với các phần tử trong mảng của nó Khi đó, nó sẽtăng tốc độ tìm kiếm lên đáng kể

Trang 5

Chi tiết về giải pháp này xin tham khảo ở đồ án của bạn Cường.

4 GIẢI PHÁP PHÂN TÍCH NGƯỜI DÙNG

Một phiên làm việc được bắt đầu từ khi người dùng search với một từ khóa và kếtthúc bằng việc search bộ từ khóa mới Phân tích lịch sử truy cập của người dùng làphân tích độ yêu thích của họ với các tài liệu khác khi đọc một tài liệu nào đó Khingười dùng click vào những tài liệu gợi ý Cs (tài liệu được hệ thống đưa ra khi ngườidùng quyết định đọc một tài liệu nào đó - A), hệ thống sẽ cập nhật mức độ yêu thíchvới các tài liệu gợi ý C(một trong các Cs) của tài liệu A Ngoài ra, hệ thống còn cungcấp chức năng khảo sát để thu thập ý kiến của người dùng về mức độ tương đồng củatài liệu C so với tài liệu A Các dữ liệu này sẽ được hệ thống xử lý để quyết định cácthứ tự ưu tiên cho các tài liệu gợi ý trong những lần làm việc sau

Một phương pháp nữa để thu hẹp bộ lọc là thu thập các thông tin về sở thích củangười dùng về các tiêu chí lĩnh vực nào đó Khi đăng ký tài khoản với hệ thống, hệthống sẽ ghi nhận các sở thích ứng với người dùng đó, dùng làm các thông tin phục vụcho bộ lọc các kết quả trả về trong màn hình tìm kiếm cho người dùng

5 GIẢI PHÁP CÔNG NGHỆ

Như tên đề tài đã phản ánh, hệ thống sẽ như một modul tích hợp trên trình duyệtweb để hoạt động như bộ search engine Nên giải pháp công nghệ được đề xuất là môitrường NET 2.0, hệ quản trị cơ sở dữ liệu MS SQL server 2005 để lưu trữ các indexcủa tài liệu thu thập được Giao diện quản trị và người dùng được xây dựng dựa trênmôi trường web với ngôn ngữ ASP.Net và mã nguồn C#

Chương trình cũng sử dụng kiến trúc 3 tầng để trao đổi với CSDL Modul DAL xử

lý các trao đổi Database và Dataset, dataadapter Modul BLL thực hiện việc chuyển các

đổ dữ liệu từ các dataset vào các kiểu dữ liệu của lớp giao diện xử lý Các phương thứcchức năng được thiết kế trong modul Utilities…

Trang 6

PHẦN IV: XÂY DỰNG CHƯƠNG TRÌNH, CÀI

ĐẶT CHẠY DEMO

1 PHÂN TÍCH HỆ THỐNG

1.1 Mô hình use-case và đặc tả use-case

Tìm kiếm tài liệu theo ngữ nghĩa

Người dùng

Quản trị Tìm kiếm

RID: Module phân tích tài liệu thành từ khoá, và trích rút từ khoá đặc trưng cho nội dung văn bản.

LSA: Module sử dụng để so sánh nội dung văn bản bằng ngữ nghĩa.

Corr: Module dánh giá độ tương đồng nội dung văn bản.

Đăng ký người dùng Cập nhập Thông tin người dùng

«uses» Phân tích logfile

Cập nhập tài liệu liên quan

«uses»

Quản lý tác giả

Quản trị danh mục

Hình 2: Biểu đồ use-case hệ thống

Trang 7

Dưới đây là biểu đồ tiến trình.

User W_Tìm kiếm QL_Tài liệu :Tài liệu

Yêu cầu tìm kiếm(từ khoá)

Tìm kiếm(từ khoá) Lấy tài liệu()

kết quả kết quả

Hiển thị()

Hình 5: Biểu đồ tiến trình chức năng tìm kiếm

Trang 8

Use-case quản lý tài liệu

+Chi tiết tài liệu() : void +Thông tin

W_Tài liệu

Admin

+Thêm() : int +Sửa() : int +Xoá() : int -ID tài liệu : int

QL_Tài liệu

+Thêm() : int +Sửa() : int +Xoá() : int +Danh sách TL

W_Danh sách tài liệu

TT_Tài liệu

1*

+Đăng nhập() -username -pass

/ Kiểm tra(user/pass)

W_Tài liệu

T h ê m ()

S ử a X o á ()()

kết quả

Kết quả Kết quả

Hình 7: Biểu đồ cộng tác

Trang 9

Chức năng thêm mới tài liệu:

Admin W_Admin W_Tài liệu QL_Tài liệu TT_Tài liệu Đăng nhập(user/pass)

kiểm tra(user/pass) yêu cầu chọn thao tác

Thêm mới()

Thêm mới()

Thêm mới() kết quả Kết quả

kết quả hiển thị danh sách TL()

Hình 8: Biểu đồ tiến trình chức năng thêm mới tài liệu

Chức năng sửa tài liệu:

Đăng nhập(user/pass)

kiểm tra(user/pass) yêu cầu chọn thao tác

Chọn chỉnh sửa tài liệu

Chọn tài liệu() Danh sách tài liệu()

Lấy tài liệu(id)

Lấy tài liệu(id) kết quả Kết quả

hiển thị() Chỉnh sửa()

Chỉnh sửa()

Sửa() kết quả kết quả

kết quả

Hình 9: Biểu đồ tiến trình chức năng sửa tài liệu

Trang 10

Chức năng xoá tài liệu:

Admin W_Admin W_tài liệu QL_Tài liệu TT_Tài liệu Đăng nhập(user/pass)

kiểm tra(user/pass) yêu cầu chọn thao tác

Chọn chỉnh sửa tài liệu

Chọn tài liệu() Danh sách tài liệu()

Thao tác Xoá()

Xoá(id)

Xoá(id) kết quả kết quả

/ Kiểm tra(user/pass)

W_Tài liệu

T h ê m ()

S ử a X o á ()()

kết quả

Kết quả Kết quả

Hình 11: Biểu đồ cộng tác quản lý tài liệu

Trang 11

Use-case quản lý tác giả

+Chi tiết tài liệu() : void +Thông tin

W_Tác giả

Admin

+Thêm() : int +Sửa() : int +Xoá() : int -ID tác giả : int

QL_Tác giả

+Thêm() : int +Sửa() : int +Xoá() : int +Danh sách TG

- Chức năng thêm mới tác giả:

Admin W_Admin W_Tác giả QL_Tác giả TT_Tác giả Đăng nhập(user/pass)

kiểm tra(user/pass) yêu cầu chọn thao tác

Thêm mới()

Thêm mới()

Thêm mới() kết quả Kết quả

kết quả hiển thị danh sách TG()

Hình 13: Biểu đồ tiến trình thêm mới tác giả

Chức năng sửa thông tin tác giả:

Trang 12

Admin W_Admin W_Tác giả QL_Tác giả TT_Tác giả Đăng nhập(user/pass)

kiểm tra(user/pass) yêu cầu chọn thao tác

Chọn chỉnh sửa tác giả

Chọn tác giả() Danh sách tác giả()

Lấy tác giả(id)

Lấy tác giả(id) kết quả Kết quả

hiển thị() Chỉnh sửa()

Chỉnh sửa()

Sửa() kết quả

kết quả kết quả

Hình 14: Biểu đồ tiến trình sửa tác giả

Chức năng xoá tác giả:

Admin W_Admin W_Tác giả QL_Tác giả TT_Tác giả Đăng nhập(user/pass)

kiểm tra(user/pass) yêu cầu chọn thao tác

Chọn xoá tác giả Danh sách tác giả()

Thao tác Xoá()

Xoá(id)

Xoá(id) kết quả kết quả

kết quả

Hình 15: Biểu đồ tiến trình xóa tác giả

Trang 13

/ Kiểm tra(user/pass)

W_Tác giả

Thêm() Sửa() Xoá() kết quả

Kết quả

Kết quả

Hình 16: Biểu đồ cộng tác quản lý tác giả

Use-case quản lý nhà xuất bản

+Chi tiết NXB() : void +Thông tin

W_NXB

Admin

+Thêm() : int +Sửa() : int +Xoá() : int -ID NXb : int

QL_NXB

+Thêm() : int +Sửa() : int +Xoá() : int +Danh sách NXB

Trang 14

Chức năng thêm mới NXB:

Đăng nhập(user/pass)

kiểm tra(user/pass) yêu cầu chọn thao tác

Thêm mới()

Thêm mới()

Thêm mới() kết quả Kết quả

kết quả hiển thị danh sách NXB()

Hình 18: Biểu đồ tiến trình thêm mới NXB

Chức năng chỉnh sửa thông tin NXB:

Đăng nhập(user/pass)

kiểm tra(user/pass) yêu cầu chọn thao tác

Chọn chỉnh sửa NXB

Chọn NXB() Danh sách NXB()

Lấy NXB(id)

Lấy NXB(id) kết quả Kết quả

hiển thị() Chỉnh sửa()

Chỉnh sửa()

Sửa() kết quả

kết quả kết quả

Hình 19: Biểu đồ tiến trình chỉnh sửa thông tin NXB

Trang 15

Chức năng xoá NXB:

Admin W_Admin W_NXB QL_NXB TT_NXB Đăng nhập(user/pass)

kiểm tra(user/pass) yêu cầu chọn thao tác

Chọn xoá NXB Danh sách NXB()

Thao tác Xoá()

Xoá(id)

Xoá(id) kết quả kết quả

/ Kiểm tra(user/pass)

W_NXB

Thêm() Sửa() Xoá()

Trang 16

+Xoá() : int +Danh sách User

W_Danh sách User TT_User

Chức năng thêm mới User:

User W_Đăng ký W_User QL_User TT_User Nhập thông tin()

kiểm tra(thông tin)

kết quả

Kiển tra tồn tại()

Hình 23: Biểu đồ tiến trình thêm mới user

Trang 17

Chức năng chỉnh sửa thông tin:

User W_Đăng nhập W_User QL_User TT_User Đăng nhập(user/pass)

kiểm tra(user/pass) yêu cầu chọn thao tác

Chọn chỉnh sửa User Thông tin User()

Lấy User(id)

Lấy User(id) kết quả Kết quả

hiển thị() Chỉnh sửa()

Chỉnh sửa()

Sửa() kết quả kết quả

kết quả

Hình 24: Biểu đồ tiến trình chỉnh sửa user

Chức năng xoá User:

Admin W_Admin W_User QL_User TT_User Đăng nhập(user/pass)

kiểm tra(user/pass) yêu cầu chọn thao tác

Chọn xoá User Danh sách User()

Thao tác Xoá()

Xoá(id)

Xoá(id) kết quả kết quả

kết quả

Hình 25: Biểu đồ tiến trình xóa user

Trang 18

/ Kiểm tra(user/pass)

W_User

T h m (

Sa (

X o (

kết quả Kết quả Kết quả

User

+Đăng ký() : bool +Đăng nhập() : bool -Thông tin user

W_Đăng ký/Đăng nhập

Đăng nhập() Đăng ký()

/ Kiểm tra(user/pass) Kết quả

Hình 26: Biểu đồ cộng tác quản lý user

Trang 19

2 A02 Danh mục cấp 1 Chứa các thông tin về loại của

tài liệu Danh mục phân cấp 2-3 Danh mục cấp 1 lớn nhất, 2

Trang 20

1-# Tên Tên thực thể Miêu tả

là danh mục con của danh mục cấp 1, 3 là danh mục con của danh muc cấp 2

7 A07 Danh mục cấp 2 Chứa các thông tin về loại của

tài liệu Danh mục phân cấp 2-3 Danh mục cấp 1 lớn nhất, 2

1-là danh mục con của danh mục cấp 1, 3 là danh mục con của danh muc cấp 2

8 A08 Danh mục cấp 3 Chứa các thông tin về loại của

tài liệu Danh mục phân cấp 2-3 Danh mục cấp 1 lớn nhất, 2

1-là danh mục con của danh mục cấp 1, 3 là danh mục con của danh muc cấp 2

10 A10 Cấu hình hệ thống Chứa các thông tin liên quan tới

cấu hình hoạt động của hệ thống

11 A11 Tài liệu liên quan Chứa những tài liệu liên quan

về mặt thống kế số lần được xem

12 A12 Kết quả phân tích LSA Chứa kết quả của phép phân

tích LSA

.Table 2: Bảng các thực thể chính

Trang 21

Bảng các quan hệ thực thể

hoặc nhiều tác giả, một tác giả có thể có một hoặc nhiều tài liệu

xuất bản một hoặc nhiều cuốn sách Một cuốn sách chỉ do một nhà xuất bản sản xuất

một hoặc nhiều danh mục con cấp 2

một hoặc nhiều danh mục con cấp 3

liệu liên quan về mặt nội dung

LSA với các tài liệu khác

Table 3: Bảng quan hệ các thực thể

Danh sách bảng

1 A01 Tài liệu: Chứa thông

tin cơ bản của một tài liệu

CREATE TABLE [dbo].[A01] (

[A01_ID] [int] IDENTITY (1, 1) NOT NULL ,[A01_Name] [nvarchar] (100) NULL ,

[A01_Code] [char] (8) NOT NULL ,[A01_Description] [ntext] NULL ,[A05_ID] [int] NOT NULL ,[A01_DatePublished] [datetime] NULL ,[IsActive] [bit] NULL ,

[A01_LinkDown] [Varchar] NULL ,

Trang 22

2 A02 Danh mục cấp 1:

Chứa các thông tin về loại của tài liệu Danh mục phân cấp 1-2-3

Danh mục cấp 1 lớn nhất, 2 là danh mục con của danh mục cấp

1, 3 là danh mục con của danh muc cấp 2

CREATE TABLE [dbo].[A02] (

[A02_ID] [int] IDENTITY (1, 1) NOT NULL ,[A02_Name] [nvarchar] (50) NULL ,

[A02_Code] [char] (3) NOT NULL ,[IsActive] [bit] NULL

) ON [PRIMARY]

GO

3 A04 Tác giả: Chứa các

thông tin cơ bản về tác giả

CREATE TABLE [dbo].[A04] (

[A04_ID] [int] IDENTITY (1, 1) NOT NULL ,[A04_Name] [nvarchar] (100) NULL ,

[A04_Birthday] [datetime] NULL ,[A04_Address] [nvarchar] (100) NULL ,[A04_NativePlace] [nvarchar] (100) NULL ,[A04_Phone] [int] NULL ,

[A04_Email] [varchar] (100) NULL ,[IsActive] [bit] NULL

) ON [PRIMARY]

GO

4 A05 Nhà xuất bản: Chứa

các thông tin cơ bản

về nhà xuất bản

CREATE TABLE [dbo].[A05] (

[A05_ID] [int] IDENTITY (1, 1) NOT NULL ,[A05_Name] [nvarchar] (100) NULL ,

[A05_Address] [nvarchar] (100) NULL ,[A05_Phone] [int] NULL ,

[A05_Email] [varchar] (100) NULL ,[A05_Remark] [ntext] NULL ,

[IsActive] [bit] NULL

Trang 23

# Tên Mô tả Lệnh SQL

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]GO

5 A06 Người dùng: Chứa

các thông tin cơ bản của người dùng

CREATE TABLE [dbo].[A06] (

[A06_ID] [int] IDENTITY (1, 1) NOT NULL ,[A06_Name] [nvarchar] (100) NULL ,

[A06_UseName] [nvarchar] (100) NOT NULL ,[A06_PassWord] [nvarchar] (100) NOT NULL ,[A06_Phone] [int] NULL ,

[A06_Email] [varchar] (100) NULL ,[IsActive] [bit] NULL

Danh mục cấp 1 lớn nhất, 2 là danh mục con của danh mục cấp

1, 3 là danh mục con của danh muc cấp 2

CREATE TABLE [dbo].[A07] (

[A07_ID] [int] IDENTITY (1, 1) NOT NULL ,[A07_Name] [nvarchar] (100) NULL ,

[A07_Code] [char] (5) NOT NULL ,[A02_ID] [int] NOT NULL ,

[IsActive] [bit] NULL ) ON [PRIMARY]

GO

7 A08 Danh mục cấp 3:

Chứa các thông tin về loại của tài liệu Danh mục phân cấp 1-2-3

Danh mục cấp 1 lớn nhất, 2 là danh mục con của danh mục cấp

1, 3 là danh mục con của danh muc cấp 2

CREATE TABLE [dbo].[A08] (

[A08_ID] [int] IDENTITY (1, 1) NOT NULL ,[A08_Name] [nvarchar] (100) NULL ,

[A08_Code] [char] (8) NOT NULL ,[A07_ID] [int] NOT NULL ,

[IsActive] [bit] NULL ) ON [PRIMARY]

GO

8 A09 Bảng quan hệ: Thành

lập quan hệ nhiều nhiều giửa bảng A01

và A04

CREATE TABLE [dbo].[A09] (

[A01_ID] [int] NOT NULL ,[A04_ID] [int] NOT NULL ) ON [PRIMARY]

Ngày đăng: 03/10/2013, 12:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w