5. Nhiệm vụ nghiên cứu
3.2. Giới thiệu công cụ JVNTextPro
Là một phần mềm mã nguồn mở viết bằng Java, dùng để xử lý ngôn ngữ tự nhiên (NLP). Công cụ gồm nhiều công cụ con, mỗi công cụ con giải quyết một vấn đề, làm tiền đề để xử lý các bƣớc tiếp theọ Các vấn đề có thể giải quyết: phân đoạn câu, phân khúc các câu, tách các từ (cụm từ trong một câu), nhận dạng loại từ trong câu: danh từ, động từ, tính từ….Các bƣớc xử lý của JVNTextPro nhƣ sau:
35
Hình 2.10.Các bƣớc xử lý của công cụ JVNTextPro 2.0
Tại mỗi một bƣớc đều có kết quả trung gian, ta có thể sử dụng luôn kết quả này nếu cần. Trong đề tài này ta chỉ sử dụng đến bƣớc “Tách các từ” trong câụ
Có thể sử dụng JVNTextPro với hai cách: một là sử dụng giao diện dòng lệnh(command line), hai là sử dụng dƣới dạng servicẹ Với cách sử dụng service, công cụ có thể hỗ trợ nhiều ngôn ngữ lập trình khác nhaụ Đề tài sử dụng cách một
là giao diện dòng lệnh.
3.2.1. Tách câu:
Với đầu vào là một đoạn văn bản, JVNTextPro có thể tách đoạn văn bản này thành các câụ Đôi khi trong các đoạn văn bản, kết thúc một câu không nhất thiết kết thúc là dấu “.”. Nhiệm vụ của JVNTextPro sẽ phải tách đƣợc thành các câu để xử lý ở các bƣớc tiếp theọ
Cú pháp của lệnh:
java -cp libs\args4j.jar;libs\lbfgs.jar;bin jvnsensegmenter.JVnSenSegmenter -modeldir models\jvnsensegmenter -inputfile samples\input1.txt
Có thể thay thế -inputfile sample\input1.txt thành ‐inputdir samples, để xử lý cả thƣ mục. Đầu ra của file sẽ là input1.sent.
3.2.2. Định dạng hóa lại câu
Trong lối viết thông thƣờng tất cả các dấu phẩy đều dính vào các từ trƣớc, định dạng hóa lại câu sẽ làm nó tách ra để dễ xử lý hơn ở bƣớc sau:
Ví dụ: Mặc dù trời mƣa, chúng tôi vẫn đi học => Mặc dù trời mƣa , chúng tôi vẫn đi học
36 Cú pháp lệnh:
java –cp bin;libs\args4j.jar;libs\lbfgs.jar jvntokenizer.JVnTokenizer -inputfile samples\input1.txt.sent
Có thể thay thế -inputfile sample\input1.txt.sent thành ‐inputdir samples, để xử lý cả thƣ mục. Đầu ra của file sẽ là input1.sent.tkn.
3.2.3. Tách các từ trong câu
Để tách các từ trong câu, công cụ đã đƣợc huấn luyện khoảng 8000 câu tiếng Việt, sử dụng các trƣờng ngẫu nhiên có điều kiện (Conditional Random Fields- FlexCRFs).
Ví dụ: học sinh học sinh học => học_sinh học sinh_học Câu lệnh:
java -mx512M -cp bin;libs\args4j.jar;libs\lbfgs.jar jvnsegmenter.WordSegmenting -modeldir models\jvnsegmenter -inputfile samples\input1.txt.sent.tkn
Có thể thay thế -inputfile sample\input1.txt.sent.tkn thành ‐inputdir samples, để xử lý cả thƣ mục. Đầu ra của file sẽ là input1.txt.sent.tkn.wseg
3.2.4. Phân biệt loại của từ (POS tagging)
Công cụ đã thực hiện trên tập hợp dữ liệu 10.000 câu và 20.000 câu, cho các kết quả tƣơng ứng là 93,45% và 93,32% đúng.
học_sinh học sinh_học = > Học_sinh/N học/V sinh_học/N ./. Các ký hiệu phân loại từ ở bảng sau:
Bảng 2.3: Ký hiệu phân loại từ trong VNTextPro
STT Ký hiệu Ý nghĩa 1 N Danh từ 2 Np Danh từ riêng 3 NC Danh từ chỉ loại 4 Nu Danh từ đơn vị 5 V Động từ
37 6 A Tính từ 7 P Đại từ 8 L Định từ 9 M Số từ 10 R Phụ từ 11 E Giới từ 12 T Trợ từ, tiểu từ 13 B Từ mƣợn từ tiếng nƣớc ngoài ví dụ internet 14 Y Từ viết tắt
15 X Các từ không phân loại đƣợc
16 Mrk Các dấu câu
Cú pháp:
java -mx512M -cp bin;libs\args4j.jar;libs\lbfgs.jar jvnpostag.POSTagging -tagger maxent -modeldir models\jvnpostag\maxent -inputfile
samples\input1.txt.sent.tkn.wseg
Có thể thay thế -inputfile sample\input1.txt.sent.tkn.wseg thành ‐inputdir samples, để xử lý cả thƣ mục. Đầu ra của file sẽ là input1.txt.sent.tkn.wseg.pos
Kết luận: Chương này đã mô tả các bước thực hiện hệ thống nhận dạng tiếng nói bằng Sphinx, cũng như cách tích hợp hệ đặc điểm của tiếng Việt là thanh điệu và đa âm tiết vào hệ thống nhận dạng. Chương tiếp theo sẽ trình bầy các kết quả thử nghiệm cho nhận dạng đa âm tiết, có thanh điệụ
38
CHƢƠNG 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ
Trong chƣơng này sẽ trình bầy cơ sở dữ liệu tiếng nói, và tiến hành các thử nghiệm nhận dạng tiếng Việt nóị
Ị Cơ sở dữ liệu