Table 15: Mô tả bảng A11 Table 16: Mô tả bảng A12

Một phần của tài liệu 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 (Trang 73 - 81)

Table 15: Mô tả bảng A11

Bảng A12

# Tên trường Kiểu dữ liệu Cho phép

null Giá trị mặc định Khoá chín h Kho á ngo ài Ghi chú

1 A12_ID INT NOT

NULL Yes No

2 A01_ID INT NOT

NULL No Yes

3 A12_RelatedID INT NOT

NULL No

No

4 A12_Index INT NULL 0 No No

5

A12_StandIndex FLOAT NULL 0.0 No No

2. CÁC MODUL

2.1 Modul đọc các định dạng tài liệu

Có thể xem lại phần trên để hiểu rõ về cách modul này đọc tài liệu thế nào. Modul này được thiết kế thành file dll để như hàm thư viện dùng trong chương trình.

Có một số điểm cần chú ý khi 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 là đường dẫn tuyệt đối của file trên ổ đĩa bao gồm cả tên và phẩn mở rộng.

• Với file pdf, chú ý version của bản acrobat reader mà ta cài. Chú ý nên dùng file pdf với version 7.0.1

2.2 Modul tách từ

Modul này gồm 4 lớp chính: 1. Lớp clsDictionary:

 public static void Init(string path)

Lớp khởi tạo từ điển bằng phương thức Init với path là đường dẫn tuyệt đối file từ điển. Cũng chính trong 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 các giải thuật tìm kiếm. Trong lớp này chú ý các 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: (adsbygoogle = window.adsbygoogle || []).push({});

arl.Sort();

Phương thức này là phương thức sẵn có trong C# cho một mảng. Nó sẽ sắp xếp theo thứ tự tăng dần của mã ASCII của phần tử. Do đó, nó có thể sắp xếp mảng các số hoặc mảng các string.

 public static int Term2Id(string Term)

Phương thức tiến hành tìm kiếm một xâu Term có thuộc từ điển hay không. Nếu có, trả lại Id, nếu không trả về 0. 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 trong các giải thuật để tăng tốc độ tìm kiếm).

2. Lớp clsPunctuator.cs

Lớp này thực hiện các bước chuẩn hóa văn bản. Nhận biết các ký tự dấu chấm câu, dấu chấm trong mail, hay trong số hàng nghìn. Tách nhiều khoảng trống thành 1 khoảng

3. Lớp clsSentence.cs

Lớp thể hiện cho một câu với các thuộc tính nhất định.

4. Lớp clsTermSplitter.cs

Lớp sẽ thể hiện giải thuật tách câu thành các từ, cụm từ để kiểm tra nó có trong từ điển hay không.

Thuật toán đọc từ là thuật “từ trái sang”, đã được trình bày ở phần trên. Có thể tối ưu giải thuật từ các phương thức trong lớp này.

5. Lớp clsStopWordRemover.cs

Lớp cuối cùng thực hiện phương thức tách câu.

 public clsStopWordRemover(string path)

Lớp được khởi tạo với phương thức này, với path là file+đường dẫn đầy đủ đến file stopword. Lớp sẽ lưu file này vào biến mảng trong lớp.

 public string[] RemoveStopWord(string doc,string pathDic)

Lớp sẽ gọi tiếp các phương thức sau để thực hiện việc tách văn bản thành các từ khóa:

clsTermSplitter Splitter = new clsTermSplitter(); clsPunctuator Punctuator = new clsPunctuator(); clsDictionary.Init(pathDic);

Phương thức này trả về mảng các từ khóa của văn bản. Trong phương thức này cũng loại bỏ các từ stopword từ mảng các từ stopword được lưu trong phương thức khởi tạo stopword trên.

Modul tách từ sẽ được gọi bằng cách using Utils.Spliter;

clsStopWordRemover swr = new clsStopWordRemover(this.lbStopFile.Text); string[] result = swr.RemoveStopWord(detail, dicfile);

Với dicfile là file từ điển gồm cả đường dẫn. detail là string văn bản mà ta đọc vào từ bước trước. this.lbStopFile.Text là đường dẫn tuyệt đối đến file stopword.

2.3 Modul LSA

Modul này được thiết kế ở lớp Util. Đầu vào của modul là tập tài liệu và tập các từ khóa, đầu ra là cập nhật cơ sở dữ liệu các thông tin về độ tương đồng giữa các tài liệu.

Thông tin chi tiết xin tham khảo bên đồ án của Mr Cường.

3. CÀI ĐẶT

Chương trình được thiết kế với giao diện website. Ta có thể cài đặt CSDL, với file backup được cung cấp, mã nguồn đưa vào IIS. Thư mục website trỏ tới thư mục SS01.

PHẦN V: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

1. KẾT LUẬN

Ngày nay, internet đã chở thành cuộc cách mạng lớn của nhân loại mà động lực của nó chính là sự phát triển kinh tế mang tính toàn cầu. Nhưng sự phát triển đó cũng đòi hỏi ngày càng nhiều cơ sở lưu trữ dữ liệu hơn dẫn đến việc khai thác hiệu quả dữ liệu trở nên khó khăn. Để nâng cao khả năng sử lý dữ liệu thì dữ liệu phải được chọn lọc trước. Một hướng chọn lọc dữ liệu hiểu quả đó là phân tích ngữ nghĩa của văn bản. Toàn bộ văn bản được cô đọng trong ngữ nghĩa của nó. Chính vì vậy nếu phân tích được ngữ nghĩa của văn bản chúng ta sẽ giảm được một khối lượng lớn câu chữ không hàm chứa thông tin. (adsbygoogle = window.adsbygoogle || []).push({});

Việc nghiên cứu ngữ nghĩa của văn bản mở ra một hướng phát triển mới trong khai thác thông tin trên dữ liệu. Ngữ nghĩa của văn bản mang lại nhiều thuận lợi như vậy nhưng để thật sự hiểu rõ được các phương pháp nghiên cứu phân tích ngữ nghĩa là không dễ dàng. Do vậy mục tiêu của đồ án đặt ra gồm hài vấn đề chính như sau:

Về lý thuyết: Mục tiêu tìm hiểu, nghiên cứu về ngữ nghĩa của văn bản bao gồm các phần như: Phân tích, tách văn bản thành tập từ khoá, lọc tách từ khoá của văn bản nhằm cô đọng những từ khoá đặc trưng cho ngữ nghĩa của văn bản, thống kê và trích lọc những văn bản có ngữ nghĩa tương đồng.

Về phần ứng dụng minh hoạ: Mục tiêu là xây dựng được một ứng dụng mang tính demo sự khả thi của các kỹ thuật phân tích ngữ nghĩa.

Nội dung của đề tài đưa ra khá rộng và chỉ được thực thiện trong vòng 4 tháng do vậy để hoàn tất đề tài này chúng em gặp rất nhiều khó khăn về mặt tìm kiếm tài liệu, đọc hiểu tài liệu và một số kỹ thuật để vận dụng kiến thức mình đã tìm hiểu được. Nhưng bù đắp lại những khó khăn vất vả đó là chúng em đã tiếp thu được rất nhiều kiến thức mới lạ và rất bổ ích về ứng dụng ngữ nghĩa của văn bản trong công nghệ thông tin – mở ra một hướng phát triển mới trong thế giớ công nghệ thông tin. Kết quả xứng đáng đó chính là chúng em đã hoàn thành được những mục tiêu, yêu cầu đề ra của đồ án.

Kết quả về mặt nghiên cứu

Qua quá trình nghiên cứu và tìm hiều về lĩnh vực ứng dụng ngữ nghĩa của văn bản, chúng em đã hiểu được và ghi nhận lại một số kết quả đạt được như sau:

• Tìm kiếm được nhiều tài liệu hay và bổ ích về ngữ nghĩa của văn bản. • Nắm được các kỹ thuật phân tích ngữ nghĩa của văn bản, một hướng nghiên cứu mới nhất của công nghệ thông tin hiện tại và trong tương lai. Đông thời những ý tưởng mới xuất phát có thể mang lại nhiều lợi ích cho con người cũng như phát triển kinh tế. Kết quả đạt được khi nghiên cứu về ngữ nghĩa của văn bản như sau:

 Nắm rõ các kỹ thuật tách văn bản với các định dạng bất kỳ.

 Nắm vững các kỹ thuật lọc tách từ khoá đặc trưng cho nội dung văn bản.

 Tìm hiểu và nắm được các kỹ thuật thống kê trích lọc những văn bản có ngữ nghĩa tương đồng.

 Tìm hiểu các kỹ thuật phân tích logfile.

Kết quả về mặt phát triển ứng dụng

Đối với ứng dụng minh hoạ chúng em đã hoàn tất được mục tiêu của đồ án đề ra là nắm vững các kỹ thuật: Tổ chức, lưu trữ dữ liệu và truy vấn dữ liệu trên SQL. Cách sử dụng các kỹ thuật tách văn bản để tách văn bản ở định dạng bất kỳ thành các tập từ khoá đại diện cho ngữ nghĩa của nó. Cài đặt và phát triển kỹ thuật lọc từ khoá cho phép loại bỏ những từ khoá ít hàm chứa ngữ nghĩa của văn bản. Cài đặt và phát triển kỹ thuật LSA cho phép so sánh độ tương đồng ngữ nghĩa của các văn bản.

Về mặt chương trình kết quả thu được là hai phân hệ: Một phân hệ dành cho người sử dụng, một phân hệ dành cho người quản trị:

• Đối với phân hệ người dùng: Hệ thống hỗ trợ việc tìm kiếm tài liệu và gợi ý tài liệu dựa trên ngữ nghĩa vủa văn bản. Cho phép người dùng đăng ký thành viên nhắm nâng cao khả năng hỗ trợ của hệ thông đối với người dùng.

• Đối với phân hệ người quản trị: Hệ thống hỗ trợ việc cập nhập thông tin về các đối tượng trong hệ thống như thêm, sửa, xoá văn bản, thành viên, cấu hình hệ thống.

Sau khi hoàn tất ứng dụng chúng em còn nắm thêm được các kiến thức về công nghệ: .Net, JavaScript, SQLserver, quan trọng hơn cả là chúng em nắm được khả năng phân tích ngử nghĩa của văn bản, từ đó tự động trích rút được những văn bản đồng nghĩa.

2. Hướng phát triển

Vì thời gian phát triển đồ án không nhiều nên chúng em tập trung vào những vấn đề chính của đồ án đó là phân tích ngữ nghĩa của văn bản. Việc phát triển thuật toán so sánh độ tương đồng của văn bản và khai thác dữ liệu đã đạt được nhiều thành công. Dựa vào những thành quả đó chúng ta có thể mở ra những hướng mới nhằm tối ưu hoá thuật toán và nâng cao độ chính xác của kết quả. Đồng thời mở rộng nguồn dữ liệu nhờ trực tiếp tìm kiếm các dữ liệu trên mạng hay cải thiện tính năng tìm kiếm nhờ sử dụng các engine có sẵn. Dựa trên những khả năng phát triển đó, đồ án có thể hoàn thiện khi có thêm các tính năng sau:

Thu thập dữ liệu trực tuyến

Dữ liệu trực tuyến trên mạng là một tài nguyên gần như vô hạn. Nếu có một cơ chế cho phép khai thác dữ liệu trên mạng là đầu vào cho hệ thống thì các chức năng của hệ thống sẽ đạt hiệu quả cao và phong phú hơn. Hơn nữa, việc có một nguồn dữ liệu động như vậy thì công việc cập nhập dữ liệu sẽ không cần thiết, việc quả lý dữ liệu coi như tiến hành tự động. Tóm lại, hệ thống rất cần một module cho phép lấy dữ liệu trực tuyến. Đây chính là một hướng phát triển chủ chốt củ đồ án nhằm làm cho đồ án hoàn thiện hơn và có tính ứng dụng thực tế cao hơn.

Thông tin người dùng

Thông tin người dùng hiện tại ở các hệ thống website chỉ đơn thuần được tổ chức lưu trữ dưới dạng bảng dữ liệu. Thông tin người dùng chỉ đáp ứng vai trò xác thực trong hệ thống chưa góp phần thể hiện được nhu cầu của từng cá nhân. Việc nghiên cưa các thức tổ chức và lưu trữ thông tin người dùng hiệu quả sẽ đem lại một kết quả bất ngờ, giúp hệ thống có thể gợi ý tìm kiếm đối với từng các nhân người dùng. Đây cũng là một điển nhấn của thế hệ web mới, hướng tới cá nhân người dùng. Vậy cách thức tổ chức lưu trữ thông tin người dùng thế nào đó là một hướng mở ra của đồ án. Đồng thời việc thu thập thông tin người dùng thế nào cũng là một kỹ thuật cần phải nghiên cứu. Hiện tại chúng em chú ý tới hai cách thức thu thập thông tin người dùng. Một là thu thập tĩnh, dựa trên nhưng form đăng ký và feedback của người dùng. Hai là thu thập động, dựa trên các kỹ thuật trích lọc thông tin thông qua phân tích logfile.

Các kỹ thuật phân tích logfile đã được phát triển và ứng dụng ngay từ khi internet ra đời. Tuy nhiên tuỳ vào mục đích của hệ thống việc phân tích logfile có thể sử dụng những kỹ thuật khác nhau. Ở đây chúng em muốn nhấn mạnh tới một khả năng mà phân tích logfile có thể đáp ứng đó chính là thu thập thông tin người dùng. Phát triển một module cho phép quản lý thông tin người dùng rất có ích cho một hệ thông tìm kiếm, gợi

ý. Hệ thông sẽ mang tính hướng người dùng hơn bởi những kết quả của hệ thống được lọc dựa trên thông tin quan tâm của người dùng.

Sử dụng search engine

Ngày nay, các kỹ thuật tìm kiếm không chỉ đạt độ chính xác cao mà còn đạt tốc độ cao. Tốc độ đó chính là tiêu chuẩn cạnh tranh cho các hệ thống tìm kiềm. Google đã nổi lên như là một site tìm kiếm toàn cầu với độ chính xác cao và nhanh. Không những thế Google còn cho phép các hệ thống khác sử dụng thành quả của nó đó chính là module search engine. Module này cho phép các hệ thống có thể lấy kết quả tìm kiếm một cách nhanh chóng dựa trên những tài nguyên mà máy chủ google cung cấp. Nếu hệ thống có thể sử dụng module này thì hiệu năng tìm kiếm sẽ được nâng cao hơn. Đây cũng chính là một hướng phát triển của hệ thống trong tương lai.

TÀI LIỆU THAM KHẢO

[1] Cải tiến giải thuật CYK cho bài toán phân tích cú pháp tiếng Việt -Đinh ThịPhương Thu, Huỳnh Quyết Thắng, Hoàng Vĩnh Sơn

[2] Gán nhãn từ loại cho tiếng Việt dựa trên văn phong - Nguyễn Quang Châu, Phan Thị Tươi, Cao Hoàng Trụ (adsbygoogle = window.adsbygoogle || []).push({});

[3] Kết hợp xử lý ngôn ngữ tự nhiên và mạng Kohonen để nâng cao khả năng gom cụm văn bản tiếng Việt -Đỗ Phúc, Mai Xuân Hùng, Nguyễn Thị Kim Phụng

[4] A case study of the probabilistic tagger QTAG for Tagging Vietnamese Texts

Nguyen Thi Minh Huyen,Vu Xuan Luong, Le Hong Phuong

[5] Dinh Dien, Từ tiếng Việt, Vietnam National University, HCMC, Vietnam, 2000.

[6] Dinh Dien, Hoang Kiem, Nguyen Van Toan, Vietnamese Word Segmentation, The

Sixth Natural Language Processing Pacific Rim Symposium, Tokyo, Japan 2001, pp749- 756.

[7] Automata and Formal Language. An Introduction – Dean Kelley – Prentice Hall, Englewood Cliffs, New Jersey 07632.

[8] Compilers : Principles, Technique and Tools - Alfred V.Aho, Jeffrey D.Ullman - Addison - Wesley Publishing Company, 1986.

[9] Compiler Design – Reinhard Wilhelm, Dieter Maurer - Addison - Wesley Publishing Company, 1996.

[10] Design of Compilers : Techniques of Programming Language Translation - Karen A. Lemone - CRC Press, Inc, 1992.

[11] Modern Compiler Implementation in C - Andrew W. Appel - Cambridge University Press, 1997.

[12] Hoàng Văn Hành.1997. Ngữ nghĩa học – Các khuynh hướng và phương pháp phân tích ngữ nghĩa. Hà nội.

[13] PTS. Vương Tất Đạt . Logich hình thức. Trường Đại học Sư Phạm Hà Nội 1 [14] Đặng Thị Hưởng. Semantics, TP.Hồ Chí Minh 1997 (Tài liệu lưu hành nội bộ) [15]. Trương Gia Vinh. Những bài giảng Cơ sở Ngôn ngữ học. BXB Đại Học mở Bán

công TP.HCM.(Tài liệu lưu hành nội bộ)

[16]. Nguyễn Thiện Giáp (chủ biên) Dẫn luận Ngôn ngữ học. NXB Giáo dục. 2000 [17]. Trần Văn Cơ . Ngôn ngữ. Đại học sư phạm TP.Hồ Chí Minh.1986.

[18]. Roderick A. Jacobs. English syntax. A Grammar for English language professionals. Oxford American English.

Một phần của tài liệu 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 (Trang 73 - 81)