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 664 1
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

Đ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

PHẦN III: GIẢI PHÁP KỸ THUẬT GIẢI PHÁP ĐỌC ĐỊNH DẠNG TÀI LIỆU 1.1 Giao diện Ifilter Giao diện Ifilter thiết kế Microsoft để sử dụng cho dịch vụ định số (Indexing Service) Mục đích trích rút phẩn text từ file để dịch vụ Định số đánh số tìm kiếm sau Một vài phiên Windows có trình thực thi Ifilter cho file office, có phiên miễn phí thương mại cho việc đọc loại file khác (pdf có lọc Adobe PDF phổ biến nhất) Giao diện IFilter sử dụng dạng khơng phải dạng text giống tài liệu office, tài liệu pdf…hay dụng dạng file text html, xml, để trích rút phần quan file Mặc dù giao diện IFilter sử dụng chủ yếu cho mục đích trích rút text từ tài liệu, sử dụng máy tìm kiếm Windows Desktop Search sử dụng lọc để đánh số cho file Chi tiết công nghệ giao diện IFilter không tiết lộ Microsoft Phần sau đây, giới thiệu cách phần mềm chọn sử dụng giao diện IFilter để đọc file 1.2 Chương trình EPocalipse.IFilter Để thực 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 đường dẫn tuyệt đối file định vị ổ cứng Quá trình thực thi nhận dạng extension file thực sau: Gọi phương thức LoadIFilter truy tìm theo dấu vết keys đăng ký registry q trình thực Chi tiết thực lớp FilterLoader Khi cặp lớp/DLL tìm thấy cho mở rộng file đó, thơng tin lưu lại cach để tránh việc phải đọc lại registry Khi có tên DLL ID lớp thực cho lọc, lớp ComHelper thực hện công việc sau:  Tải dll sử dụng phương thức LoadLibrary API Win32  Gọi phương thức GetProcAddress để lấy trở tới hàm DllGetClassObject  Sử dụng Marshal.GetDelegateForFunctionPointer() để chuyển trỏ hàm tới delegate Chú ý, available NET 2.0  Gọi hàm DllGetClassObject để nhận đối tượng IclassFactory  Khi có đối tượng IClassFactory , ta sử dụng để tạo instance lớp thực thi filter private static IFilter LoadFilterFromDll(string dllName, string filterPersistClass) { //Get a classFactory for our classID IClassFactory classFactory=ComHelper.GetClassFactory(dllName, filterPersistClass); if (classFactory==null) return null; //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); return (obj as IFilter); }  Cuối cùng, có thực thể IFilter mà thích hợp với lớp FilterReader IPersistFile persistFile=(filter as IPersistFile); if (persistFile!=null) { persistFile.Load(fileName, 0); IFILTER_FLAGS flags; IFILTER_INIT iflags = IFILTER_INIT.CANON_HYPHENS | IFILTER_INIT.CANON_PARAGRAPHS | IFILTER_INIT.CANON_SPACES | IFILTER_INIT.APPLY_INDEX_ATTRIBUTES | IFILTER_INIT.HARD_LINE_BREAKS | IFILTER_INIT.FILTER_OWNED_VALUE_OK; if (filter.Init(iflags, 0, IntPtr.Zero, out flags)==IFilterReturnCode.S_OK) return filter; } GIẢI PHÁP TÁCH TỪ 2.1 Giải pháp tách từ Tiếng Anh Với tài liệu tiếng Anh, từ tiếng Anh phân cách với dấu cách Điều có nghĩa tách từ tiếng Anh dấu phân tách dấu cách Việc xử lý stopword tiếng anh chúng tơi có file gồm 300 từ stopword tiếng Anh để phục vụ cho việc loại bỏ stopword khỏi văn tách để tách từ quan trọng, tránh từ mang ý nghĩa chung, cảm thán 2.2 Giải pháp cho Tiếng Việt 2.1.1 Các giải pháp có Hiện có nhiều chương trình hỗ trợ việc phân tích cú pháp, tách từ, gán nhãn từ tiếng Việt với giải thuật thuật toán khác Những đồ án tham khảo chương trình Code_correct (chính xác loại văn dựa vào tập huấn luyện), chương trình VNSegment tác giả Phương Thái (chương trình hồn chỉnh việc tách từ phân loại từ tiếng Việt Chỉ có điều viết Java không cung cấp sourcode file thư viện), chương trình VNTokenizer (đề cập tới số nghiên cứu hữu ích cho việc tác từ) 2.1.2 Giải pháp sử dụng nhận xét Giải pháp sử dụng mơ tả giải thuật phía Dựa từ điển tiếng Việt tương đối đầy đủ gồm 99.000 từ cụm từ Yes Câu cần tách In Dictionary? No No Còn từ Cắt tiếng bêncắt Câu trái Giữ từ cắt Yes Thêm từ vào mảng từ tách Stack Hình : Giải thuật tách từ từ câu Tài liệu tách thành câu chuẩn (hoàn chỉnh) Giải thuật tách từ khóa từ câu Các từ câu kiểm tra xem có tồn từ điển khơng so sánh với Câu bên từ từ điển Nếu “giống” từ từ điển, tách từ đótráikiểm tra tiếp Giải thuật giảm thiểu tối đa tình nhập nhằng Tuy nhiên trường hợp câu 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 tình (thuộc địa bàn) lại giải tốt (thuộc|địa bàn) Chi phí thời gian cho giải thuật lớn bước kiểm tra từ tách có từ điển hay không Từ điển với 99.000 từ load vào nhớ với kiểu liệu tổ chức theo kiểu sau:  Một mảng string Mỗi phần tử từ hay cụm từ từ điển Mảng xếp theo thứ tự tăng dần mã ASCII (Trong C#, kiểu liệu mảng  Tổ chức thành arraylist mà phần tử mảng string Mảng string thuộc phần tử giống âm tiết từ Ví dụ ả đào ả đầu ả hồn Nơng ả Ái Ái ân Ái chà Ái quốc Ái nam Ái thần Ái tình ái nữ An cư lạc An dưỡng An giấc an nghiệp Anh chàng Anh hùng Anh hùng Anh kiệt Anh linh Anh vũ Anh chủ nghĩa Ăn Ăn cắp Ăn trộm Ăn … Table : Bảng số ví dụ cấu trúc lưu trữ từ điển Khi đọc từ, ta tách âm tiết kiểm tra trước với phần tử mảng, sau đó, kiểm tra tiếp với phần tử mảng Khi đó, tăng tốc độ tìm kiếm lên đáng kể GIẢI PHÁP LSA Giải pháp LSA giải pháp xử lý tài liệu mặt ngữ nghĩa Sau thu từ khóa cho văn bản, phương pháp LSA phân tích từ khóa với văn khác để tìm mức độ tương đồng Bộ từ khóa tài liệu tài liệu lại hình thành ma trận độ tương đồng nội dung Phương pháp LSA sử dụng giải thuật SVD để giảm chiều cho ma trận Chi tiết giải pháp xin tham khảo đồ án bạn Cường GIẢI PHÁP PHÂN TÍCH NGƯỜI DÙNG Một phiên làm việc người dùng search với từ khóa kết thúc việc search từ khóa Phân tích lịch sử truy cập người dùng phân tích độ yêu thích họ với tài liệu khác đọc tài liệu Khi người dùng click vào tài liệu gợi ý Cs (tài liệu hệ thống đưa người dùng định đọc tài liệu - A), hệ thống cập nhật mức độ yêu thích với tài liệu gợi ý C(một Cs) tài liệu A Ngoài ra, hệ thống cung cấp chức khảo sát để thu thập ý kiến người dùng mức độ tương đồng tài liệu C so với tài liệu A Các liệu hệ thống xử lý để định thứ tự ưu tiên cho tài liệu gợi ý lần làm việc sau Một phương pháp để thu hẹp lọc thu thập thơng tin sở thích người dùng tiêu chí lĩnh vực Khi đăng ký tài khoản với hệ thống, hệ thống ghi nhận sở thích ứng với người dùng đó, dùng làm thông tin phục vụ cho lọc kết trả hình tìm kiếm cho người dùng GIẢI PHÁP CÔNG NGHỆ Như tên đề tài phản ánh, hệ thống modul tích hợp trình duyệt web để hoạt động search engine Nên giải pháp công nghệ đề xuất môi trường NET 2.0, hệ quản trị sở liệu MS SQL server 2005 để lưu trữ index tài liệu thu thập Giao diện quản trị người dùng xây dựng dựa môi trường web với ngôn ngữ ASP.Net mã nguồn C# Chương trình sử dụng kiến trúc tầng để trao đổi với CSDL Modul DAL xử lý trao đổi Database Dataset, dataadapter Modul BLL thực việc chuyển đổ liệu từ dataset vào kiểu liệu lớp giao diện xử lý Các phương thức chức thiết kế modul Utilities… PHẦN IV: XÂY DỰNG CHƯƠNG TRÌNH, CÀI ĐẶT CHẠY DEMO PHÂN TÍCH HỆ THỐNG 1.1 Mơ hình use-case đặc tả use-case Hình : Biểu đồ use-case hệ thống Đặc tả use-case Use-case tìm kiếm Hình : Use-case tìm kiếm Hình : Biểu đồ cộng tác chức tìm kiếm Lớp biên: W_Tìm kiếm W_Tài liệu • Lớp điều khiển: - QL_Tài liệu • Lớp thực thể: - TT_Tài liệu Dưới biểu đồ tiến trình - Hình : Biểu đồ tiến trình chức tìm kiếm Use-case quản lý tài liệu Hình : Use-case quản lý tài liệu Lớp biên: W_admin W_Danh sách tài liệu W_Tài liệu • Lớp điều khiển: - QL_Tài liệu • Lớp thực thể: - TT_Tài liệu - - Biểu đồ cộng tác: Hình : Biểu đồ cộng tác Chức thêm tài liệu: Hình : Biểu đồ tiến trình chức thêm tài liệu Chức sửa tài liệu: Hình : Biểu đồ tiến trình chức sửa tài liệu Chức xoá tài liệu: Hình :Biểu đồ tiến trình chức xóa tài liệu - Biểu đồ cộng tác: Hình : Biểu đồ cộng tác quản lý tài liệu 10 Biểu đồ cộng tác: Hình : Biểu đồ cộng tác quản lý user 1.2 Về sở liệu Biểu đồ quan hệ thực thể 18 Hình : Biểu đồ cộng tác quản lý user Bảng thực thể # Tên Tên thực thể Miêu tả A0 – Bảng A01 Tài liệu Chứa thông tin tài liệu A02 Danh mục cấp Chứa thông tin loại tài liệu Danh mục phân cấp 1-23 Danh mục cấp lớn nhất, danh mục danh mục cấp 1, danh mục danh muc cấp A03 A04 Tác giả Chứa thông tin tác 19 # Tên Tên thực thể Miêu tả giả A05 Nhà xuất Chứa thông tin nhà xuất A06 Người dùng Chứa thông tin người dùng A07 Danh mục cấp Chứa thông tin loại tài liệu Danh mục phân cấp 1-23 Danh mục cấp lớn nhất, danh mục danh mục cấp 1, danh mục danh muc cấp A08 Danh mục cấp Chứa thông tin loại tài liệu Danh mục phân cấp 1-23 Danh mục cấp lớn nhất, danh mục danh mục cấp 1, danh mục danh muc cấp A09 10 A10 Cấu hình hệ thống Chứa thơng tin liên quan tới cấu hình hoạt động hệ thống 11 A11 Tài liệu liên quan Chứa tài liệu liên quan mặt thống kế số lần xem 12 A12 Kết phân tích LSA Chứa kết phép phân tích LSA .Table : Bảng thực thể Bảng quan hệ thực thể # Parent Type Child Description A01 N:N A04 Một tài liệu có nhiều tác giả, tác giả có nhiều tài liệu A05 1:N A01 Một nhà xuất 20 xuất nhiều sách Một sách nhà xuất sản xuất A02 1:N A07 Danh mục cấp có nhiều danh mục cấp A07 1:N A08 Danh mục cấp có nhiều danh mục cấp A01 1:N A11 Tài liệu có nhiều tài liệu liên quan mặt nội dung A01 1:N A12 Tài liệu có nhiều kết LSA với tài liệu khác Table : Bảng quan hệ thực thể Danh sách bảng # Tên Mô tả Lệnh SQL A01 Tài liệu: Chứa thông tin 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 , [A01_RelatedDocs] [text] NULL , [A01_LSA] [text] NULL , [A01_KeyWords] [text] NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO A02 Danh mục cấp 1: Chứa CREATE TABLE [dbo].[A02] ( thông tin loại [A02_ID] [int] IDENTITY (1, 1) NOT NULL , tài liệu Danh mục [A02_Name] [nvarchar] (50) NULL , phân cấp 1-2-3 Danh [A02_Code] [char] (3) NOT NULL , mục cấp lớn nhất, 21 # Tên Mô tả Lệnh SQL danh mục danh mục cấp 1, danh mục danh muc cấp [IsActive] [bit] NULL ) ON [PRIMARY] GO A04 Tác giả: Chứa CREATE TABLE [dbo].[A04] ( thông tin tác [A04_ID] [int] IDENTITY (1, 1) NOT NULL , giả [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 A05 Nhà xuất bản: Chứa thông tin nhà xuất A06 Người dùng: Chứa CREATE TABLE [dbo].[A06] ( thông tin [A06_ID] [int] IDENTITY (1, 1) NOT NULL , người dùng [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 ) ON [PRIMARY] GO 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 ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO 22 # Tên Mô tả Lệnh SQL A07 Danh mục cấp 2: Chứa CREATE TABLE [dbo].[A07] ( thông tin loại [A07_ID] [int] IDENTITY (1, 1) NOT NULL , tài liệu Danh mục [A07_Name] [nvarchar] (100) NULL , phân cấp 1-2-3 Danh [A07_Code] [char] (5) NOT NULL , mục cấp lớn nhất, [A02_ID] [int] NOT NULL , danh mục [IsActive] [bit] NULL danh mục cấp 1, ) ON [PRIMARY] danh mục danh muc cấp GO A08 Danh mục cấp 3: Chứa CREATE TABLE [dbo].[A08] ( thông tin loại [A08_ID] [int] IDENTITY (1, 1) NOT NULL , tài liệu Danh mục [A08_Name] [nvarchar] (100) NULL , phân cấp 1-2-3 Danh [A08_Code] [char] (8) NOT NULL , mục cấp lớn nhất, [A07_ID] [int] NOT NULL , danh mục [IsActive] [bit] NULL danh mục cấp 1, ) ON [PRIMARY] danh mục danh muc cấp GO A09 Bảng quan hệ: Thành lập quan hệ nhiều nhiều giửa bảng A01 A04 CREATE TABLE [dbo].[A09] ( [A01_ID] [int] NOT NULL , [A04_ID] [int] NOT NULL ) ON [PRIMARY] GO A10 Bảng chứa thông tin hệ thống CREATE TABLE [dbo].[A10] ( [A10_ID] [int] IDENTITY (1, 1) NOT NULL , [A10_NumberOfDimensionReduce] [int] NOT NULL , [A10_MaxOfWords] [int] NOT NULL , [A10_MaxOfResultOfLSA] [int] NOT NULL , [A10_MaxOfRelatedDocs] [int] NOT NULL , [A10_DegreeOfAccuracy] [float] NOT NULL ) ON [PRIMARY] 10 A11 Bảng chứa thông tin tài liệu liên quan tới tài liệu CREATE TABLE [dbo].[A11] ( [A11_ID] [int] IDENTITY (1, 1) NOT NULL , [A01_ID] [int] NOT NULL , [A11_RelatedID] [int] NOT NULL , [A11_Index] [float] NOT NULL , [A11_StandIndex] [float] NOT NULL 23 # Tên Mô tả Lệnh SQL ) ON [PRIMARY] 11 A12 Bảng chứa kết CREATE TABLE [dbo].[A12] ( LSA [A12_ID] [int] IDENTITY (1, 1) NOT NULL , [A01_ID] [int] NOT NULL , [A12_RelatedID] [int] NOT NULL , [A12_Index] [int] NOT NULL , [A12_StandIndex] [float] NOT NULL ) ON [PRIMARY] 24 Table : Danh sách bảng chínhMơ tả chi tiết bảng Bảng A01 # Tên trường Kiểu liệu Cho phép Giá Khố null trị mặ c địn h Kho Ghi ngoà i A01_ID INT NOT NULL Yes No A01_Name NVARCHAR NULL (100) No No A01_Code CHAR(8) NOT NULL No No A01_LinkDow VARCHAR( NULL n 100) No No A01_Decriptio NTEXT n NULL No No A05_ID INT NOT NULL No Yes IsActive BIT NULL No No A01_KeyWord NTEXT s NULL No No Chứa từ khố đại diện cho nơi dung vb A01_RelatedD NTEXT ocs NULL No No 10 A01_LSA NULL No No Chứa tài liệu liên quan tới tài liệu mặt nội dung Chứa kết phân tích LSA NTEXT Table : Mơ tả bảng tài liệu A01 A02 25 Chứa link liên kết cho phép download tài liệu # Tên trường Kiểu liệu Cho phép Giá trị Kho Kho Ghi null mặc định á chín ngo h ài A02_ID INT NOT NULL Yes No A02_Name NVARCHAR(100) NULL No A02_Code CHAR(3) NOT NULL No No No IsActive BIT NULL No No Kho chín h Kho Ghi ngo ài Table : Mô tả bảng Catalogue A02 A04 # Tên trường Kiểu liệu Cho phép null A04_ID INT NOT NULL Yes No A04_Name NVARCHAR(100) NULL No A04_Birthday DATETIME NULL No No No A04_Address NVARCHAR(100) NULL No No A04_NativePlace NVARCHAR(100) NULL No No A04_Phone INT NULL No No A04_Email NVARCHAR(100) NULL No No IsActive BIT NULL No No Bảng A05 # Tên trường Kiểu liệu Cho phép null Kho chín h Kho Ghi ngo ài INT NOT NULL Yes No Giá trị mặc định Table : Mô tả bảng tác giả A04 A05_ID 26 Giá trị mặc định # Tên trường Kiểu liệu Cho phép null A05_Name NVARCHAR(100) A04_Address Giá trị mặc định Kho chín h Kho Ghi ngo ài NULL No NVARCHAR(100) NULL No No No A04_Remark NTEXT NULL No No A04_Phone INT NULL No No A04_Email NVARCHAR(100) NULL No No IsActive BIT NULL No No Giá trị mặc định Khố Kho Ghi ngo ài Table : Mô tả bảng NXB A05 Bảng A06 # Tên trường Kiểu liệu Cho phép null A06_ID INT NOT NULL Yes No A06_Name NVARCHAR(100) NULL No A06_UseName NVARCHAR(100) NOT NULL No No No A06_PassWord NVARCHAR(100) NOT NULL No No A04_Phone INT NULL No No A04_Email NVARCHAR(100) NULL No No IsActive BIT NULL No No Table : Mô tả bảng User A06 Bảng A07 # Tên trường Kiểu liệu Cho phép Giá trị null mặc định Khố Kho Ghi ngo ài A07_ID INT NOT NULL Yes No A07_Name NVARCHAR(100) NULL No No 27 # Tên trường Kiểu liệu Cho phép Giá trị null mặc định Khố A07_Code CHAR(5) NOT NULL No Kho Ghi ngo ài No IsActive BIT NULL No No A02_ID INT NOT NULL No Yes Table : Mô tả bảng subCatalogue A07 Bảng A08 # Tên trường Kiểu liệu Cho phép null A08_ID INT A08_Name Giá trị mặc định Kho chín h Kho Ghi ngo ài NOT NULL Yes No NVARCHAR(100) NULL No A08_Code CHAR(3) NOT NULL No No No IsActive BIT NULL No No A07_ID INT NOT NULL No Yes Bảng A11 # Tên trường Kiểu liệu Cho phép Giá trị Kho Kho Ghi null mặc định á chín ngo h ài A11_ID INT NOT NULL Yes No A01_ID INT NOT NULL No Yes Table : Mô tả bảng Child A08 28 # Tên trường Kiểu liệu A11_RelatedID INT A11_Index FLOAT Cho phép Giá trị Kho Kho Ghi null mặc định á chín ngo h ài NOT No No NULL NULL 0.0 No No A11_StandIndex FLOAT NULL Bảng A12 # Tên trường Kiểu liệu Cho phép Giá trị Kho Kho Ghi null mặc định á chín ngo h ài A12_ID INT NOT NULL Yes No A01_ID INT NOT NULL No Yes A12_RelatedID INT NOT NULL No No A12_Index INT NULL No No A12_StandIndex FLOAT NULL 0.0 No No 0.0 No No Table : Mô tả bảng A11 Table : Mô tả bảng A12 29 CÁC MODUL 2.1 Modul đọc định dạng tài liệu Có thể xem lại phần để hiểu rõ cách modul đọc tài liệu Modul thiết kế thành file dll để hàm thư viện dùng chương trình Có số điểm cần ý sử dụng modul này: • Cú pháp sử dụng: Add reference file EPocalipse.Ifilter.dll Using EPocalipse.Ifilter TextReader reader=new FilterReader(fileName); using (reader) { textBox1.Text=reader.ReadToEnd(); } • fileName đường dẫn tuyệt đối file ổ đĩa bao gồm tên phẩn mở rộng • Với file pdf, ý version acrobat reader mà ta cài Chú ý nên dùng file pdf với version 7.0.1 1.1 Modul tách từ Modul gồm lớp chính: Lớp clsDictionary:  public static void Init(string path) Lớp khởi tạo từ điển phương thức Init với path đường dẫn tuyệt đối file từ điển Cũng phương thức này, ta định nghĩa cách lưu trữ từ điển (như trình bày trên) để tăng tốc độ cho giải thuật tìm kiếm Trong lớp ý phương thức sau: Đọc file từ điển theo bảng mã Unicode: StreamReader sr = new StreamReader(path, System.Text.Encoding.Unicode); Sắp xếp tăng dần để phục vụ cho giải thuật tìm kiếm nhị phân: arl.Sort(); Phương thức phương thức sẵn có C# cho mảng Nó xếp theo thứ tự tăng dần mã ASCII phần tử Do đó, xếp mảng số mảng string  public static int Term2Id(string Term) Phương thức tiến hành tìm kiếm xâu Term có thuộc từ điển hay khơng Nếu có, trả lại Id, khơng trả Trong phương thức này, tơi cài đặt thuật giải tìm kiếm nhị phân (một giải thuật để tăng tốc độ tìm kiếm) Lớp clsPunctuator.cs Lớp thực bước chuẩn hóa văn Nhận biết ký tự dấu chấm câu, dấu chấm mail, hay số hàng nghìn Tách nhiều khoảng trống thành khoảng Chia văn thành đoạn câu Lớp clsSentence.cs Lớp thể cho câu với thuộc tính định Lớp clsTermSplitter.cs 30 Lớp thể giải thuật tách câu thành từ, cụm từ để kiểm tra có từ điển hay khơng Thuật tốn đọc từ thuật “từ trái sang”, trình bày phần Có thể tối ưu giải thuật từ phương thức lớp Lớp clsStopWordRemover.cs Lớp cuối thực phương thức tách câu  public clsStopWordRemover(string path) Lớp khởi tạo với phương thức này, với path file+đường dẫn đầy đủ đến file stopword Lớp lưu file vào biến mảng lớp  public string[] RemoveStopWord(string doc,string pathDic) Lớp gọi tiếp phương thức sau để thực việc tách văn thành từ khóa: clsTermSplitter Splitter = new clsTermSplitter(); clsPunctuator Punctuator = new clsPunctuator(); clsDictionary.Init(pathDic); Phương thức trả mảng từ khóa văn Trong phương thức loại bỏ từ stopword từ mảng từ stopword lưu phương thức khởi tạo stopword Modul tách từ gọi cách using Utils.Spliter; clsStopWordRemover swr = new clsStopWordRemover(this.lbStopFile.Text); string[] result = swr.RemoveStopWord(detail, dicfile); Với dicfile file từ điển gồm đường dẫn detail string văn mà ta đọc vào từ bước trước this.lbStopFile.Text đường dẫn tuyệt đối đến file stopword 31 1.2 Modul LSA Modul thiết kế lớp Util Đầu vào modul tập tài liệu tập từ khóa, đầu cập nhật sở liệu thông tin độ tương đồng tài liệu Thông tin chi tiết xin tham khảo bên đồ án Mr Cường CÀI ĐẶT Chương trình thiết kế với giao diện website Ta cài đặt CSDL, với file backup cung cấp, mã nguồn đưa vào IIS Thư mục website trỏ tới thư mục SS01 32 ... use-case Use-case tìm kiếm Hình : Use-case tìm kiếm Hình : Biểu đồ cộng tác chức tìm kiếm Lớp biên: W _Tìm kiếm W _Tài liệu • Lớp điều khiển: - QL _Tài liệu • Lớp thực thể: - TT _Tài liệu Dưới biểu... trình chức tìm kiếm Use-case quản lý tài liệu Hình : Use-case quản lý tài liệu Lớp biên: W_admin W_Danh sách tài liệu W _Tài liệu • Lớp điều khiển: - QL _Tài liệu • Lớp thực thể: - TT _Tài liệu - -... No Chứa tài liệu liên quan tới tài liệu mặt nội dung Chứa kết phân tích LSA NTEXT Table : Mô tả bảng tài liệu A01 A 02 25 Chứa link liên kết cho phép download tài liệu # Tên trường Kiểu liệu Cho

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

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan