File định dạng huấn luyện và test

Một phần của tài liệu LUẬN VĂN: TÌM HIỂU MÔ HÌNH CRF VÀ ỨNG DỤNG TRONG TRÍCH CHỌN THÔNG TIN TRONG TIẾNG VIỆT pptx (Trang 39 - 56)

Để sử dụng được CRF++ ta cần phải có 2 file dữ liệu, 1 file dùng cho quá trình huấn luyện, file còn lại dùng cho quá trình kiểm tra. Cả file huấn luyện và kiểm tra cần

Dữ liệu CRFs Model file Decoding Câu tiếng Việt Output Giai đoạn huấn luyện Giai đoạn thực hiện

có 1 định dạng riêng của CRF++ để nó có thể làm việc được. Thông thường file huấn luyện và file kiểm tra chứa đựng rất nhiều từ tố. Mỗi từ tố phải viết trên một dòng, Ngoài từ tố ra còn có các cột chứa các thông tin khác dùng để mô tả từ tố chẳng hạn như là từ loại của từ tố và cột cuối cùng chứa nhãn của từ tố. Đểđịnh nghĩa từ tố phụ

thuộc vào từng công việc, trong hầu hết các trường hợp điển hình thì chúng là các từ. Mỗi một từ tố ở một dòng, các cột được phân chia bởi các khoảng trắng. Trình tự các từ tố tạo thành một câu. Một dòng trắng để phân biệt giữa các câu.

Dưới đây là một ví dụ về file huấn luyện. Với cột thứ nhất là bản thân từđó, cột thứ hai là từ loại và cột cuối cùng là nhãn cần gán. Input: Data He PRP B-NP reckons VBZ B-VP the DT B-NP current JJ I-NP account NN I-NP deficit NN I-NP will MD B-VP narrow VB I-VP to TO B-PP only RB B-NP # # I-NP 1.8 CD I-NP billion CD I-NP in IN B-PP September NNP B-NP . . O He PRP B-NP reckons VBZ B-VP .. 3.4.3.3. Template type

File này mô tả những đặc trưng sẽ sử dụng khi huấn luyện và kiểm tra. Mỗi một dòng trong trong file template chỉ ra một template, mỗi một template có dạng như sau %x[row,col] dùng để định nghĩa một từ trong dữ liệu đầu vào.

File template được xây dựng tùy vào từng bài toán cụ thể và tùy vào file huấn luyện và file kiểm tra. Ví dụ với dữ liệu đầu vào như sau thì file template sẽđược xây dựng như sau:

Dữ liệu đầu vào

He PRP B-NP reckons VBZ B-VP

the DT B-NP << CURRENT TOKEN current JJ I-NP account NN I-NP Template Từ tố tương ứng %x[0,0] The %x[0,1] DT %x[-1,0] Reckons %x[-2,1] PRP %x[0,0]%x[0,1] The/DT

Có hai loại template là Unigram template và Bigramtemplate • Unigram template

Với loại này khi đưa 1 template CRF ++ sẽ tựđộng tạo ra các hàm đặc trưng

func1 = if (output = B-DT and feature="U01:DT") return 1 else return 0 func2 = if (output = I-DT and feature="U01:DT") return 1 else return 0 func3 = if (output = O and feature="U01:DT") return 1 else return 0 ...

Số lượng hàm tạo ra bởi một template là ( L * N) L : số lượng output

N: số lượng chuỗi duy nhất được mở rộng từ template dược chỉ ra. • Bigram template

Với template này ,sự liên kết giữa từ tố hiện tại (current token) và từ tố trước đó (previous output token) được tựđộng tạo ra

Với loại này tạo ra (L *L *N) (N là số lượng các đặc trưng riêng biệt được tạo ra)

3.4.4. Hun luyn và kim tra

Sau khi chuẩn bị toàn bộ các file train, file test, file template ta tiến hành huấn luyện và test như sau

¾ Huấn luyện (training)

Để huấn luyện các file ta sử dụng lệnh crf_learn với cú pháp sau:

% crf_learn template_file train_file model_file

Ởđó :

Lệnh crf_learn tạo ra mô hình huấn luyện trong file model_file

Kết quả của lệnh crf_learn:

iter: Số lượng lặp được xử lý

terr: Tỷ lệ lỗi đối với các thẻ ( được tính bằng số lượng thẻ lỗi/ tổng số thẻ ) serr: Tỷ lệ lỗi đối với câu ( được tính bằng số câu lỗi /tổng số câu )

obj: Giá trị của đối tượng hiện tại. Khi giá trị này hội tụ tại một điểm cố định. CRF ++ dừng lặp

Bảng 2. Bảng các tham số huấn luyện

Tham số Giá trị mặc định Ý nghĩa -a CRF-L2

hoặc CRF-L1 (adsbygoogle = window.adsbygoogle || []).push({});

CRF-L2 Tham số này dùng để thay đổi thuật toán mặc

định của CRF ++ . Thông thường thì L2 thực hiện tốt hơn không đáng kể so với L1, trong khi số lường các đặc tính L1 là nhỏ hơn một cách đáng kể so với L2

-c float: Cùng với tùy chọn này, có thể thay đổi nhiều tham số cho CRFs

-f NUM 1 Chỉ có các thuộc tính có tần suất xuất hiện lớn hơn giá trị này thì mới được tích hợp vào mô hình CRF .

-p NUM Nếu máy tính của bạn có nhiều CPU, giúp cho việc huấn luyện nhanh hơn bằng cách sử dụng

đa luồng. NUM là số lượng các luồng

¾ Kiểm tra (testing)

Để kiểm tra dữ liệu sau khi huấn luyện sử dụng lệnh crf_test với cú pháp như

sau:

% crf_test -m model_file test_files ...

Model_file là file do crf_learn tao ra. Trong khi test không cần tạo ra template_file bởi vì model file có thông tin giống như file template .

Test_file là kiểm tra dữ liệu bạn muốn gán thẻ theo trình tự. File này có định dạng giống như file traning được xây dựng ở trên.

Bảng 3. Bảng các tham số của lệnh crf_test

Tham số Giá trị mặc định Ý nghĩa -v level 0 Tùy chọn này đưa ra một số thông tin chi tiết

từ CRF++bằng cách tăng cấp độ của level N best

ouput

Đưa ra N kết quảđược sắp xếp theo xắc suất

điều kiện của CRF++

3.5. TỔNG KẾT CHƯƠNG

Trong chương này đã nêu ra hai vấn đề cơ bản trong mô hình CRF. Có rất nhiều phương pháp sử dụng để giải quyết hai vấn đềđó. Trong phần này đã nêu ra hai hướng giải quyết cơ bản và hiệu quả nhất. Đó thuật toán Virterbi và hai thuật toán T và thuật toán S. Cả hai thuật toán đều được cải tiến từ thuật toán IIS. Chương này cũng giới thiệu được công cụ CRF++ toolkit, một công cụ có nhiều ứng dụng trong xử lý ngôn ngữ tự nhiên.

Chương 4.

NG DNG CRF

VÀO BÀI TOÁN TRÍCH CHN THÔNG TIN NHÀ ĐẤT

Một hệ thống hữu ích dùng để xử lý tiếng Việt là rất quan trọng. Ví dụ như bài toán nhận biết các loại thực thể là một bài toán cơ bản trong trích chọn thông tin và xử

lý ngôn ngữ tự nhiên. Từ việc nhận biết các loại thực thể ta có thể rút trích ra những thông tin cần thiết tùy thuộc vào mục đích riêng. Trong chương này sẽ ứng dụng mô hình CRF đã nói ở trên vào bài toán trích chọn thông tin nhà đất.

4.1. MÔ HÌNH HÓA BÀI TOÁN TRÍCH CHỌN THÔNG TIN NHÀ ĐẤT

Đối với bất kỳ một văn bản nào thì việc hiểu nhanh văn bản và tóm tắt được nội dung chính là rất cần thiết. Cũng như vậy trong bất kỳ một bản tin nhà đất nào kể cả

người bán và người mua đều quan tâm đến những vấn đề cơ bản nhất liên quan đến nhà, hoặc đất cần bán hoặc cần mua.

Với tư tưởng vậy với một thông tin nhà đất những yếu tố chúng ta cần quan tâm là: Vị trí của nhà hoặc đất như thế nào, diện tích?, giá bán?, loại nhà nào?, địa chỉ liên hệ với chủ sở hữu?. Với tất cả các thông tin trên có thể hiểu đầy đủ được về thông tin về ngôi nhà cần bán hoặc cần mua. Nhiệm vụ của bài toán trích chọn thông tin nhà đất là làm sao có thể rút trích những thông tin được liệt kê trong bảng 4 như sau: (adsbygoogle = window.adsbygoogle || []).push({});

Bảng 4. Bảng các thông tin cần trích chọn Tên Chú thích DC Địa chỉ DT Diện tích DD Di động GB Giá bán LN Loại nhà

Vấn đềđặt ra là với một lượng thông tin nhỏ thì ta có thể dễ dàng tìm ra được các thông tin đó. Nhưng với một dữ liệu lớn thì vấn đề rất khó khăn. Chính vì vậy và việc

ứng dụng một mô hình có thể “tự học” để có thể tìm ra những thông tin đó là rất cần thiết.

4.1.1. X lý d liu đầu vào

Dữ liệu ban đầu đầu được tiền xử lý trong win (được gán nhãn bằng tay trong win). Sau đó, chuyển từ dạng mã hóa UTF-8 sang tiếng Việt không dấu. Có thể mô hình hóa như hình 14 sau:

Hình 14. Mô hình xử lý dữ liệu của bài toán trích chọn nhà đất

Từ bản tin nhà về nhà đất sau khi tải về sẽ được gán nhãn, vì hiện tại CRF++ không hỗ trợ UNICODE nên khóa luận tạm thời chọn giải pháp là chuyển sang tiếng Việt không dấu. Điều này có thể làm giảm chất lượng của hệ thống nhận dạng do thông tin ngữ nghĩa của đoạn văn bị mất đi, tuy nhiên hướng phát triển tương lai tác giả sẽđề xuất một cách tốt hơn để tránh mất thông tin trong quá trình chuyển đổi

Do không có sẵn các công cụ xử lý cho tiếng Việt, như công cụ gán nhãn từ loại nên trong bài toán trích chọn thông tin nhà đất file huấn luyện và file kiểm tra chỉ sử

dụng duy nhất chính từ tố đó, do vậy trong file huấn luyện và file kiểm tra chỉ có hai thông là từ và nhãn do vậy 2 file này chỉ có hai cột, cột thứ nhất chứa từ là chính từđó và cột thứ hai là nhãn của loại từ. Với các từ tố không liên quan đến các thông tin trích chọn thì được gán nhãn bằng nhãn OTH (other):

Dữ liệu tiếng Việt

Dữ liệu được gán nhãn

Dữ liệu được chuyển thành tiếng Việt không dấu

Ví dụ một đoạn dữ liệu trong file huấn luyện Cần OTH bán OTH hai OTH lô OTH đất OTH TT9 B-DC Văn I-DC Phú I-DC mặt OTH đuờng B-DC Lê I-DC Trọng I-DC Tốn I-DC , OTH diện OTH tích OTH 90m2 B-DT , OTH mặt OTH tiền OTH

4.2. MÔI TRƯỜNG THỰC NGHIỆM

4.2.1. Phn cng

MáyCore 2 Duo, chip 512 MHz, Ram 1GB, trong máy có bộ biên dịch gcc phiên bản >3.00. Dùng máy ảo vimware chạy hệđiều hành Linux Redhat Enterprise 5.0

4.2.2. Phn Mm

CRF ++ toolkit là một CRF Framework cho các bài toán phân đoạn và gán nhãn giá trị tuần tự. Trong phần này, sử dụng một ứng dụng của CRF vào việc trích chọn thông tin nhà đất. Sử dụng phiên bản CRF++toolkit version 0.51 [21].

4.2.3. D liu thc nghim

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;

4.2.3.2. Lần thử nghiệm thứ hai

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ố (adsbygoogle = window.adsbygoogle || []).push({});

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

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

0 nếu ngược lại

4.2.3.3. Kết quả và đánh giá

Để 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. (adsbygoogle = window.adsbygoogle || []).push({});

Để đá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:

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

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:

Bảng 5. Bảng kết quả lần test thứ hai 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% 2*độ chính xác* độ hồi tưởng F1 = Độ chính xác +độ hồi tưởng

Đồ 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 ính 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 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.

Một phần của tài liệu LUẬN VĂN: TÌM HIỂU MÔ HÌNH CRF VÀ ỨNG DỤNG TRONG TRÍCH CHỌN THÔNG TIN TRONG TIẾNG VIỆT pptx (Trang 39 - 56)