1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

10 508 5

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 507,07 KB

Nội dung

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ẢNNGHIÊ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ẢNNGHIÊ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

Trang 1

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,

Trang 2

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

biểu diễn R

Hàm so sánh c

Xử lý của con người j [0,1]

[0,1]

Trang 3

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}

Trang 4

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à tf t,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à idf t =log(N / df t ), khi đó, trọng số mục từ t trên tài liệu d sẽ là tf-idf t,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) =∑

q t

d t

idf

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) =

) (d V ) (d V

) (d V )

(d V

2 1

2 1

×

Đố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:

Trang 5

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:

tf df idf wt,q

Tài liệu d (ngẫu nhiên)

tf wf wt,d

Điểm số

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 ) (d V

(q) V )

(d V

i

i

× ≈ v(d i).v(q)

Với : v(d)=V(d)/V(d) , v(q)=V(q)/V(q)

là các vec-tơ đơn vị

=

i

i d V d

V

1

2

) ( )

=

i

i q V q

V

1

2

) ( )

(

Trang 6

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

Trang 7

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)…

Trang 8

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

Trang 9

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

Trang 10

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”, http://lucene.apache.org/lucene.net/docs/

[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”, http://www.tcvn.gov.vn/webconvert/vietconvert.html

Ngày đăng: 20/12/2014, 20:52

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] C.J. van Rijsgergen, “Information Retrieval”, Information Retrieval Group, University of Glasgow, LonDon, United Kingdom, 1979 Sách, tạp chí
Tiêu đề: Information Retrieval
[2] Christopher D. Manning, Prabhakar Raghavan and Hinrich Schütze: “Introduction to Information Retrieval”, Cambridge University Press, 2008 Sách, tạp chí
Tiêu đề: Introduction to Information Retrieval
[3] Erik Hatcher, Michael McCandless, Otis Gospodnetic: “Lucene in Action”, Apache Jakarta Project Management Committee, 2008 Sách, tạp chí
Tiêu đề: Lucene in Action
[4] Grant Ingersoll, Ozgur Yilmazel, Niranjan Balasubramanian, Steve Rowe, Svetlana Smoyenko, “Advanced Lucene”, Center for Natural Language Processing, 2005 Sách, tạp chí
Tiêu đề: Advanced Lucene
[5] Peter Ingwersen, “Information Retrieval Interaction”, Taylor Graham Publishing, LonDon, United Kingdom, 1992 Sách, tạp chí
Tiêu đề: Information Retrieval Interaction
[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 Sách, tạp chí
Tiêu đề: 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
[7] Ricardo Baeza-Yates, Berthier Ribeiro-Neto, “Modern Information Retrieval”, A Division of the Association for Computing Machinary, New York, 2008 Sách, tạp chí
Tiêu đề: Modern Information Retrieval
[8] The Apache Software Foundation: “Apache Lucene.Net Class Library API”, http://lucene.apache.org/lucene.net/docs/ Sách, tạp chí
Tiêu đề: 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”, http://www.tcvn.gov.vn/webconvert/vietconvert.html Sách, tạp chí
Tiêu đề: Xử lý văn bản Tiếng Việt qua mạng

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w