Nghiên cứu ứng dụng mã nguồn mở lucene để xây dựng phần mềm tìm kiếm thông tin trên văn bản

Kết quả đạt được chỉ mới dừng lại ở phạm vi nhỏ với số lượng văn bản còn hạn chế. Kết quả lớn nhất đạt được là chúng tôi đã nghiên cứu một cách hệ thống các tính năng và hoạt động của mã nguồn mở Lucene và ứng dụng thành công mã nguồn này trong công tác tìm kiếm thông tin trên văn bản. Hệthống được kế thừa toàn bộ thư viện mã nguồn mở Lucene.NET nên tính hiệu quả rất lớn và không phải mất chi phí cho bản quyền sử dụng. Việc xây dựng một số tính năng xử lý cho tiếng Việt tuy còn ít nhưng đã mởra khả năng kế thừa và phát triển mã nguồn này. Trên cơ sở đó, chúng ta có thể tùy chỉnh, mở rộng chức năng, hay đóng góp để phát triển cho Lucene.

pdf10 trang | Chia sẻ: lylyngoc | Lượt xem: 2764 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Nghiên cứu ứng dụng mã nguồn mở lucene để xây dựng phần mềm tìm kiếm thông tin trên văn bản, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 4(39).2010 307 NGHIÊN CỨU ỨNG DỤNG MÃ NGUỒN MỞ LUCENE ĐỂ XÂY DỰNG PHẦN MỀM TÌM KIẾM THÔNG TIN TRÊN VĂN BẢN A CASE STUDY ON USING OPEN SOURCE LUCENE TO BUILD THE FULL TEXT SEARCH ENGINE Huỳnh Đức Việt Trung tâm Công nghệ Phần mềm, Trường Đại học Duy Tân Võ Duy Thanh Trường Cao đẳng Công nghệ Thông tin Hữu nghị Việt – Hàn Võ Trung Hùng Trường Đại học Bách khoa, Đại học Đà Nẵng TÓM TẮT Trong bài báo này chúng tôi giới thiệu những nghiên cứu về mã nguồn mở Lucene và chỉ ra cách thức ứng dụng nó trong hệ thống tìm kiếm. Lucene là dự án mã nguồn mở được cung cấp và quản lý bởi tổ chức Apache Software Foundation, đây là công cụ lập chỉ mục cho văn bản, sử dụng trong hệ thống tìm kiếm. Lucene cho phép xử lý các văn bản đầu vào ở dạng văn bản (text) để tạo ra tập chỉ mục và cung cấp phương thức tìm kiếm trên tập chỉ mục đó. Nó cũng cho phép người dùng kế thừa và phát triển để phù hợp với nhiều ngôn ngữ khác nhau. Chúng tôi đề xuất mô hình ứng dụng Lucene để phát triển hệ thống tìm kiếm trên các văn bản lưu trữ. Trong mô hình này, chúng tôi sử dụng mã nguồn của Lucene và xây dựng một số xử lý cho ngôn ngữ tiếng Việt. Đầu tiên, chúng tôi tiến hành tách nội dung của các loại văn bản, sau đó thực hiện một số xử lý cho tiếng Việt và lập chỉ mục cho các văn bản, cuối cùng chúng tôi xây dựng các ứng dụng tìm kiếm sử dụng tập chỉ mục này để truy vấn và lấy về tài liệu liên quan. ABSTRACT In this paper, we introduce our research on open- source Lucene and how to apply it to a search engine. Lucene is the open source project which is supplied and managed by Apache Foundation Organization. This is a tool applied to create an index for the text used in search engine. Lucene helps to process on input documents for plain text to create an index and supply search mode based on this index. It also helps users inherit and develop in appropriation to different languages. We propose applied Lucene to develop a search engine on stored documents. In this model, we use the source code of Lucene and build some processing functions for Vietnamese. First, we begin to extract kinds of documents, and then perform some processing for Vietnamese and create the index for the documents. Finally, we build search applications using this index to query and retrieve similar documents. 1. Giới thiệu Cùng với sự phổ biến của công nghệ thông tin, số lượng các tài liệu điện tử cũng gia tăng từng ngày. Đến nay, số lượng các tài liệu được lưu trữ lên đến hàng tỷ trang. Trong khi đó, nhu cầu khai thác trong kho tài liệu khổng lồ này để tìm kiếm những thông tin cần thiết đang là nhu cầu thường ngày và thiết thực của người sử dụng. Tuy nhiên, một trong những khó khăn con người gặp phải trong việc khai thác thông tin là khả năng tìm chính xác thông tin họ cần trong kho tài liệu. Để trợ giúp công việc này, TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 4(39).2010 308 các hệ thống tìm kiếm đã lần lượt được phát triển nhằm phục vụ cho nhu cầu tìm kiếm của người sử dụng. Những hệ thống tìm kiếm bắt đầu phát triển và đưa vào ứng dụng, phổ biến là các hệ thống tìm kiếm theo từ khóa. Nhiều hệ thống hoạt động hiệu quả trên Internet như Google, Bing, Yahoo!… Tuy nhiên, phần lớn các công cụ tìm kiếm này là những sản phẩm thương mại và mã nguồn được giữ bí mật. Hoặc các hệ thống tìm kiếm trên máy cá nhân như Windows Search, Google Desktop… đã đáp ứng phần nào nhu cầu của người sử dụng, miễn phí cho cá nhân, tuy nhiên cũng chỉ đáp ứng được trên phạm vi nhỏ. Điều này dẫn tới kết quả là nhiều nhà phát triển riêng biệt hoặc các tổ chức sử dụng sẽ phải tự mình xây dựng từ đầu một công cụ tìm kiếm nếu hệ thống của họ cần chức năng tìm kiếm này. Một cách tiếp cận hiệu quả để giải quyết vấn đề này là sử dụng các thư viện mã nguồn mở để xây dựng hệ thống tìm kiếm. Trong bài báo này, chúng tôi giới thiệu những những tính năng nổi bật nhất của Lucene, cùng những kết quả thử nghiệm trên hệ thống này và đưa ra những phát triển mở rộng cho văn bản tiếng Việt. 2. Tìm kiếm thông tin Tìm kiếm thông tin (Information Retrieval – IR) là tìm kiếm tài nguyên (thường là các tài liệu - documents) trên một tập lớn các dữ liệu phi cấu trúc (thường là văn bản – text) được lưu trữ trên các máy tính nhằm thỏa mãn nhu cầu về thông tin [2]. Mục đích của IR là trả lại cho người dùng một tập các thông tin thỏa mãn nhu cầu của họ. Chúng ta định nghĩa rằng thông tin cần thiết là “câu truy vấn” (query) và các thông tin được chọn là “tài liệu” (documents). Mỗi cách tiếp cận trong IR bao gồm 2 thành phần chính: một là các kỹ thuật để biểu diễn thông tin (câu truy vấn, tài liệu) và hai là phương pháp so sánh các cách biểu diễn này. Mục đích là để thực hiện tự động qui trình kiểm tra các tài liệu bằng cách tính toán độ tương quan giữa các câu truy vấn và tài liệu. Qui trình tự động này thành công khi nó trả về các kết quả giống với các kết quả được con người tạo ra khi so sánh câu truy vấn với các tài liệu. Hình 1. Mô hình biểu diễn và so sánh thông tin Không gian tài liệu D Không gian truy vấn Q Hàm biểu diễn tài liệu d Hàm biểu diễn truy vấn q Truy vấn Tài liệu Biểu diễn 1 Biểu diễn 2 Không gian biểu diễn R Hàm so sánh c Xử lý của con người j [0,1] [0,1] TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 4(39).2010 309 Gọi miền xác định của hàm biểu diễn câu truy vấn q là Q, tập hợp các câu truy vấn có thể có; và miền giá trị của nó là R, không gian thống nhất biểu diễn thông tin. Gọi miền xác định của hàm biểu diễn tài liệu d là D, tập hợp các tài liệu; và miền giá trị của nó là R. Miền xác định của hàm so sánh c là R × R và miền giá trị của nó là [0,1], tập các số thực từ 0 đến 1. Trong một hệ thống tìm kiếm lý tưởng: c(q(query), d(doc)) = j(query, doc) , query  Q, doc  D với j: Q × D Æ [0,1] biểu diễn việc xử lý của người dùng về mối quan hệ của thông tin trên câu truy vấn và thông tin trong tài liệu. Có nhiều cách đo lường khác nhau cho việc đánh giá mức độ xử lý trả về kết quả của một hệ thống tìm kiếm thông tin. Các cách đo lường đều đòi hỏi một tập tài liệu và một câu truy vấn trên tập tài liệu đó, giả sử rằng mỗi tài liệu có thể liên quan hoặc không liên quan đến câu truy vấn. o Độ chính xác (Precision): được đo bởi tỉ lệ của tài liệu trả về chính xác trên tổng các tài liệu nhận được o Độ bao phủ (Recall): được đo bởi tỉ lệ tài liệu trả về chính xác trên tổng các tài liệu có liên quan o Kết quả sai (Fall-out): được đo bởi tỉ lệ các tài liệu không có liên quan tả về trên tổng các tài liệu không liên quan Ví dụ trong tập 1000 tài liệu được sử dụng cho tìm kiếm với 200 tài liệu liên quan đến thông tin “tin học”, một hệ thống tìm kiếm thông tin “tin học” trả về được 150 tài liệu, trong đó có 130 tài liệu chính xác. Khi đó: Độ chính xác = }150{ }150{}200{ ∩ = }150{ }130{ ~ 87% Độ bao phủ = }200{ }150{}200{ ∩ = }200{ }130{ ~ 65% Kết quả sai = }800{ }150{}800{ ∩ = }800{ }20{ ~ 2.5% Các mô hình tìm kiếm thông tin thường sử dụng: - Mô hình so khớp (Boolean retrieval model): là một mô hình mà chúng ta có thể xem mỗi câu truy vấn là một biểu thức logic các mục từ, trong đó gồm các mục từ kết hợp với các toán tử logic (AND, OR, và NOT). Mô hình sẽ xem mỗi tài liệu là một tập Độ chính xác = {Tài liệu liên quan} ∩ {Tài liệu nhận được} {Tài liệu nhận được} Độ bao phủ = {Tài liệu liên quan} ∩ {Tài liệu nhận được} {Tài liệu liên quan} Kết quả sai = {Tài liệu không liên quan} ∩ {Tài liệu nhận được} {Tài liệu không liên quan} TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 4(39).2010 310 hợp các mục từ. Mỗi mục từ sẽ chứa một danh sách các tài liệu có chứa nó, danh sách này gọi là posting, việc so khớp sẽ duyệt qua danh sách posting để kiểm tra các tài liệu có chứa mục từ hay không. - Phương pháp tính điểm: Mô hình so khớp chỉ trả về giá trị chân lý là có hoặc không có trong tài liệu tìm kiếm, kết quả trả về không có thứ hạng. Điều này đã dẫn đến kết quả tìm kiếm không được như mong muốn của người dùng. Để cải tiến mô hình này, người ta áp dụng cách tính điểm cho kết quả trả về, dựa trên trọng số của mục từ trên tài liệu. Tần suất xuất hiện của mục từ t trên tài liệu d được ký hiệu là tft,d . Tần suất nghịch đảo của tài liệu d trên tập N tài liệu ký hiệu là idft =log(N / dft ), khi đó, trọng số mục từ t trên tài liệu d sẽ là tf-idft,d = tft,d × idft, điểm số của tài liệu d sẽ là tổng điểm các mục từ trong câu truy vấn có mặt trong d: Score (q,d) =∑ ∈ − qt dtidftf , Ví dụ với 1000 tài liệu có 100 tài liệu chứa mục từ “tin” và 150 tài liệu chứa mục từ “học”, giả sử tài liệu thứ nhất d có 3 lần xuất hiện mục từ “tin” và 4 lần xuất hiện mục từ “học”, khi đó điểm số của câu truy vấn q=tin học trên tài liệu d sẽ là: Score(q,d) = tftin,d- idftin + tfhọc,d- idfhọc = tftin,d × log (N/dftin) + tfhọc,d × log (N/dfhọc) = 3 × log (1000/100) + 4 × log (1000/150) ~ 6.23 - Mô hình không gian vec-tơ (The vector space model): Mô hình so khớp và cả phương pháp tính điểm số ở trên chưa xét vai trò của các mục từ trong câu truy vấn. Ví dụ hai tài liệu chứa câu “Mary is quicker than John” và “John is quicker than Mary”, số lượng các mục từ như nhau nhưng vai trò khác nhau hoàn toàn. Để giải quyết vấn đề này người ta đưa ra mô hình không gian vec-tơ, mô hình này sẽ biểu diễn tài liệu d như một vec-tơ tần suất các mục từ )(V d .Với hai tài liệu trên thì tuy có các mục từ giống nhau, nhưng biểu diễn vec-tơ của chúng thì lại khác nhau, khi đó chúng ta có thể tính mức tương quan giữa hai tài liệu: sim (d1, d2) = )(dV)(dV )(dV).(dV 21 21 × Đối với truy vấn q chúng ta cũng xem đây là một vec-tơ )(V q biểu diễn tần suất các mục từ truy vấn. Mức độ tương quan giữa hai vector được tính theo hàm cosin của góc giữa chúng: TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 4(39).2010 311 Ví dụ, với truy vấn best car insurance trên tập dữ liệu với N=1.000.000 tài liệu với tần số xuất hiện của 4 mục từ auto, best, car, insurance lần lượt là 5.000, 50.000, 10.000, 1.000. Chúng ta có bảng tính điểm số sau: Mục từ Truy vấn q tf df idf wt,q Tài liệu d (ngẫu nhiên) tf wf wt,d Điểm số auto 0 5000 2.3 0 1 1 0.41 0 best 1 50000 1.3 1.3 0 0 0 0 Car 1 10000 2.0 2.0 1 1 0.41 0.82 insurance 1 1000 3.0 3.0 2 2 0.82 2.46 Như vậy, điểm số Score (q,d) = 0 + 0 + 0.82 + 2.46 = 3.28 3. Mã nguồn mở Lucene Năm 1998, Doug Cutting – từng là nhân viên của Excite, Yahoo, và đang làm việc tại Apache Software Foundation - đã bắt đầu tiến hành xây dựng thư viện tìm kiếm thông tin mã nguồn mở Lucene với mục tiêu phát triển nó thành một thư viện tìm kiếm tài liệu hoàn chỉnh, cho phép các nhà phát triển ứng dụng dễ dàng tích hợp chức năng tìm kiếm vào hệ thống của mình. Lucene là một thư viện tìm kiếm thông tin có khả năng xử lý và khả năng mở rộng ở mức cao, cho phép chúng ta có thể tích hợp vào các ứng dụng. Lucene là một dự án mã nguồn mở và nguyên thuỷ được phát triển bằng ngôn ngữ Java, ngày nay Lucene được phát triển bằng nhiều ngôn ngữ khác nhau như Delphi, Perl, C#, C++, Python, Ruby và PHP… Thành phần chức năng chính của Lucene bao gồm hai phần: Thành phần tạo chỉ mục và thành phần tìm kiếm. Đây là hai thành phần quan trọng cho một hệ thống tìm kiếm. sim(di,q)= cosθ = (q)V)(dV (q)V).(dV i i × ≈ )().( qvdv i Với : )(/)()( dVdVdv = , )(/)()( qVqVqv = là các vec-tơ đơn vị. Length(d)=M, Length(q)=N ∑ = = M i i dVdV 1 2 )()( , ∑ = = N i i qVqV 1 2 )()( TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 4(39).2010 312 Hình 2. Các thành phần Lucene hỗ trợ cho hệ thống Tìm kiếm - Thành phần Tạo chỉ mục: bao gồm các phần chức năng xử lý tạo chỉ mục, từ văn bản đầu vào để cho ra kết quả là một tập chỉ mục. Lucene chỉ hỗ trợ trên văn bản sau khi được tách nội dung ở dạng ký tự thuần, nó cho phép lập chỉ mục trên từng trường thông tin của văn bản và cho phép thiết lập hệ số cho từng trường thông tin để nâng cao vai trò lúc tìm kiếm. • Directory: cho phép định nghĩa vùng nhớ, xác định nơi lưu trữ trên bộ nhớ ngoài và bộ nhớ trên RAM trong quá trình tạo chỉ mục • Document và Field: định nghĩa tài liệu và các trường thông tin của tài liệu sử dụng cho lập chỉ mục, nó cũng sử dụng cho việc lấy kết quả trả về cho thành phần Tìm kiếm • Analyzer: thực hiện chức năng xử lý và tách văn bản để lấy nội dung, chuẩn hóa, loại bỏ mục từ không cần thiết,… để chuẩn bị cho việc lập chỉ mục • IndexWriter: là phần chính trong thành phần Tạo chỉ mục, nó thực hiện việc tạo mới hoặc mở chỉ mục, sau đó thực hiện thêm mới hoặc cập nhật nội dung của chỉ mục - Thành phần Tìm kiếm: bao gồm các phần chức năng cho xử lý tìm kiếm, từ yêu cầu của người dùng, thông qua biên dịch và so khớp để lấy về kết quả tốt nhất. Lucene hỗ trợ nhiều loại truy vấn thuận tiện cho người sử dụng, nó cho phép tìm theo trường thông tin hay các thiết lập nâng cao như sắp xếp kết quả, giới hạn thời gian hoặc số lượng kết quả, phân trang… • Term: Term là một đơn vị cơ bản của tìm kiếm, tương tự như thành phần Field, Term cũng bao gồm tên và giá trị tương ứng. • Query: bao gồm nhiều loại truy vấn khác nhau, nó chứa nhiều phương thức, nhưng hầu hết đều quan tâm đến việc thiết lập chỉ số Boost, cho phép Lucene hiểu truy vấn con nào là quan trọng hơn. • IndexSearcher: cho phép tìm kiếm trên tập chỉ mục do IndexWriter tạo ra, đây là thành phần chỉ thực hiện nhiệm vụ mở tập chỉ mục, không cho phép chỉnh sửa hay thay đổi. Có nhiều phương thức tìm kiếm, một trong số đó là lớp thành phần thực thi Searcher, với cách đơn giản là cung cấp một Query TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 4(39).2010 313 truy vấn, số lượng các liên kết cần trả về, và kết quả trả về sẽ là tập các đối tượng TopDoc. • TopDoc: là một lớp đơn giản, dùng cho việc chứa các thứ hạng cao nhất của N tài liệu có liên quan đến truy vấn. Với mỗi đối tượng trong danh sách này sẽ cho một docID dùng để liên kết đến tài liệu nhận về. Lucene không phải là một ứng dụng hay một máy tìm kiếm hoàn chỉnh để người dùng có thể sử dụng ngay, đây chỉ là một thư viện, nó cung cấp các thành phần quan trọng nhất của một máy tìm kiếm đó là tạo chỉ mục và truy vấn. Chính vì chỉ cung cấp các thành phần quan trọng trong việc tạo chỉ mục nên người dùng rất linh hoạt trong việc ứng dụng vào sản phẩm của mình, cũng như có một số cải tiến cho phù hợp hơn. 4. Xây dựng hệ thống tìm kiếm công văn Trên cơ sở nghiên cứu, chúng tôi đề xuất một hệ thống tìm kiếm trên các tài liệu và công văn lưu trữ. Trong đó, chúng tôi kế thừa mã nguồn từ Lucene.NET để xây dựng hệ thống tìm kiếm với hai thành phần chính là Tạo chỉ mục và Tìm kiếm. Do chỉ xây dựng hệ thống tìm kiếm nhỏ với dữ liệu là văn bản công văn đã lưu sẵn trên máy và bổ sung một cách thủ công từ phía người dùng nên hệ thống không có thành phần thu thập thông tin. Các thành phần xây dựng bao gồm: − Thành phần tạo chỉ mục: bao gồm các chức năng chính như chỉ định dữ liệu lập chỉ mục, thực hiện phân tích tài liệu, tạo chỉ mục và lưu trữ xuống tập chỉ mục, cập nhật chỉ mục trong trường hợp bổ sung hay thay đổi, theo dõi và quản trị nội dung chỉ mục… Thành phần này dựa trên những lớp có sẵn của Lucene, ngoài ra có phát triển một số lớp bổ sung cho việc đọc nội dung các loại tài liệu, phân tích hỗ trợ ngôn ngữ Tiếng Việt, giao diện người dùng… − Thành phần tìm kiếm: bao gồm các chức năng chính như: nhận thông tin truy vấn, biên dịch và tìm kiếm, trình bày kết quả và liên kết đến tài liệu gốc… trong đó các lớp biên dịch truy vấn và tìm kiếm dựa trên các thành phần có sẵn của Lucene. Do đặc trưng của các văn bản lưu trữ là được thu thập từ nhiều đơn vị và do nhiều người dùng tạo ra, nên tồn tại rất nhiều loại tệp tin văn bản cũng như sự thiếu đồng nhất về bảng mã tiếng Việt. Về cơ bản, Lucene chỉ hỗ trợ cho văn bản Text và ngôn ngữ tiếng Anh, do vậy số lượng văn bản lập chỉ mục được là rất ít (chỉ có tệp tin dạng .txt), các mục từ trên tiếng Việt không được chuẩn hoá nên có thể dẫn đến tình trạng dư thừa và tìm kiếm thiếu chính xác. Ví dụ với mục từ "trường" thì có thể tồn tại đến 3-4 mục từ trong chỉ mục, mỗi mục từ là một bảng mã như Vni, Abc, Unicode,… và nghiêm trọng hơn mục từ này không được tách chính xác do ký tự dấu làm cho thành phần phân tích của Lucene không thể tách đúng từ vựng. Trên cơ sở tạo chỉ mục của Lucene, chúng tôi đã kế thừa và xây dựng thành phần tách nội dung các loại tệp tin văn bản, trong đó có hỗ trợ cho ngôn ngữ tiếng Việt như xây dựng lại danh sách từ loại bỏ (stopword), thực hiện chuẩn hoá bảng mã Tiếng Việt (stemming)… TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 4(39).2010 314 − VietnameseAnayzer: Chức năng chính là định nghĩa lại danh sách từ cần loại bỏ stopword, thay vì loại bỏ một số từ tiếng Anh, chúng tôi định nghĩa lại danh sách các từ loại bỏ trong tiếng Việt, đây là các từ ít nghĩa như: "à","ạ","ấy","bây","bấy","bỗng",… − VietnameseStemFilter: Chức năng chính là lọc các mục từ đọc ra từ thành phần phân tích và thực hiện đưa sang thành phần chuyển mã. − AutoGetFont: Thực hiện nhận diện các bảng mã tiếng Việt như ABC, Vni, Vietware, Unicode Dựng sẵn hay Tổ hợp… − AutoConvert: thực hiện chuyển đổi các bảng mã Tiếng Việt về dạng TCVN 6909. − ExtractFile: Thực hiện việc lấy văn bản ký tự thuần từ các loại tệp tin khác nhau như MS Word, MS Excel, MS PowerPoint, Pdf, Html… Trong đó có sử dụng các thư viện hỗ trợ của MS Office, PDF Box, HTML Parse để tách văn bản và lấy nội dung. Hệ thống xây dựng gồm hai ứng dụng chính: ứng dụng thứ nhất là Tạo chỉ mục, cho phép thực thi trên máy chủ, dành cho người quản trị với các chức năng chính là chỉ định dữ liệu lập chỉ mục, tạo và cập nhật nội dung chỉ mục, quản lý người dùng… Ứng dụng thứ hai là tìm kiếm, cho phép thực thi trên các máy người dùng cuối, hoạt động cả trên môi trường LAN và Internet với chức năng chính là nhận yêu cầu tìm kiếm và trả về danh sách tài liệu liên kết cho người dùng. Hình 3. Mô hình hệ thống tìm kiếm công văn 5. Thử nghiệm Với mô hình hệ thống như trên, chúng tôi đã xây dựng và thử nghiệm với khoảng 15.000 văn bản, đa số là các thông báo, quyết định và công văn thu thập ở Trường Đại Tách nội dung văn bản Tập chỉ mục Yêu cầu tìm kiếm Người sử dụng Công văn lưu trữ - Loại bỏ stopword - Nhận dạng bảng mã - Chuyển mã - Thiết lập thông tin - Lập chỉ mục - Ứng dụng/Website tìm kiếm - Lấy về kết quả - Phân tích truy vấn -Tìm kiếm TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 4(39).2010 315 Học Duy Tân, đây là nguồn tài liệu chưa lớn nhưng đầy đủ các loại văn bản thông dụng như doc, docx, xls, xlsx, ppt, pptx, pdf, html,… và chứa đựng nhiều bảng mã tiếng Việt. Hệ thống đã thực hiện thành công trên máy tính cá nhân với cấu hình Intel Core 2 Duo T6600 2.2GHz, 2GB RAM và kết quả thống kê như sau: S T T Loại tài liệu, số lượng Tổng tệp tin, Kích thước Thời gian lập Kích thước tệp chỉ mục Số lượng mục từ Truy vấn Kết quả và thời gian tìm kiếm Trung Bình 1 (.doc): 6 (.xls): 1 TS : 7 (216 KB) 00:00:0 7 12 KB 645 "văn bản" 3kq ~ 0.031s 2 (.doc): 144 (.xls): 27 (.pdf): 7 (.ppt): 1 TS : 179 (23.1 MB) 00:02:1 0 302 KB 6262 văn bản 110kq ~ 0.047s 3 (.doc): 1053 (.xls): 216 (.pdf): 19 TS : 1288 (167 MB) 00:21:1 9 1.5 MB 25388 nh* 881kq ~ 0.062s 4 (.doc): 11392 (.docx): 121 (.xls): 3753 (.pdf): 146 (.ppt): 10 (.pptx): 6 TS : 15428 (2.1 GB) 04:15:4 8 26.8 MB 302117 văn bản 4821kq ~ 0.42s Qua kết quả thống kê trên thực tế tài liệu gốc (thực hiện thủ công đối với trường hợp ít tài liệu) cho thấy thử nghiệm cho kết quả tương đối chính xác và hiệu quả: − Khoảng 3% tài liệu bị sai sót trong quá trình tách văn bản và chuyển mã. − Kích thước chỉ mục trung bình giảm 20-30 lần cho văn bản ký tự, trên 30 lần cho văn bản có chèn hình ảnh. − Thời gian tách văn bản, chuyển mã và lập chỉ mục tương đương 1 giây cho mỗi tài liệu (các văn bản thông dụng, kích thước không quá 10 trang). − Tỉ lệ cập nhật và chỉnh sửa chính xác 100%. Như vậy, hệ thống tìm kiếm văn bản và công văn đã đáp ứng những yêu cầu cơ bản của người quản trị và người dùng. Hệ thống đã hỗ trợ cho hầu hết các loại văn bản phổ biến hiện có và bước đầu hỗ trợ cho xử lý trên ngôn ngữ tiếng Việt. 6. Kết luận Kết quả đạt được chỉ mới dừng lại ở phạm vi nhỏ với số lượng văn bản còn hạn chế. Kết quả lớn nhất đạt được là chúng tôi đã nghiên cứu một cách hệ thống các tính năng và hoạt động của mã nguồn mở Lucene và ứng dụng thành công mã nguồn này trong công tác tìm kiếm thông tin trên văn bản. Hệ thống được kế thừa toàn bộ thư viện TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 4(39).2010 316 mã nguồn mở Lucene.NET nên tính hiệu quả rất lớn và không phải mất chi phí cho bản quyền sử dụng. Việc xây dựng một số tính năng xử lý cho tiếng Việt tuy còn ít nhưng đã mở ra khả năng kế thừa và phát triển mã nguồn này. Trên cơ sở đó, chúng ta có thể tùy chỉnh, mở rộng chức năng, hay đóng góp để phát triển cho Lucene. Chúng tôi nhận thấy rằng, với việc phát triển nhanh chóng của công nghệ thông tin cũng như nhu cầu tìm kiếm thông tin của người dùng ngày một nhiều thì hệ thống rất có khả năng để phát triển. Trong thời gian đến, chúng tôi hy vọng sẽ kết hợp với xử lý ngôn ngữ tiếng Việt để xây dựng được một hệ thống tìm kiếm hoàn chỉnh hơn. TÀI LIỆU THAM KHẢO [1] C.J. van Rijsgergen, “Information Retrieval”, Information Retrieval Group, University of Glasgow, LonDon, United Kingdom, 1979. [2] Christopher D. Manning, Prabhakar Raghavan and Hinrich Schütze: “Introduction to Information Retrieval”, Cambridge University Press, 2008. [3] Erik Hatcher, Michael McCandless, Otis Gospodnetic: “Lucene in Action”, Apache Jakarta Project Management Committee, 2008. [4] Grant Ingersoll, Ozgur Yilmazel, Niranjan Balasubramanian, Steve Rowe, Svetlana Smoyenko, “Advanced Lucene”, Center for Natural Language Processing, 2005. [5] Peter Ingwersen, “Information Retrieval Interaction”, Taylor Graham Publishing, LonDon, United Kingdom, 1992. [6] Đỗ Phúc, Đỗ Hoàng Cường, Nguyễn Tri Tuấn, Huỳnh Thụy Bảo Trân, Nguyễn Văn Khiết, “Phát triển một Hệ thống S.E Hỗ trợ Tìm kiếm Thông tin, thuộc lãnh vực CNTT trên Internet qua từ khóa bằng tiếng Việt”, Đại Học Khoa Học Tự Nhiên, TP.HCM. [7] Ricardo Baeza-Yates, Berthier Ribeiro-Neto, “Modern Information Retrieval”, A Division of the Association for Computing Machinary, New York, 2008. [8] The Apache Software Foundation: “Apache Lucene.Net Class Library API”, [9] Tổng cục tiêu chuẩn đo lường chất lượng: “Xử lý văn bản Tiếng Việt qua mạng”,

Các file đính kèm theo tài liệu này:

  • pdfso39bai42_2319.pdf
Luận văn liên quan