Dữ liệu thực nghiệm gồm khoảng 300 bản tin lĩnh vực nhà đất. Nội dung về bản tin nhà đất được lấy từ các website sau: http://nhadat.timnhanh.com,
http://www.timnhadat.com/, http://nhadat24h.net/, các website này có các định dạng và cách trình bày khác nhau, do vậy cần phải qua bước xử lý như đã trình bày ở trên.
Trong đó file huấn luyện khoảng 300 câu, và file kiểm tra khoảng 200 câu.
4.2.3.1. Lần thử nghiệm thứ nhất
Trong bài toán của mình, tôi đã xây dựng file mẫu với kiểu định dạng Unigram trọn như file template sau
U00:%x[-2,0]: (xét từ trước hai vị trí và nhãn hiện tại) U01:%x[-1,0]: (xét từ trước một vị trí hiện tại )
U02:%x[0,0]: (từ hiện tại)
U03:%x[1,0]: (từ sau vị trí hiện tại) U04:%x[2,0]: (từ sau 2 vị trí)
U05:%x[-1,0] / %x[0,0]: (Từ trước và từ hiện tại) U06:%x[0,0]/%x[1,0]: (Từ sau và từ hiện tại)
Với các khuôn mẫu này sẽ tạo ra các hàm đặc trưng để cho mô hình có thể “tự học” Ví dụ như
func1= if(output= B-DC ) return 1 else return 0; func2=if(output=I-DC ) return 1 else return 0;
Trong lần thử nghiệm đầu tiên, toàn bộ hệ thống làm việc đều do mô hình tự học. Như chúng ta đã biết những thông tin cần rút trích trong bài toán trích chọn thông tin nhà đất là địa chỉ, diện tích, loại nhà, di động, giá bán.
Với các thông tin trích chọn này ta có thể mô tả như sau: Đối với thông tin về số di động sẽ bao gồm một chuỗi toàn những số từ 0 đến 9 ví dụ 01678558976, đối với địa chỉ, vị trí của nhà hoặc đất cần bán hoặc cần mua thì là một danh từ chỉ địa điểm và thường viết hoa ký tự đầu tiên ví dụ như Mỹ Đình- Hà Nội. Đối với thông tin giá bán thường thì giá bán sẽ là một chuỗi có cả số và có dấu chấm hoặc dấu phảy ví dụ như 1.2 tỷ hoặc 1,2 tỷ.
Từ những mô tả trên trong lần thử nghiệm thứ hai này, tôi sẽ thêm những tính năng mới mô tả cho những thông tin cần rút trích trên, giúp cho quá trình tự học của mô hình rút trích được tốt nhất.
Xét từ trước hai vị trí và nhãn hiện tại Xét từ trước một vị trí hiện tại
Từ sau vị trí hiện tại Từ sau 2 vị trí
Từ trước và từ hiện tại Từ sau và từ hiện tại
Từ hiện tại có toàn số hay không?
Từ hiện tại có chữ đầu tiên là chữ hoa hay không? Từ hiện tại có toàn chữ thường hay không?
Từ hiện tại có gồm các ký tự như “.” hoặc “,”.
Với những đặc trưng của dữ liệu bài toán như vậy mình có thể xây dựng thêm các feature fk trong công thức (2.16) mô tả cho dữ liệu của bài toán trích chọn thông tin nhà đất như sau:
Hàm thứ nhất function InitCap() mô tả cho thông tin địa chỉ: Như đã biết địa chỉ thường viết hoa chữ cái đầu tiên, hàm này có chức năng nếu chữ cái đầu tiên của một từ
tố là chữ hoa thì sẽ trả về một giá trị nào đó còn nếu không trả về một giá trị khác. Có thể mô tả như sau:
1 Nếu chữ cái đầu tiên của từ quan sát được là chữ hoa
fk= InitCap() =
0 nếu ngược lại
Tương tự như vậy ta xây dựng các hàm ContainAllDigit(): Nếu chuỗi quan sát được là một chuỗi số thì có khả năng đây là số điện thoại.
1 Nếu dữ liệu quan sát là toàn số
fk= ContainAllDigit() =
0 nếu ngược lại
Hàm thứ ba DigitandComma() hàm này xây dựng để mô tả đặc trưng của thông tin liên quan đến giá bán, ở đây giá bán thường được biểu diễn bằng một số trong đó có thể chứa các dấu phân cách ví dụ: 2,3 hoặc 1.55. Nếu dữ liệu quan sát là con số có dấu phân cách là dấu phảy hoặc dấu chấm thì rất có thể đó là giá bán của ngôi nhà hoặc mảnh đất.
1 nếu dữ liệu quan sát là số hoặc số dấu chấm hoặc phảy
fk= DigitandComma() =
0 nếu ngược lại
Ngoài ra xây dựng dựng hàm AllLow() để kiểm tra xem dữ liệu quan sát được có hoàn toàn là chữ viết thường hay không. Hàm này được xây dựng như ba hàm trên nó sẽ mô tả cho những dữ liệu khác ví dụ như ngoài những thông tin liên quan đến bài toán rút trích như địa chỉ, diện tích, số điện thoại, giá bán thì các dữ liệu khác sẽ được mô tả trong hàm này.
1 nếu từ hiện tại là hoàn toàn chữ thường
fk= AllLow() =
Để kiểm nghiệm công cụ đã sử dụng khoảng 500 câu trong file huấn luyện và 200 câu test.
Để đánh giá kết quả ta đánh giá thông qua độ chính xác (precision), độ hồi tưởng (recall), và F1 được xác định như sau:
Bảng kết quả thu được với sử dụng các mẫu đặc trưng thứ nhất:
Bảng 4. Bảng kết quả lần test thứ nhất Nhãn Độ chính xác Độ hồi tưởng F1 DD 72.36% 83,18% 77.39% GB 51.72% 72.82% 60.48% DT 60.21% 69.70% 64.61% DC 27.87% 57.63% 37.57% LN 41.54% 69.23% 51.92%
Bảng kết quả thu được với mẫu đặt trưng thứ hai:
# số lượng nhãn chính xác
Độ chính xác =
# tổng số nhãn cần gán
# số lượng nhãn chính xác
Độ hồi tưởng =
# tổng số nhãn được gán trong tập test
2*độ chính xác* độ hồi tưởng
F1 =
Đồ thị sau sẽ diễn ta đầy đủ cho mức chính xác của công cụ. Chứng tỏ đây là một công cụ hữu ích cho việc trích chọn thông tin
0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% 80.00% DC GB DD DT LN Thông tin trích chọn Đ ộ c h ín h x á c lần thử nghiệm thứ hai lần thử nghiệm thứ nhất
Hình 15. Biểu đồ thể hiện sự tương quan giữa hai lần kiểm tra
4.3. HẠN CHẾ VÀ HƯỚNG ĐI CHO TƯƠNG LAI
Do là bài toán trích chọn thông tin trong tiếng Việt, nhưng với môi trường Linux, CRF++ toolkit thì không hỗ trợ UNICODE. Do vậy việc chuyển tiếng Việt về tiếng Việt không dấu đã phần nào làm mất đi phần ngữ nghĩa của văn bản. Do vậy sẽ ảnh
Nhãn Độ chính xác Độ hồi tưởng F1 DD 72.36% 91.75% 80.91% GB 54.48% 71.17% 61.72% DT 73.30% 76.50% 74.87% DC 31.15% 66.09% 42.34% LN 32.31% 67.74% 43.75%
hưởng đến độ chính xác của bài toán. Ngoài ra do dữ liệu thực nghiệm vẫn còn ít, nên cũng ảnh hưởng đến kết quả thử nghiệm.
Đối với các bài toán trích chọn như trên thì việc viết các đặc tính (feature) giúp hệ thống có thể tự học tốt nhất thì sẽ mang lại hiệu quả cao. Với cách đó có thể thêm các thông tin mô tả các từ tố trong file huấn luyện. Ví dụ nếu có thêm công cụ gán nhãn từ loại thì ta có thêm vào một cột trong file huấn luyện mô ta cho từ loại cần trích chọn, ví dụ như các thông tin về địa chỉ thì là từ loại danh từ (DT) như ví dụ ở dưới:
Từ DT B-DC
Liêm DT I-DC
- DAU OTH
Ha DT B-DC Nội DT I-DC
Việc bổ sung thêm các thông tin này cộng với việc thay đổi các hàm đặc trưng sẽ cung cấp nhiều thông tin cho CRF++, do đó chất lượng trích chọn sẽ cải tiến hơn rất là nhiều.
Một hướng phát triển khác trong tương lai là trích chọn thêm các thông tin khác liên quan đến thông tin nhà đất chẳng hạn như: hướng nhà, số phòng....
4.4. TỔNG KẾT CHƯƠNG
Chương này giới thiệu bài toán trích chọn thông tin nhà đất sử dụng mô hình CRF và sử dụng công cụ CRF++ để thực hiện. Với những cải tiến công cụ ta thấy một kết quả đáng ghi nhận trong việc ứng dụng công cụ CRF++ vào bài toán của mình. Từ bảng kết quả thu được cũng cho thấy công cụ khá hữu ích trong việc xử lý tiếng Việt. Và đưa ra một tương lai trong việc xử lý ngôn ngữ tiếng Việt.
KẾT LUẬN
Tin học là một công cụ đắc lực có ứng dụng nhiều trong các lĩnh vực khác nhau. Vấn đề đặt ra là làm sao cho máy có thể tự động “học” mà không cần có sự can thiệp nhiều của con người đây là vấn đề rất quan trọng của CNTT.
Một mô hình có thể phần nào đáp ứng được công việc này đó là Conditional Random Field. Với mô hình này có rất nhiều ứng dụng như gán nhãn, phân cụm, nhận biết các loại thực thể và trích chọn thông tin. Đây là vấn đề nhỏ nhưng lại góp phần to lớn trong việc xây dựng những bài toán lớn hơn.Ở đây tập chung vào ứng dụng trích chọn thông tin với các ứng dụng phổ biến trong tương lai gần như: trích chọn thông tin web, trích chọn các sự kiện, và ứng dụng cho việc hỏi và trả lời (Question-answering)- hệ hỏi đáp. Trong tương lai chúng ta có thể sử dụng máy tính để trộn các thông tin được coi là quan trọng với nhau. Hầu hết các ứng dụng đều liên quan đến việc xử lý ngôn ngữ. Trong giai đoạn đầu, CNTT tập trung vào dữ liệu dạng số, biểu diễn dưới dạng cấu trúc như các vector hay bảng biểu. Sau đó các xử lý phức tạp hơn ra đời như hình ảnh, âm thanh, văn bản, ký hiệu hình thức, đồ thị, … Có thể kể đến một số bài toán tiêu biểu trong xử lý ngôn ngữ như: Nhận dạng tiếng nói, tổng hợp tiếng nói, nhận dạng chữ viết, dich tự động, tóm tắt văn bản, tìm kiếm thông tin và trích chọn thông tin. Trong mười năm qua với các cách tiếp cận dựa vào thống kê và tiếp cận dựa vào dữ liệu. Công nghệ xử lý tiếng nói không chỉ dựa trên các kỹ thuật xử lý tín hiệu, mà còn dựa vào việc hiểu ngôn ngữ. Do các tham số của các mô hình thống kê có thể tự “học” được từ các kho ngữ liệu lớn. Với hướng phát triển như vậy việc ứng dụng mô hình Conditional Random Field vào các bài toán ứng dụng trong xử lý ngôn ngữ là rất cần thiết.
[1] Hồ Tú Bảo, Lương Chi Mai. Việc xử lý tiếng Việt trong công nghệ thông tin. Viện công nghệ thông tin, Viện khoa học và Công nghệ tiên tiến Nhật Bản
[2] Cao Hoàng Trụ, Nguyễn Lê Minh. Phân cụm từ tiếng Việt bằng phương pháp học máy cấu trúc. Pages 11. 2006
[3] Phan Thị Tươi, Nguyễn Quang Châu, Cao Hoàng Trụ. Gán nhãn từ loại cho tiếng Việt dựa trên văn phong và tính toán xác suất. Tạp chí phát triển KH&CN, tập 9, số 2 -2006
Tài liệu tiếng Anh:
[4] Andrew McCallum DayneFreitag. Maximum Entropy Markov Models for Information Extractionand Segmentation. in AT&T Labs-Research. Pages 1-9 [5] Ben Wellner. Conditional Random Fields and Maximum Entropy Markov
Models. In CS114 Spring 2006 (slide)
[6] Canasai Kruengkrai,Virach Sornlertlamvanich, HitoshiIsahara. A Conditional Random Field Framework for Thai Morphological Analysis. In Proceedings of the Fifth International Conference on Language Resources and Evaluation(LREC-2006), may 24-26, 2006. Genoa, Italy. Pages 1-16
[7] Carl Bergstrom. Joint entropy, conditional entropy, relative entropy, and mutual information. January 13, 2008. In Cover and Thomas (1991). Pages 1-8
[8] Conglei Yao. Conditional Random field an overview. Computer Networks and Distributed Systems Laboratory Peking University 2008-12-31. in technique report 42 slides
[9] Dan Cong. Conditional Random Fields and Its Applications .Feb. 1, 2006
[10]Douglas E. Appelt and David J. Israel. Introduction to Information Extraction Technology .A Tutorial Prepared for IJCAI-99. in Artificial Intelligence Center SRI International
[11]Fredric Brown. Information Extraction: 10-707 and 11-748 (slide) [12]Phil Blunsom. Hidden Markov Models- August 19, 2004. Pages 1-7
[13]Hanna M. Wallach. Conditional Random Fields: An Introduction. pages 1-9. February 24, 2004. In University of Pennsylvania CIS Technical Report MS- CIS-04-21
[14]John Lafferty and Andrew McCallum. Conditional Random Fields Probabilistic Models for Segmenting and Labeling Sequence Data. Pages 1-8
[15]Nikis Karampatziakis. Maxinum Entropy Markov Models
[16]Rakesh Dugad . A Tutorial on hidden Markov Models. Technical Rep ort No SPANN May 1996. Pages 1-16.
[17]Trausti Kristjansson & Aron Culotta & PaulViola & Andrew McCallum. InteractiveInformationExtraction with Constrained Conditional Random Fields.
in Microsoft Research. Pages 7
[18]William W. Cohen CALD. Conditonal Random Field in CALD
[19]Vikas Kedia. Graphical Models for Information Extraction and Reconciliation. Department of Computer Science and Engineering Indian Institute of Technology, Bombay Mumbai. In M. Tech. Project First Stage Report Submitted in partial fulfillment of the requirements for the degree of Master of Technology. Pages 20
[20] http://crfpp.sourceforge.net/
[21] http://en.wikipedia.org/wiki/Hidden_Markov_model