1. Trang chủ
  2. » Giáo án - Bài giảng

Phát triển hệ truy hồi thông tin tiếng Việt dựa trên mã nguồn mở

9 32 0

Đ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 9
Dung lượng 276,93 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các hệ truy hồi thông tin hiện nay vẫn còn trả về kết quả không như mong muốn của người dùng và hỗ trợ tốt cho tiếng Anh; riêng với tiếng Việt thì các hệ này vẫn còn ít và không được công bố rộng rãi các mã nguồn. Bài báo trình bày cách phát triển hệ một truy hồi thông tin tiếng Việt dựa trên mã nguồn mở Lucene và cách xây dựng công cụ VietAnalyzer hỗ trợ xử lí tiếng Việt.

Trang 1

This paper is available online at http://stdb.hnue.edu.vn

PHÁT TRIỂN HỆ TRUY HỒI THÔNG TIN TIẾNG VIỆT

DỰA TRÊN MÃ NGUỒN MỞ

Trần Anh Tuấn và Đào Thị Thanh Loan

Khoa Ngoại ngữ - Tin học, Trường Cao đẳng Sư phạm Đắk Lắk

Tóm tắt Hệ truy hồi thông tin có kết quả trả về càng gần với câu truy vấn của

người dùng đưa vào thì càng có độ tin cậy cao Tuy nhiên, các hệ truy hồi thông tin

hiện nay vẫn còn trả về kết quả không như mong muốn của người dùng và hỗ trợ tốt

cho tiếng Anh; riêng với tiếng Việt thì các hệ này vẫn còn ít và không được công bố

rộng rãi các mã nguồn Bài báo trình bày cách phát triển hệ một truy hồi thông tin

tiếng Việt dựa trên mã nguồn mở Lucene và cách xây dựng công cụ VietAnalyzer

hỗ trợ xử lí tiếng Việt

Từ khóa: Hệ truy hồi thông tin tiếng Việt, vnIR, VietAnalyzer.

1 Mở đầu

Với sự phát triển nhanh chóng của internet, đặc biệt là world wide web, giúp cho người dùng chia sẻ các thông tin với nhau dễ dàng hơn Các trang web được phân bố hầu hết ở tất cả các quốc gia, mà hầu hết các trang web gần như là thông tin ở dạng văn bản Mỗi tài liệu, thông tin có ngôn ngữ, văn phong, từ vựng khác nhau phụ thuộc vào nguồn gốc quốc gia, ngôn ngữ, tác giả, vì thế, có thể nói, thông tin trong thế giới world wide web là rất phong phú và đa dạng Chính sự phát triển mạnh mẽ và đa dạng này đã gây khó khăn cho người dùng trong việc tìm kiếm thông tin liên quan đến lĩnh vực cần tìm Để đáp ứng được nhu cầu tìm kiếm thông tin liên quan đến lĩnh vực cần tìm của người dùng trong kho thông tin khổng lồ, phong phú và đa dạng thì cần phải có một công cụ trợ giúp người dùng trong quá trình tìm kiếm Công cụ hỗ trợ người dùng trong quá trình tìm kiếm

đó chính là các máy tìm kiếm (search engine)

Hiện nay, các máy tìm kiếm được phát triển nhằm hỗ trợ người dùng trong quá trình tìm kiếm thông tin như Google, Yahoo, Các máy tìm kiếm này đã và đang hỗ trợ đắc lực trong việc tìm kiếm thông tin người dùng quan tâm và kết quả có độ chính xác và độ

Received March 2, 2012 Accepted May 20, 2012.

Contact Tran Anh Tuan, e-mail address: tuanta@dlc.edu.vn

or Dao Thi Thanh Loan, e-mail address: loandtt@dlc.edu.vn

Trang 2

bao phủ cao Tuy nhiên, các máy này chỉ hỗ trợ tốt cho các ngôn ngữ mà khoảng trống

là dấu hiệu để nhận dạng từ Tiếng Việt là một trong những ngôn ngữ mà khoảng trống không phải là dấu hiệu để nhận dạng từ [1] Chính điều này đã làm ảnh hưởng rất lớn đến

độ chính xác và độ bao phủ tài liệu liên quan

Mặc dù, các máy tìm kiếm này vẫn hỗ trợ cho tiếng Việt trong việc tìm kiếm thông tin, nhưng vẫn còn nhiều thách thức như kết quả trả về chứa nhiều tài liệu mà người dùng không quan tâm Do đó, người dùng phải tốn nhiều thời gian trong quá trình chọn lọc thông tin liên quan

Hơn nữa, mã nguồn của các máy tìm kiếm như Google, Yahoo, không được công

bố Cũng như các máy tìm kiếm Google, Yahoo thì mã nguồn các máy tìm kiếm hỗ trợ cho tiếng Việt cũng không được công bố Do vậy, các tổ chức muốn sử dụng chức năng tìm kiếm phục vụ cho mục đích riêng của mình thì hầu như đều phải tự xây dựng và phát triển máy tìm kiếm từ đầu Để xây dựng hoàn thiện một máy tìm kiếm thì rất mất nhiều công sức cũng như tài chính Một trong những giải pháp phù hợp đó là sử dụng các mã nguồn mở về máy tìm kiếm (hoặc hệ truy hồi thông tin - Information Retrieval) đã công

bố Hệ truy hồi thông tin khác với máy tìm kiếm là không có bộ dò tìm (web crawler) [5] Xây dựng máy tìm kiếm/hệ truy hồi thông tin hiện nay có rất nhiều nhóm nghiên cứu Công trình của nhóm tác giả Đỗ Phúc và cộng sự [2] là máy tìm kiếm tiếng Việt, hỗ trợ tìm kiếm thông tin thuộc lĩnh vực công nghệ thông tin Máy tìm kiếm này có hỗ trợ tìm kiếm thêm các từ hoặc cụm từ gần nghĩa với câu truy vấn ban đầu dựa vào ontology thuộc lĩnh vực tin học Trong công trình của mình, nhóm tác sử dụng Oracle text để đánh chỉ mục, đây là một trong những ưu điểm của máy này Tuy nhiên, trong quá trình tạo kho ngữ liệu (corpus) phục vụ cho việc đánh chỉ mục, nhóm tác giả không loại bỏ các từ trong danh sách stopword tiếng Việt, điều này có thể dẫn đến kho ngữ liệu đánh chỉ mục

có nội dung lớn Công trình của nhóm tác giả Huỳnh Đức Việt và cộng sự [4] là hệ thống tìm kiếm công văn tiếng Việt phát triển dựa trên mã nguồn mở Lucene Hệ tìm kiếm này

hỗ trợ hai ứng dụng đó là: ứng dụng thứ nhất cho phép người quản trị tạo và cập nhật chỉ mục trên máy chủ; ứng dụng thứ hai cho phép người dung tìm kiếm trên môi trường LAN

và môi trường Internet Hệ thống tìm kiếm công văn tiếng Việt chỉ hỗ trợ các chức năng

xử lí tiếng Việt trong giai đoạn đánh chỉ mục như loại bỏ các từ loại bỏ tiếng Việt, chuẩn hóa, mà không đề cập đến việc xử lí tiếng Việt như tách câu, tách từ tiếng Việt trong việc đánh chỉ mục cũng như tìm kiếm Máy tìm kiếm VSearch của tác giả Nhữ Đình Thuần [3] là máy hỗ trợ tiếng Việt Máy này sử dụng VietSpider, VSearch Crawler sàng lọc, bóc tách nội dung các trang web VietSpider, VSearch Crawler là điểm mạnh của VSearch nên máy này không cần nhiều đến các kĩ thuật xếp hạng (pagerank) phức tạp Máy Vsearch sử dụng mã nguồn mở Solr và là một máy tìm kiếm thương mại nên mã nguồn không được công bố Công trình Sarsarn Look của NECTEC [5,7] là máy tìm kiếm hỗ trợ tiếng Thái Máy này sử dụng mã nguồn mở Lucene phát triển Để hỗ trợ cho tiếng Thái, NECTEC xây dựng công cụ ThaiAnalyzer hỗ trợ tiền xử lí tiếng Thái Máy đã và đang phát triển với nhiều phiên bản khác nhau, với mỗi phiên bản thì máy được bổ sung thêm các thành phần như tìm kiếm ngữ nghĩa dựa trên ontology, truy vấn xuyên ngữ Thái-Anh,

Trang 3

2 Nội dung nghiên cứu

2.1 Sơ đồ và hoạt động của hệ truy hồi thông tin tiếng Việt

Để xây dựng hệ truy vấn thông tin tiếng Việt, chúng tôi đề xuất mô hình như Hình

1 và hệ thống tạm gọi là vnIR

Hình 1 Mô hình hệ truy hồi thông tin tiếng Việt - vnIR

Mô hình thực hiện theo 2 giai đoạn như sau:

Giai đoạn 1: Đánh chỉ mục (Indexing)

Ở giai đoạn này, tập các tài liệu được công cụ VietAnalyzer chuẩn hóa thành tập các tài liệu chuẩn tiếng Việt (tập tài liệu chuẩn gồm các câu ở dạng mã Unicode và không chứa stopword tiếng Việt); các tài liệu chuẩn tiếng Việt là đầu vào của giai đoạn đánh chỉ mục (indexing)

Các tài liệu chuẩn tiếng Việt được thực hiện bằng thuật toán chuẩn tập tin tiếng Việt.

Giai đoạn 2: Tìm kiếm và trả kết quả (Searching)

Dựa trên câu truy vấn được người dùng đưa vào, công cụ VietAnalyzer sẽ thực hiện tách từ và chuyển sang dạng kí số Tiếp theo, thực hiện tìm kiếm các tài liệu liên quan đến câu truy vấn của người dùng dạng kí số

Câu truy vấn chuyển sang dạng kí số được thực hiện bằng thuật toán Chuyển câu

tiếng Việt sang dạng kí số Kết quả của giai đoạn này là một tập tài liệu KQ được vnIR đánh giá ứng với câu truy vấn

2.2 Phân tách câu và từ tiếng Việt

Phân tách câu:

Phân tách câu dựa vào dấu báo hiệu kết thúc câu (dấu hỏi, chấm than, ) hoặc dấu chấm câu Tuy nhiên, do tính nhập nhằng của dấu báo hiệu kết thúc câu nên việc phân tách câu gây không ít khó khăn [1] Hiện nay, các công trình phân tách câu sử dụng các phương pháp: TBL, Maxium Entropy,

Trang 4

Đối với tiếng Việt, các công trình phân tách câu đã được công bố của các nhóm tác giả Nguyễn Cẩm Tú,

Phân tách từ:

Tiếng Việt là một trong những ngôn ngữ mà khoảng trống không phải là dấu hiệu

để nhận dạng từ mà chỉ mang ý nghĩa phân tách các âm tiết với nhau [1] Ví dụ : từ “đất nước” được tạo ra từ 2 âm tiết “đất” và “nước”, cả 2 âm tiết này đều có nghĩa riêng khi đứng độc lập, nhưng khi ghép lại sẽ mang một nghĩa khác

Chính vì thế, phân tách từ tiếng Việt là một trong những giai đoạn ảnh hưởng rất lớn đến kết quả các bài toán xử lí ngôn ngữ tự nhiên khác như phân loại văn bản, tóm tắt văn bản, Do vậy, bài toán này có rất nhiều nhóm nghiên cứu, công bố và kết quả có độ chính xác ngày càng cao như công trình của nhóm tác giả Phan Thị Tươi, nhóm tác giả Đinh Điền, nhóm tác giả Nguyễn Cẩm Tú,

Trong bài báo này, chúng tôi sử dụng công cụ JvnTextPro của nhóm tác giả Nguyễn Cẩm Tú [9] để thực hiện phân tách câu và từ vì công cụ có hỗ trợ mã nguồn mở

2.3 Xây dựng công cụ hỗ trợ tiền xử lí

Hệ truy hồi thông tin có các nhiệm vụ sau: mô hình biểu diễn văn bản, thuật toán

tìm kiếm so trùng từ khóa và cơ chế lọc kết quả truy vấn[6,8] Lucene [10] là mã nguồn

mở có đầy đủ các chức năng của một hệ truy hồi thông tin Do vậy, chúng tôi kế thừa toàn bộ các chức năng cũng như cấu trúc của Lucene Tuy nhiên, Lucene không hỗ trợ cho tiếng Việt Do đó, cần phải có công cụ hỗ trợ tiền xử lí tiếng Việt, công cụ này được chúng tôi xây dựng và tạm gọi là VietAnalyzer

Công cụ VietAnalyzer gồm các chức năng như sau:

- Chức năng 1: Chuẩn hóa các tập tin sang dạng mã Unicode

- Chức năng 2: Phân tách tài liệu thành tập các câu

- Chức năng 3: Phân tách câu thành tập các từ

- Chức năng 4: Loại bỏ các từ trong danh sách stopword tiếng Việt

- Chức năng 5: Chuyển câu tiếng Việt sang câu dạng kí số

- Chức năng 6: Chuyển câu dạng kí số sang câu tiếng Việt

Các thuật toán hỗ trợ công cụ VietAnalyzer gồm VnFNF, VnS2DS, DS2VnS Các thuật toán được trình bày chi tiết như sau:

Thuật toán VnFNF hỗ trợ chức năng 1, 2, 3 và 4 của công cụ VietAnalyzer Kết quả thuật toán là tập các tập tin chuẩn (tập tin chuẩn gồm các câu ở dạng mã Unicode và không chứa stopword tiếng Việt)

Thuật toán 1: Chuẩn tập tin tiếng Việt

(Vietnamese File Normal Formalize - VnFNF)

Nhập:Tập tài liệu D = {di}, i = 1 n

Xuất:Tập tài liệu D′

= {d′

i}, i = 1 n gồm các tài liệu chuẩn tiếng Việt

Trang 5

Phương pháp:

1 Với mỗi tài liệu di thuộc D, i = 1 n

2 Chuẩn hóa di;

3 Phân tách di thành tập câu {Sj}, j = 1 m

4 Với mỗi câu Sj thuộc di

j ⇐ V nS2DS(Sj);

j vào d′ i

7 Quay lại 4

8 Quay lại 1

9 Return D′;

Thuật toán VnS2DS hỗ trợ việc chuẩn tập tin tiếng Việt Kết quả của thuật toán là câu tiếng Việt ở dạng kí số

Thuật toán 2: Chuyển câu tiếng Việt sang dạng kí số

(Vietnamese Sentence to Digital String - VnS2DS)

Nhập: slà câu tiếng Việt

Xuất: s′ là câu được chuyển từ tiếng Việt sang dạng kí số

Phương pháp:

1 Phân tách s thành tập các từ {wj}, j = 1 m

2 s′

← φ;

3 Với mỗi từ wj thực hiện:

4 Nếu wj là stopword thì loại bỏ;

5 Ngược lại: chuyển wj sang dạng kí số và lưu vào w′

j;

← s′ + w′

j;

7 Quay lại 3

8 Trả về s′;

Thuật toán DS2VnS hỗ trợ chức năng 6 của công cụ VietAnalyzer Kết quả của thuật toán là câu ở dạng tiếng Việt

Thuật toán 3: Chuyển câu ở dạng kí số sang tiếng Việt

(Digital String to Vietnamese Sentence - DS2VnS)

Nhập: s′ là câu ở dạng kí số

Xuất: s′′là câu được chuyển từ dạng kí số sang tiếng Việt

Phương pháp:

1 AA ← {b, c, f, , x, w, z}; //tập kí tự không dấu

2 s′′

← φ; i = 1;

3 Loại bỏ các dấu gạch dưới trong s′;

4 Trong khi i nhỏ hơn chiều dài của s′:

5 Nếu kí tự cikhông thuộc AA và khác rỗng thì:

6 Sao chép 3 kí tự từ vị trí thứ i và lưu vào t;

Trang 6

7 Chuyển t sang tiếng Việt và lưu vào t ;

8 s′′

← s′′

+ t ; i+ = 3;

9 Ngược lại: s′′

← s′′

+ ci; i + +;

10 Quay lại 4;

11 Trả về s′′;

Trong đó:

- Stopword tiếng Việt: á, à, ạ, á à, a ha, a lô, à ơi,

- Mã quy ước chuyển từ tiếng Việt sang kí số: à = a03; á = a05, ả = a07, ã = a09,

ạ = a11, ă = a13,

Với cách biểu diễn các kí tự đặc biệt như trên thì dung lượng tập tin sau khi mã hóa

sẽ giảm đi một nửa so với cách biểu diễn ở hệ Hexa 6 kí tự như Lucene biểu diễn cho các ngôn ngữ như Hy Lạp, Séc,

Ví dụ minh họa:

Thuật toánVnS2DS:

- Cho câu tiếng Việt:bộ nhớ máy tính mới

- Kết quả phân tách từ gồm:bộ_nhớ; máy_tính; mới

- Các từ ở dạng kí số:bo23_nho29; ma05y_ti05nh; mo29i

- Câu ở dạng kí số:bo23_nho29 ma05y_ti05nh mo29i

Thuật toán DS2VnS:

- Câu ở dạng kí số:bo23_xu19_ly05_trung_ta25m Intel mo29i

- Kết quả câu tiếng Việt:bộ xử lý trung tâm Intel mới

2.4 Thực nghiệm

Kho ngữ liệu:

Bảng 1: Thống kê kho ngữ liệu

hiệu Nguồn tài liệu Số lượng (tập tin) Dung lượng (MB)

D3 Wikipedia tiếng Việt, Thể loại: Máy tính 92 5,8

D4 Khoa học công nghệ (Liên hiệp các hội khoahọc và kỹ thuật Tp Hồ Chí Minh), Mục làm bạn

D5 Thông tin công nghệ, Mục máy tính 660 46,0

D6 Tin nhanh CNTT - TT (ICT News) - Mục phầncứng 609 34,2

Hiện nay, tiếng Việt vẫn chưa có một kho ngữ liệu chuẩn như TREC được công bố

Do đó, chúng tôi phải xây dựng một kho ngữ liệu thuộc lĩnh vực máy tính Kho dữ liệu được lấy từ các trang: Wikipedia tiếng Việt, Khoa học công nghệ, Thông tin công nghệ và

Trang 7

Tin nhanh, Công nghệ thông tin - truyền thông Sau đó bóc tách chúng từ dạng trang web (.html, htm) sang dạng tập tin văn bản (.txt) Kho ngữ liệu được dùng để đánh chỉ mục phục vụ tìm kiếm và được thống kê theo số lượng và dung lượng như ở bảng 1

Kết quả thực nghiệm:

Bảng 2 Thống kê độ chính xác, độ bao phủ của vnIR

hiệu Câu truy vấn

Số tài liệu tìm được

Số tài liệu tìm được liên quan

Tổng số tài liệu liên quan

Độ chính xác P (%)

Độ bao phủ R (%)

Q3 màn hình tinh thể lỏng 485 7 9 1,44 77,78

Mục tiêu đặt ra của bài báo là phát triển hệ thống truy hồi thông tin tiếng Việt có

độ tin cậy Do vậy, giá trị của độ chính xác (precision) và độ bao phủ (recall) được chọn làm tiêu chí để đánh giá trong phần thực nghiệm Độ chính xác và độ bao phủ được xác định như sau [8]:

Trang 8

Hình 2 Thống kê độ chính xác và độ bao phủ theo câu truy vấn

Độ chính xác (P) là tỉ lệ giữa số lượng tài liệu liên quan tìm được so với số tài liệu tìm được

Độ bao phủ (R) là tỉ lệ giữa số lượng tài liệu liên quan tìm được so với số tài liệu liên quan có trong kho ngữ liệu

Tập câu truy vấn là 25 câu truy vấn được chọn từ http://www.pcworld.com.vn/hoi-dap/phan-cung/để làm thực nghiệm

Kết quả được thể hiện ở Bảng 2 và Hình 2

Trong phần thực nghiệm chúng tôi sử dụng 14 câu truy vấn là tiếng Anh và từ viết tắt để kiểm nghiệm độ tin cậy của công cụ VietAnalyzer nên Độ tin cậy của công cụ VietAnalyzer được kiểm nghiệm thông qua kết quả thực nghiệm

Một trong những khó khăn của bài báo là kho ngữ liệu chuẩn cho tiếng Việt vẫn chưa có Do đó, độ chính xác và độ bao phủ của thực nghiệm có kết quả không cao Sở dĩ kết quả như thực nghiệm là do số tài liệu liên quan đến thông tin cần tìm còn ít và chưa phong phú Điều này cho thấy kho ngữ liệu cũng đóng vai trò quan trọng trong việc đánh giá thực nghiệm

3 Kết luận

Bài báo đã trình bày cách phát triển hệ truy hồi thông tin tiếng Việt sử dụng mã nguồn mở Lucene Để xây dựng hệ truy hồi vnIR cho tiếng Việt, bài báo đã sử dụng

mã nguồn mở Lucene (trong việc đánh chỉ mục và tìm kiếm) và xây dựng công cụ VietAnalyzer hỗ trợ Lucene trong việc xử lí tiếng Việt Kết quả thực nghiệm có độ chính xác 54,63%, độ bao phủ 78,83% Kết quả thực nghiệm có độ chính xác chưa cao là do kho ngữ liệu ngữ liệu do chúng tôi xây dựng là kho ngữ liệu tĩnh và chủ quan nên số mục tài liệu liên quan còn ít, chưa phong phú Vì vậy, công việc tiếp theo là xây dựng kho ngữ liệu lớn hơn và phong phú hơn trong việc đánh giá thực nghiệm chẳng hạn như sử

Trang 9

dụng Internet như là kho ngữ liệu trong việc đánh giá thực nghiệm và tiếp tục cải tiến các thuật toán nhằm cải thiện độ chính xác, độ bao phủ của cho hệ truy hồi thông tin tiếng Việt vnIR

TÀI LIỆU THAM KHẢO

[1] Đinh Điền, 2006 Giáo trình Xử lí Ngôn ngữ tự nhiên Nhà xuất bản Đại học Quốc

gia Tp Hồ Chí Minh

[2] Đỗ Phúc và cộng sự Phát triển một hệ thống Search Engine hỗ trợ cho tìm kiếm thông

tin thuộc lĩnh vực CNTT Trường Đại học Khoa học Tự nhiên Tp Hồ Chí Minh [3] Nhữ Đình Thuần, 2011 Vsearch 1.0

[4] Huỳnh Đức Việt, Võ Duy Thanh và Võ Trung Hùng, 2010 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ạp chí Khoa học và Công nghệ, Đại học Đà Nẵng, Số 4 (39) 2012, trang 307-316

[5] Choochart Haruechaiyasak Information Retrieval and Search Engine Research and

Development on Information, National Electronics and Computer Technology Center [6] Christopher D Manning, Prabhakar Raghavan and Hinrich Sch¨utze, 2008

Introduction to Information Retrieval Cambridge University Press, Chapter 9,

pp 177-194

[7] NECTEC, 2010 SanSarn Look Roadmap.

[8] Ricardo Baeza - Yates, Berthier Ribeiro - Neto, 1999 Modern Information Retrieval.

ACM Press, New York

[9] Nguyen Cam Tu, Phan Xuan Hieu and Nguyen Thu Trang, 2010 JVnTextPro: A tool

to process Vietnamese texts version 2.0

[10] Lucene docs, http://lucene.apache.org/core/3

ABSTRACT Vietnamese language information retrieval using open source

Information retrieval systems are to provide accurate information in response to users’ queries Currently, information retrieval systems exist which return good results

in English but poor result in Vietnamese language Quality systems which function in Vietnamese language are few and little known The paper describes how to develop a Vietnamese language information retrieval system making use of Lucene open source material and how to build a VietAnalyzer tool in order to pre-process Vietnamese documents

Ngày đăng: 15/11/2020, 07:42

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w