BÀITOÁNTÁCHTỪTIẾNGVIỆT
PhátbiểubàitoántáchtừtiếngViệt
Khi thực hiện nhiệm vụ xử lý ngôn ngữ tự nhiên cho bất kì ngôn ngữ nào thìbước đầu tiên cần phải làmlàt á c h t ừ ( w o r d s e g m e n t a t i o n ) V ì t h ế , v i ệ c n h ậ n b i ế t ranh giới từ một cách nhanh chóng và chính xác là vấn đề có ý nghĩa quan trọng Đốivới một số ngôn ngữ như tiếng Nga, Anh, Pháp hay Đức, ranh giới từ được cho bởikhoảng trắng hay các dấu ngắt câu Với tiếng Việt, về mặt hình thức, từ được cấu tạobởi một hay nhiều âm tiết (tiếng) ghép lại, nên nếu chỉ dùng khoảng trắng sẽ khôngthể phânbiệt ranh giớitừ.
- Từcómộtâmtiết:nhà,cửa,đi,chạy,xanh,đỏ,
+Từkép:nhàtrường,tổchức,lunglinh,lấplánh,đuđưa,
+Từbộtư:xãhộichủnghĩa,nóiđinóilại,đuđa đuđưa,
Bài toán tách từ tiếng Việt có thể được phát biểu như sau:Chocụmtừgồmnâmtiết(tiếng):S=s 1 s 2 s 3 s n-1 s n
Về mặt ngôn ngữ học tính toán, "từ" ở dạng từ phức và "ngữ" ở dạng cụm từđược cấu tạo bởi nhiều âm tiết ghép lại, nên việc phân biệt khái niệm giữa "từ" và"ngữ" (hay "từ" và "cụm từ") vẫn còn chưa rõ ràng Trong thực tế xử lý bằng máytính có sử dụng từ điển từ vựng, có nhiều trường hợp rất khó phân biệt ranh giới từ.Chẳng hạn với dãy âm tiết "đón tiếp tân" trong ví dụ sau thì máy tính phải chọnphương ánnào chođúng.
Vídụ:Họđangchuẩnbịđóntiếptângiámđốc. Để biểu diễn từ, có thể dùng dấu nối “_” để ghép các âm tiết lại với nhau trongmỗitừ.Vớivídụtrên,tasẽcóhai phương ántách từ nhưsau:
Ranh giới không rõ ràng như vậy được gọi là sự nhập nhằng trong ngôn ngữ.Nhập nhằng ranh giới từ là vấn đề thường xuất hiện trong tiếng Việt và một số ngônngữkhácnhưtiếng Trung,tiếngThái,tiếngLào,tiếngKhmer,
Trong tiếng Việt, do có nhiều quy tắc cấu tạo từ (từ láy, từ ghép đẳng lập, từghép chính phụ), nên trong thực tế sử dụng và phát triển ngôn ngữ, có rất nhiều từmới được tạo ra mà từ điển không thể chứa đựng hết được (được gọi làtừ - từ điển).Đâycũnglàvấnđềhócbúachobàitoán tựđộnghoátách từtiếngViệt.
Ngoài vấn đề nhập nhằng ranh giới từ và xác định từ mới đã nêu, thì bài toántách từ đòi hỏi phải nhận diện các "thực thể" văn bản (entity, theo[47]và[48]) nhưtên riêng (tên người, tên tổ chức, tên địa điểm), tên viết tắt, ngày tháng, thời gian,biểuthứcsố,phầntrăm,đơnvịđo,thưđiệntử, Cóthểthấyquaminhhoạtáchtừ và thực thể tronghình1.1.
ĐặctrưngcủađơnvịtừvựngtiếngViệt
Theo[3], từ tiếng Việt bao gồm từ đơn và từ phức Từ đơn chỉ có một âm tiết,còntừphứccótừhaiâmtiếttrởlên.Trongđó,từphứcvềmặtngữâm,ngữphápvà ngữ nghĩa chia thành ba loại: từ ghép, từ láy và từ ngẫu hợp Từ ghép được phân chiathànhhai dạ ng :t ừ ghépch ín h phụ, từghé pđẳnglậ p Trong đó, từl á y v à từ gh ép đẳng lập (khối đậm trong hình 1.2) có những đặc điểm về cấu tạo về ngữ âm, ngữpháp vàngữ nghĩakhárõ ràng.
CấutạotừtiếngViệtđượcphânloạitheohình1.2cómộtsốđặcđiểmsau: a.Từ đơn: Từ đơn là những từ được cấu tạo bởi một âm tiết độc lập.Vídụ:nhà,cửa,đi,chạy,xanh,đỏ, b Từphức:Từ phứclànhữngtừđượccấutạobởihaiâmtiếttrởlên,ghéplạivớinhau đểtạonghĩa.Vềmặtquanhệnghĩa,chúngđượcchiathànhbadạngsau: i) Từngẫuhợp:cácthànhphầnkhôngcóquanhệvớinhau,đượckếthợpvớinha umộtcáchngẫunhiên.
Vídụ:bồhóng,míttinh,rơmoóc,tắckè, ii) Từghép:lànhữngtừđượccấutạobởihaiâmtiếttrởlên,chúngđượcghépvớinha u vềmặt ngữ nghĩađể tạonghĩa mới.
Từghépchínhphụ:cóchứamộtthànhtốchínhchỉloạilớn,mộtthànhtốp hụ cóvai trò chi tiết hoá loại lớn.
(chínhtrước,phụsau)như:xemáy,xeđạp,hoahồng,hoanhài,máyxay,máyxát, +TừghépchínhphụgốcHán(phụtrước,chínhsau)như:dânca,đồngca,xướngca,b áchọc,vănhọc,kinhtếhọc,nôngdân,ngưdân,cưdân,…
Mởrộngtừghépchínhphụbậchaiởdạngthêmphầnphụchitiếthơnnhư: xeđạpđiện,xeđạpmini,hoahồngtrắng,hoahồngvàng,máyxaythịt,
Từghépđẳnglập:cácthànhtốbìnhđẳngnhauvềngữnghĩavàtừloại.Từghépso ng tiết đẳng lập có thể chia thànhba nhóm:
+Đồngnghĩa:đợichờ,xinhđẹp,chùachiền,xecộ,
+Đốinghĩa:chamẹ,namnữ,âmdương,đượcmất,đúngsai,
+Gầnnghĩa:nhàcửa,đồinúi,sôngsuối,cátbụi,gàvịt,vuitươi,
Mởr ộ n g t ừ c ó b a , b ố n â m t i ế t c ó c á c đ ơ n v ị đ ẳ n g l ậ p n h ư :a n h c h ị e m , thanh thiếu nhi, cơ xương khớp, xuân hạ thu đông, bà con cô bác, hoặc tổhợpxen songtiết đẳnglập như:conôngcháucha,cơmnoáoấm,…
Mở rộng ghép chính phụ và đẳng lập: hai từ ghép chính phụ "thầy giáo" và"côgiáo"có haithànhphầnđẳnglậplà"thầy"và"cô",nên từghépmở rộng là: "thầy cô giáo" Tương tự, "y sĩ" và "bác sĩ" có thể tạo từ ghép "y bác sĩ".Ghépg i ữ a tổh ợ p s o n g t i ế t đẳ n g l ậ p v ớ i t ừ đ ứ n g t r ư ớ c :chạyng ượ cch ạy xuôi, bữa no bữađói,khi nắngkhimưa, hoặccó thể ghép với từđứng sau:phòngcháychữacháy,phòngbệnhchữabệnh,ănmiếngtrảmiếng,
Lặplạitừghépchínhphụ:hưhưthựcthực,điđivềvề,quầnquầnáoáo, iii) Từ láy: là những từ phức (đa số là có hai tiếng) được cấu tạo theo các quytắc hài âm và hài thanh của tiếng Việt (theo quy tắc “vừa điệp vừa đối” trên phụ âmđầu,vầnvà dấu thanh). Đối với từ láy đôi: theo[13]có 8 mẫu như:lăm lăm, đo đỏ, chúm chím, vằngvặc,lòngthòng,khéoléo,đỏđắn,lập loè.
+Từláybộba:đỏlòmlòm,đensìsì,xanhlèlè,tốiomom,… đỏhonhỏn,đentrùitrũi,thẳngđuồnđuột,… sạchsànhsanh,cuốngcuồngcuồng,xốpxồmxộp,
+Từ láybộ tư:ấma ấm ức,nhínhanhínhảnh,đùđà đù đờ, bậuxàbậuxậu,linhtalinhtinh,hớthơhớthải,
Vídụ:điệpphụâmđầuvàthêmvần"iếc","iệc","ang","ung".
+phở:phởphiếc;lớp:lớplang;vải:vảivung;
+hoatai:hoa taihoa tiếc;hoataihoatung;
Dạng lặp: là sự mở rộng của từ láy, có thành phần được lặp lại trong từ/cụm từ.Vídụ:vớitừcóhai,bahaybốnâmtiết
+ngườingười,ngàyngày,thángtháng,xanhxanh,hâyhây,…
+hăm hămhở hở,hốihốihảhả,vộivộivàngvàng,
1.1.2.2 Ngữcốđịnh Đâyl à n h ữ n g đ ơ n v ị đ ư ợ c x ế p v à o t ừ đ i ể n t ừ v ự n g t i ế n g V i ệ t d o t í n h h o à n chỉnhvềnghĩacủanó,nêncóthểcoi nhưlà nhữngđơnvịtừ vựng. a Thànhngữ:Thànhngữlàngữcốđịnhvừacótínhhoànchỉnhvềnghĩavừacótí nhgợicảm.
Vídụ:chóngápphảiruồi;hồnxiêupháchlạc;nóithánhnóitướng; b Quánngữ:Quánngữlàngữcốđịnhđượcdùngđểlặpđilặplạitrongcác lo ạivănbảnđểliênkết,đưađẩy,ràođónhoặcnhấnmạnhnộidungcầndiễnđạt.
Vídụ:củađángtội;nóicáchkhác;nóitómlại;dùsaođinữa;ngượclại;
NhữngvấnđềkhótrongtáchtừtiếngViệt
Trongthựctếhiệnnaychưacómộtchuẩnthốngnhấtđểphântáchtừ,nênvẫncòntồn tại những quan điểm khác nhau về từ ([10];[12], tr.52-61;[26], tr.8-16) Về sảnphẩmtừđiển,hiệnđangtồntạimộtsốtừđiểntiếngViệtkhácnhau([19],
[23]).Thậmchí,khongữliệumẫuVietTreeBankcũngcónhữngsaikhác(xemlỗithựcthểởPhụl ụcB1).NếudựavàomộtsốkếtquảcủađềtàicấpnhànướcKC.01.01/06-10về“Hướngdẫn nhận diện đơn vị từ trong văn bản tiếng Việt” ([10]) thì có thể hiệu chỉnh sự khácbiệtvềtừgiữatừđiểntừvựng,quytắccấutạotừ,vớicáckhongữliệuVietTreeBank([10])để đưaramộttiêuchuẩnchấpnhậnđượcchobàitoántáchtừtiếngViệt.
Các từ điển, các kho ngữ liệu cần được thống nhất theo một bộ mã tiếng Việt([24]và[6]); thống nhất về chính tả được nhà nước ban hành ([4]và[5]); thống nhấtvềđơnvịtừvựngvàcácđơnvịlàthựcthểtrongvănbảntiếngViệt([10]),
Quá trình tách từ tiếng Việt sẽ phải đối diện với các vấn đề: nhận diện và khửnhậpnhằngranh giớitênriêng; nhậndiện từmới; vàxửlý nhậpnhằngranhgiớitừ.
Trong tách từ tiếng Việt, khi nhận diện tên riêng có từ 2 âm tiết trở lên, thườngxảy ra nhập nhằng giữatên riêngvớitên riêng.Ví dụ: "Chủ tịch UBND TP Hà
(1) "Chủ_tịchUBNDTPHà_Nội_Nguyễn_Thế_Thảo "
Hiện tượng nhập nhằng còn xảy ra giữatên riêngvớitừtrong văn bản Ví dụ:"TrườngĐạihọcBáchkhoaHàNội"cóhaiphươngánphântáchlà:
T u y nhiên, nó không thể chứa hết các từ được sử dụng trong thực tế, đặc biệt là các dạngtừ có khả năng tạo sinh lớn như từ láy, từ ghép đẳng lập, từ ghép chính phụ Vì thế,bàitoántáchtừtiếngViệtphảiđốidiệnvớivấnđềnhậndiện từmới.
Vídụ1."Tiếngnổbùm bụp trongkhói bụi "
Vídụ 2."Cáctổ hợp từkhúc kha khúckhích vàcơmnoáoấm."
Trong ví dụ 1 có hai từ mới là "bùm bụp" (từ láy) và "khói bụi" (từ ghép đẳnglập);còntrongvídụ2,cũngcóhaitổhợptừmớilà"khúckhakhúckhích"(tổhợptừl áymởrộng)và"cơmnoáoấm"(tổhợpghépđẳnglậpmởrộng).Tấtcảchúngđều không có trong từ điển cũng như kho ngữ liệu, kết quả tách từ sẽ thường bị lỗi,chẳng hạnnhư:
"Cáctổ_hợptừkhúc khakhúc_khíchvàcơmnoáo_ấm."
Nếu từ điển từ vựng được bổ sung thêm một số lớp từ như: từ láy hay từ ghépđẳng lập, chúng có khả năng chứa các từ "bùm bụp" hay "khói bụi" Nếu dùng luậtcấu tạo từ ghép mở rộng, có thể xác định được hai cụm từ "khúc kha khúc khích" và"cơmnoáoấm".Khiđó,kếtquảtáchtừsẽlà:
"Cáctổ_hợptừkhúc_kha_khúc_khíchvàcơm_no_áo_ấm." Để giảm số lượng từ mới cần đoán nhận, cần phải có tài nguyên từ vựng lớn.Nghĩa là, cần phải có từ điển từ vựng lớn cũng như kho ngữ liệu huấn luyện (đã táchtừ)lớn,phủnhiềulĩnhvựckhácnhau.
Ngoàira,từmớicóthểđượcxácđịnhbằngcáchsửdụngcácquytắccấutạotừ tiếng Việt([3],[8],[9],[10],[12],[ 1 3 ] ,[ 1 4 ] ,[ 2 1 ] ,[ 2 6 ] ),h o ặ c d ự a v à o t í n h toánt h ố n g kê m ứ c â m t i ế t t r ê n v ă n bả n c ầ n t á c h từ ( [33],[ 6 4 ] ,[ 7 2 ] ,[ 9 9 ] ,
[ 1 0 1 ] ).Vì thế, cần có một sốphân tích, thống kê và thảo luậnvề cáct ừ đ i ể n , c á c k h o n g ữ liệuvànghiêncứumộtsốphươngphápnhậndiệntừmớichotáchtừtiếngViệt.
Nhập nhằng ranh giới từ tiếng Việt là hiện tượng thường gặp, đặc biệt trong cácứng dụng liên quan đến xử lý ngôn ngữ tự nhiên khi phải thao tác với ý nghĩa từvựng Ví dụ, “họ đi kiểm tra một vòng quanh khu vực đón tiếp tân giám đốc” có tới 4phương ánphân tách từ:
(1) "họđikiểm_tramộtvòng_quanhkhu_vực đón_tiếptângiám_đốc"
(2) "họđikiểm_tramộtvòng_quanhkhu_vựcđóntiếp_tângiám_đốc"
(3) "họđikiểm_tramộtvòngquanhkhu_vựcđón_tiếptângiám_đốc"
(4) "họđikiểm_tramộtvòngquanhkhu_vực đóntiếp_tângiám_đốc"
Dựavàongữcảnhvàmộtsốdấuhiệukhác,conngườicóthểxácđịnhphươngánđúng dễdàng,nhưngvớimáymóc thì đólà một thách thức.
PhươngphápđánhgiákếtquảtáchtừtiếngViệt
Có nhiều tiêu chí và phương pháp đánh giá khác nhau như: dựa vào biên của từ,dựavào từ,haydựa vào câu.Ởđây, luận án dựa vàođơn vị từ đểđánhgiá.
+Nm:là sốtừ trong vănbản mẫu đãtách từ.
+Nđ:làsốtừtáchđúngsovớimẫu. Đánhgiáđộ chínhxáckết quảtáchtừ sovớimẫutheocác côngthức:
NHỮNGTIẾPCẬNTRÊN THẾGIỚIVÀTRONGNƯỚC
Nhữngtiếpcậntrênthếgiới
Bài toán tách từ được nghiên cứu ngay từ những năm 1980 Lúc đầu, các thuậttoántáchtừtheoquanđiểmsokhớpcựcđạidựavàotừđiển([116],
[117]),rồiđến phương pháp thống kê ([141]) Trong đó, có đưa ra cách giải quyết nhập nhằngphân tách bằng hai cách: kiểm tra các mối quan hệ cấu trúc giữa các từ, và thực hiệnthốngkêsosánhtầnsốsửdụngcủacáctừ.Cảhaitiếpcậnnàychokếtquảcònrấthạnchế.Ngays auđó,[109]kếthợpgiữacấutrúctừvàthốngkêđểnhậndiệnranhgiớitừ.
Cho đến nay, có nhiều phương pháp tách từ đã được đề xuất như[84],[143], [168], Các phương pháp này có thể được phân thành ba nhóm phương pháp chính:cácp h ư ơ n g p h á p d ự a t r ê n t ừ đ i ể n ; c á c p h ư ơ n g p h á p d ự a t r ê n t h ố n g k ê ; v à c á c phươngpháplaikếthợp;vàcóthể kểđếnmộtsốphươngphápphỏngsinhhọc.
Trong các phương pháp dựa trên từ điển, cho một chuỗi kí tự đầu vào, từ duynhất được lưu trữ trong từ điển có thể được xác định Một trong những phương phápphổ biến nhất là so khớp cực đại (MM - Maximum Matching) Tuỳ hướng duyệtchuỗikítựđầuvàomàtacóhaitiếpcậnsokhớpcựcđạikhácnhau([166],
[180]):so khớp cực đại tiến (FMM - Forward Maximum Matching) và so khớp cực đại lùi(BMM - Backward Maximum Matching) Ngoài ra, phương pháp so khớp cực đạithường được tăng cường với các thông tin heuristic hay thống kê để xử lý với cácnhập nhằng chồng lấp (OA - Overlap Ambiguities) ranh giới từ giữa FMM và BMM([105],[153]). Ngoài ra, các phương pháp so khớp cực đại phụ thuộc vào độ lớn củatừ điển từ vựng. Tuy nhiên, trong thực tế các từ mới (NW - New Words) xuất hiệnliêntụcmàphươngphápsokhớptheotừđiểnkhócóthểhoànthànhtốtcôngviệc.
Vì vậy, để giải quyết vấn đề từ mới, nhiều hệ thống cũng chứa các thành phần đặcbiệtđểxácđịnhtừmới,bổsungvàotừđiển.
Cácnghiêncứusokhớpvớitừđiểnđượcthựchiệntừnhữngnăm1980đếnnay:tiếngTrung ([116]);tiếngThái([137]);tiếngMyanmar([163]);tiếngUrdu([124]);
Các phương pháp thống kê được áp dụng rộng rãi bởi vì chúng sử dụng một cơchếtínhđiểmdựatrênchiphíhoặcxácsuấtthaychotừđiểnđểtáchtừtrongvăn bản.Tuy nhiên, những phươngphápnàygặp phải 3hạn chế:
Một số phương pháp trong[100]xác định các từ mới NW mà không biết nólà cái gì Chẳng hạn, người ta sẽ xác định một chuỗi như là một đơn vị từvựng,nhưngkhôngxácđịnhđượcnó chodù nó làmột tên người.
Nhiều phương pháp thống kê hiện nay gặp khó khăn trong việc kết hợp trithức ngôn ngữ một cách hiệu quả vào tách từ Chẳng hạn như[155]và[60]không sử dụng bất kì tri thức ngôn ngữ nào Như vậy, việc xác định các từmới NW có khả năng không hợp lý về mặt ngôn ngữ học.
Do đó, việc kiểmtra thủ công bổ sung là cần thiết đối với một số nhiệm vụ tiếp theo như phântích từ loại hayphân tích cú pháp.
Trong nhiều bộ tách từ hiện nay, việc xác định từ mới NW được coi như làmột quá trình riêng biệt trong tách từ ([32],[34],[110]) Ví dụ,[32]giả địnhrằng các từ mới NW thường là hai hoặc nhiều kí tự và thường được phântách thành các kí tự đơn. Sau đó, tác giả dùng các thành phần khác nhau đểpháthiệncácloạitừNWkhácnhautheotừnglớpsaukhitáchtừcơbản.
+Loại1: dùng các độ đo được thiết kế cẩn thận để xác định các ứng viên từ.Các độ đo phổ biến gồm: các xác suất ngram, độ thông tin tương hỗ (MI - MutualInformation, theo[141]), độ lợi chiều dài mô tả (DLG - Description Length Gain,theo[54]), độ AV (Accessor Variety, theo[74]) đo tần suất phụ tố của dãy con, độEntropy của ranh giới (BE - Boundary Entropy, theo[181]) và biến thể của Entropynhánh được chuẩn hoá (nVBE - normalized Variation of Branching Entropy, theo[135]), độ dài mô tả cực tiểu (MDL - Minimum Description Length, theo[136], [144],[148]), v.v.
+Loại2: tập trung vào việc thiết kế mô hình thống kê phức tạp, thường là môhình Bayes phi tham số để tìm cách tách từ với xác suất hậu nghiệm cao nhất cho dãyâm tiết quan sát đã biết Các mô hình thống kê tiêu biểu bao gồm: mô hình quá trìnhDirichlet phân cấp (HDP - Hierarchical Dirichlet Process, theo[147]), mô hình quátrìnhP i t m a n -
Y o r p r o c e s s , t h e o [ 1 2 3 ] ),m ô hìnhBayes-HMM(theo[120]),v.v. b Học máy có giám sát(supervised): với nhiều mô hình học máy hiện đại như:NaiveB a y e s / m ô h ì n h x á c s u ấ t n - g r a m m ứ c t ừ ; m ạ n g n ơ - r o n n h â n t ạ o ( A N N -
ArtificialN e u r a l Network); mô hìnhMar ko v ẩ n (H MM -
Hidden Mar ko v Model), mô hình Entropy cực đại (MEM - Maximium Entropy Model), mô hình MarkovEntropy cực đại (MEMM - Maximum Entropy Markov Model), mô hình máy vectorhỗ trợ (SVM - Support Vector Machine) và mô hình trường ngẫu nhiên có điều kiện(CRF-ConditionalRandomField).Cụthểcó cácnghiêncứu sau:
Môhìnhxácsuấtn-grams([64],[101])mứctừ:gồm[53]và[113];
Nhómcácphươngpháplaikếthợpđượcquantâmnhiềuhơnvìhiệuquảthựctế của chúng Mở đầu với nghiên cứu[142]dựa trên các bộ biến đổi trạng thái hữuhạn có trọng số (WFST - Weighted Finite-State Transducer), trong đó, bộ biến đổi làmột từ điển có dạng một automat hữu hạn, với các nút có trọng số được thống kê trênkho ngữ liệu Nghiên cứu[99]chỉ ra rằng việc xác định các từ mới NW không nênđịnh nghĩa như một bài toán riêng biệt trong tách từ Việc tích hợp chúng (sử dụng từđiển và thống kê) sẽ có lợi cho cả hai.
Do đó, họ đề xuất một phương pháp tiếp cậnthống nhất giải quyết cả hai bài toán đồng thời Các khung khác cho bài toán tách từ,bao gồm các mô hình Entropy cực đại MEMs như[126]và các trường ngẫu nhiên cóđiều kiện CRFs như[76]đã giới thiệu Họ cũng sử dụng cách tiếp cận thống nhất chotáchtừvàxácđịnhcáctừmớiNW. a Học máy bán giám sát(semi-supervised): Học bán giám sát cho tách từ thựcchất là sự kết hợp giữa học giám sát và không có giám sát Sự kết hợp này cho kếtquả tốt hơn so với các phương pháp đơn lẻ: sử dụng học giám sát để xác định các từđã biết (đã học) và xử lý nhập nhằng, còn các từ mới chưa biết thì sử dụng học khônggiám sát để đoán nhận Một số nghiên cứu gồm có:[75],[77],[81],[82],[83],[96],[103],[104],[112], [119],[131],[165],[167],[170],[173],[176],[177]. b Mô hình lai: từ điển và thống kê: Sự kết hợp của hai phương pháp dựa vào từđiểnvàthốngkêđãbùđắpnhữngđiểmyếucủatừngphươngphápriênglẻ.Tạora kếtquảtốthơn.Tuynhiênphảixửlýphứctạphơn.Cụthể:
Bộbiến đổitrạng thái hữu hạn cótrọng số WFST: gồm[142],[172];
Kếthợptừđiểnvớihọcgiámsát:gồm[80],[65]và[138]. c Kỹ thuật Voting: dựa trên ý tưởng tương đối đơn giản: kỹ thuật bầu chọn vớitiêu chí "đa số thắng thiểu số" Kỹ thuật này thường cho kết quả tốt, tuy nhiên phảitốn nhiều chi phí hơn (công sức, thời gian để thiết kế lại các thuật toán, chạy lại cácthuậttoán,rồithựchiệnVoting).Mộtsốnghiêncứutiêubiểu:[56],[62],[63],[71]. d Môhìnhhỗnhợptuyếntính:đâylàphươngphápmà[98]và[99]đưaranhằmgiảiquyếtđồn gthờicácnhiệmvụ:vừatáchtừdựavàotừđiểnvàvừanhậndiệncáctừmớiNWdựavàothốngkêtrong mộtmôhìnhhỗnhợptuyếntính.Môhìnhnàyđưaramột khung (framework) linh hoạt để kết hợp các loại thông tin từ vựng và thống kê.NhiềuloạitừmớiNWkhôngnằmtronghệthốngcủa[143]cóthểđượcxửlýtronghệthống của họ ([98],[99]) Các mô hình tuyến tính bắt nguồn từ các hàm phân biệttuyếntính,đượcsửdụngđểphânloạimẫutrong[158],vàđãđượcgiớithiệutrongcácnhiệmvụxửl ýngônngữtựnhiên[121].
Một số phương pháp có tính đặc thù, được nghiên cứu, khảo sát và áp dụngtrong những trường hợp đặc biệt dựa vào các phương pháp giải tự nhiên như: giảithuật di truyền (GA - Genetic Algorithms), tối ưu đàn kiến (ACO - Ant ColonyOptimization),tốiưubầyđàn(PSO-ParticleSwarmOptimization).Cụthể: a.GiảithuậtditruyềnGA:gồm[45],[58],[59],[78],[178]; b.Tốiưuđàn kiếnACO: trong[78]; c.TốiưubầyđànPSO:gồm[94]và[95].
Nhữngtiếpcậntrongnước
Mặc dù đi sau Trung Quốc và Thái Lan khoảng 10 năm, nhưng các nhà nghiêncứu trong nước đã kịp thời tiếp cận những nghiên cứu trên thế giới, áp dụng vàonghiên cứu cho tiếng Việt Nghiên cứu bài toán tách từ tiếng Việt đầu tiên là[69], vàđếnnay,đãcóhàngchụccôngtrìnhtáchtừbằngnhiềuphươngphápkhácnhau. Vềc ơ b ả n , c á c p h ư ơ n g p h á p t á c h t ừ t i ế n g V i ệ t đ ư ợ c c á c t á c g i ả t ậ p t r u n g nghiên cứu trên cơ sở các mô hình: mô hình thống kê ngôn ngữ n-gram ([69],[79],[85],[87],[128],[134]); phương pháp phỏng sinh học (giải thuật di truyền và thốngkên- gram,xem[17],[87]);họcmáycógiámsátbằngcácphươngphápnhưmạng nơ-ron nhân tạo ANN ([69]), mô hình Markov ẩn HMM ([A3],[61],[125]), mô hìnhEntropy cực đại MEM ([70],[128]), trường ngẫu nhiên có điều kiện CRF ([162]),máy vector hỗ trợ SVM ([29],[162]); các phương pháp sử dụng từ điển ([18], [29],[61],[69],[134]) thông qua các Automat trạng thái hữu hạn ([18],[134]) hay bộ biếnđổitrạng thái hữuhạncótrọngsốWFST([69]).
Hướngđộclập:chỉdùngmộtphươngphápcơbảnvớimộthaynhiềuđặctrưngđểtácht ừ,chẳnghạn:thốngkên-gram([79]cóđộđoF1-scorelà51%-
[87]cóđộđoF1-scorelà50%-61%);họcmáy(mứctừ)HMM([A3]:92%).
Hướng kết hợp: kết hợp các phương pháp để đạt kết quả cao: dùng từ điểnvới n-gram ([134]: 95,6%); học máy với từ điển: MEM ([70]: 94,4%), SVM([162]: 94,23%), CRF ([162]: 94%); từ điển và học máy ([29],[61]: 97%);họcmáy,từđiểnvàn- gram([128]:95,3%);từđiểnvớihọcmáyvàthốngkêbigram([69]:97%);t ừđiển vàkỹthuậtPointwise( [2]:98,2%);tốiưu đànkiếnACOvớitừđiển([ A5]:98%); kỹthuậtVoting([A1]:97,29%).
CácsốđođộchínhxácF1- scorenêutrênchỉlàtươngđốivàkhôngđượcsosánhtrựctiếpdokhôngcócùngcấuhìnhthựcnghiệ m.Tuynhiên,quađóchotathấy,cáctácgiảđãtiếpcậnbằngcáchkếthợpnhiềuphươngphápkhá cnhaunhằmcảithiệnđộchínhxácvàtốcđộtáchtừ.Đặcbiệtlàcácphươngpháptheohướngkếthợptỏra rấthiệuquảvớiđộchínhxácF1-scoretừ94%đến98,2%.
Tuynhiên,dotáchtừtiếngViệtlàbàitoánkhóvàđượcứngdụngvàonhiềub ài toán thực tế cho nên đây là hướng nghiên cứu vẫn đang được nhiều chuyên giaquantâm.Cóthểkểra haitrongcác vấnđềcầnnghiên cứuvà giảiquyếtsau:
Thứn h ấ t , h ầ u h ế t c á c p h ư ơ n g p h á p c h ư a m ô t ả đ ư ợ c c á c h x á c đ ị n h t ừ m ớ i , cũng như chưa có đánh giá kết quả nhận diện từ mới tiếng Việt, nên kết quả nóichunglà còn thấp. Cóhainghiêncứu tách từbằnghọcmáy khônggiám sátlà[17]và
[79]cho kết quả rất thấp 51-65%; một nghiên cứu khác ([85]) thực hiện học máykhông giám sát trên kho ngữ liệu khá lớn (khoảng 19.000.000 câu) và cho kết quả tốthơn(90%),tuynhiênkhóthựchiệnonlinevàchưađưaragiảiphápsửdụngthôngt inhọcđược để tách từ cho các văn bản mới.
Thứ hai, các phương pháp đều phải đối diện với thách thức nhập nhằng,nhưngcácnghiêncứumớichỉnêuvàđưaramộtdạngnhậpnhằngchồnglấpcủabaâmtiết s i,s i+1,s i+2khicóhailựachọn(s i s i+1)(s i+2)/(s i)(s i+1 s i+2).Nhiềunghiêncứukhôngnêucụ thể nhập nhằng, nhưng đưa ra phương pháp giải quyết tổng quát là dùng từ điển sokhớp cực đại kết hợp với các mô hình học máy thống kê để khử nhập nhằng Hầu hết,các nghiên cứu chưa đưa ra cách giải quyết khử nhập nhằng trong điều kiện kho ngữliệu huấn luyện không đủ lớn làm cho các xác suất ngữ cảnh có điều kiện (phụ thuộcbêntráihayphải)củanhậpnhằngbằng0.
NhữngkếtquảđạtđượctrongtáchtừtiếngViệt
1 0 ) : c ó k h o ả n g 1 0 0 0 0 c â u đã được tách từ vàgánnhãn từ loại.
1 0 ) : c ó k h o ả n g 1 0 0 0 0 c â u đãđượctáchtừ,gánnhãntừ loại và phântích cúpháp. b Từđiểntừvựng,từloại
Từ điểnV C L ( V i e t n a m e s e C o m p u t a t i o n a l L e x i c o n ) : g ồ m 4 1 7 3 4 m ặ t n g h ĩ a (với 31.158 mặt từ khác nhau) Trong đó, có chứa tương đối đầy đủ các thông tin vềhìnhthái, ngữphápvàngữ nghĩacủatừ vựng(SP7.2, KC.01.01/06-10):
+Hìnhthái(morphological):từđơn(simpleword),từghép(compoundword),từ láy(reduplicativeword),
+Ngữpháp(syntactic):từloại(category),tiểutừloại(subcategory).
+N g ữ n g h ĩ a ( s e m a n t i c ) : l ớ p n g ữ n g h ĩ a ( c a t e g o r i a l m e a n i n g ) , t ừ đ ồ n g n g h ĩ a (synonyms),từtráinghĩa(antonyms),địnhnghĩa(def.), c Mộtsốcôngcụdùngchotáchtừ
+Trựctuyến:http://vlsp.vietlp.org:8080/demo/?page=seg_pos_chunk
NhữngtồntạitrongnghiêncứutáchtừtiếngViệt
Có thể thấy những tồn tại trong nghiên cứu tách từ bằng minh hoạ dùng công cụVnTokenizer 4.11c hoặc công cụ trực tuyến ([10]) để tách từ khi có từ mới hoặc nhậpnhằngnhưtrongHình1.3:
Chủ_tịch UBND Thành_phốHà_Nội_Nguyễn_Thế_Thảođã đến Trường_ĐạihọcBách_khoadẫn_đầuphong_trào
Toàn trường đang chuẩn_bịđón tiếp_tânThủ_tướng Họđanghọc_sinhhọc
Chịđưahai_bàn_tay_trắngxoábọtxà_phòng
Từ_láy :bùm bụp,cuống_cuồng cuồng,khúc kha khúc_khích.Họđãvượtquabaosôngsuối,thácghềnhđểđếnđây Đãcócơmnoáo_ấm,khôngphảiđimưavềnắngnữa
Một số nghiên cứu có kết quả đạt được còn hạn chế Có thể thấy rõ trong tiếpcận[79], kết quả chỉ đạt 51%-65% với thời gian thực hiện O(n 3 ), (nlà số âm tiếttrong dãy vào) Trong tiếp cận[18], các tác giả chưa đánh giá được độ chính xác táchtừ Trong các tiếp cận[17],[87], xuất phát từ nhận định tỉ lệ phân bố thực tế của từđơn, từ kép, từ bộ ba, từ bộ tư trở lên tuân theo tỉ lệ chứa trong từ điển, cụ thể: từ kép chiếm trên 67%, từ đơn và từ bộ 3-4 chiếm gần 30%, các từ dài hơn chiếm 3% Dovậy, tỉ lệ này đã được sử dụng để khởi tạo các giá trị cho nhiễm sắc thể, và nhận địnhrằng quần thể ban đầu đã có một số cá thể tối ưu cục bộ Điều này không đúng vớithựctế khảo sáttrongcáckhongữ liệu mẫu (Bảng1.1).
Bảng 1.1 đã chỉ ra tỉ lệ phân bố độ dài từ theo số lượng âm tiết trong thực tếkhác với quan điểm trong[17],[87],[134] Nếu chỉ sử dụng dấu cách và các dấu câuđể tách từ (đơn thuần chỉ là tách âm tiết), ta đã có kết quả độ chính xác (Bảng 1.2) tốthơnsovớicáccáckếtquảcủa[17],[79],[87].
Với: Nđ (tổng từ đúng) là tổng số dấu câu và từ đơn, và các độ đo được tính: độhồitưởngR=Nđ/Nm;độchínhxácP=Nđ/Nt;vàđộđoF1-score=2RP/(R+P).
Với kho ngữ liệu mẫu hiện có, có thể sử dụng các số liệu này (67,24- 74,32%,Bảng 1.2) làm ngưỡng cho các phương pháp tách từ phải vượt qua Như vậy, kết quảtáchtừcủa[17],[87]đạtđược51-65%là rấtthấp,dưới ngưỡngnêutrên.
Một số phương pháp sử dụng thống kê n-grams như[79],[128],[134]sử dụngtrựct i ế p c á c g i á t r ị x á c s u ấ t v à n g ư ỡ n g đ ể c h ọ n N g h i ê n c ứ u [ 8 5 ] đ ư a r a p h ư ơ n g pháp học không giám sát với nghiên cứu sâu và khai thác tương đối triệt để các thôngtin thống kê có liên quan trên toàn bộ kho ngữ liệu, đạt được độ chính xác khá tốt(đến 90%) Phương pháp nêu trên có thể được dùng để phát hiện, nhận diện và thuthập các từ mới Giải pháp[17],[87]dùng giải thuật di truyền với nhiễm sắc thể cóđộdàinlàsốâmtiếttrongcụmtừ/câu,vớiquầnthểgồmkcáthểvàthếhệtiếnhoálàm.Thờ igiantínhtoántỉlệvớikmn,khálớnsovớin 3 (thườngk,m>>n).
Vớic á c m ô h ì n h n - g r a m , c ó k h á n h i ề u t h ô n g t i n l i ê n q u a n c ó t h ể k h a i t h á c được.Ngoàixácsuấtn- gram,còncóđộđotươnghỗthôngtin(MI-MutualInformation) như[17],[87]đã dùng, độ khác biệt theo ngữ cảnh thống kê t-test, độphức tạp văn bản (PP - Perplexity), Nếu như khảo sát và so sánh, ta có thể chọnđược độ đo tốt nhất Trong[79]sử dụng thuật toán quy hoạch động, kết hợp so sánhgiữa các xác suất khác loại nhau (unigram, bigram và trigram) để chọn lựa từ đơn, từképhay từbộba mà không có sựquyđổivề cùng thangđo (chuẩnhoá). Điểm nổi bật trong các nghiên cứu là nhiều tác giả quan tâm đến lĩnh vực họcmáythốngkê,cáccáchtiếpcậncũngkháđadạng,từtiếpcậnhọctừmôhìnhxácsuấtđến các mô hình cao hơn như HMM, MEM, CRF, SVM Một số cách tiếp cận tiêubiểulà[70],[128],[162]vớicáckếtquảđạtđượckhácao,đềutrên94%,trongđó
Trong các nghiên cứu sử dụng học máy cho thấy, một số mô-đun nhận dạngthực thể tên chưa tốt, làm giảm kết quả tách từ xuống như trong[29]: nếu không cómô-đun nhận diện tên riêng (PN - Proper Name) thì kết quả đạt được 0,973, và khitíchhợpthêmPNvàothìkếtquảgiảmxuốngcòn0,9679(Bảng1.3).
Phương pháp tách từ sử dụng từ điển từ vựng là một trong những cách tiếp cậnđơngiản,đượcnhiềutácgiảquantâmnhư:[18],[29],[61],[69],
[162]đã đánh giá (82,82% hay 84,52%) Đa số các tác giả đều chỉ ra là kết hợp cácđặc trưng hay các phương pháp như: so khớp cực đại dựa vào từ điển, dựa vào thốngkê, học máy, nhận dạng các thực thể tên riêng trong văn bản, để cải thiện độ chínhxác Tuy nhiên, với so khớp cực đại, cũng chưa có so sánh giữa các phương phápFMMvàBMMđểchỉracáinàotốthơn.
Trong[29]sửdụngsokhớpcựcđạiFMMvàBMMđểpháthiệnranhậpnhằng.Trên cơ sở một số đặc trưng unigram, bigram của nhãn biên từ và nhãn so khớpFMM/BMM, các tác giả sử dụng công cụ SVM-based Chunker (Kudo và Matsumoto2001, YAMCHA - Yet Another Multipurpose CHunk
Annotator, theo[174]) để thựchiện,nếuvẫncònlỗithìhiệuchỉnhlạibằngluật.Với[69],cáctácgiảdùngmộtbộbiếnđổitrạn gtháihữuhạncótrọngsốWFST(chứatừđiểntừvựng,từloạivàcácthôngtinthốngkê)đểsokhớp.Ởđầura củaWFST,đượcthiếtkếthêmmộtmạngNơ- ronđểhọcvàgiảiquyếttiếpcácnhậpnhằngtáchtừ.Kếtquảkhácao97%.Bàibáo[134]cónêumột dạng nhập nhằng chồng lấp ba âm tiết và đưa ra cách khử nhập nhằng bằng cáchso sánh tích xác suất bigram mức từ của dãy từ theo các phương án để chọn Kết quảkhửnhậpnhằngmớichỉcảithiệnđược 0,2%độ chínhxác F1-score.
Nhưvậy,nhậndiệntênriêng,nhậndiệntừmớivàxửlýnhậpnhằngranhgiới từ là những vấn đề khó trong bài toán tách từ tiếng Việt nhưng chưa được khảo sát,phânloại và giải quyết một cách hệ thống.
Quakhảosátcác khongữliệumẫu tiếngViệt,cómột sốvấnđềnhưsau:
- Hầu hết các kho ngữ liệu chưa bao phủ được vốn từ vựng tiếng Việt Theo kếtquả khảo sát, số từ vựng tiếng Việt chiếm tỉ lệ khá thấp so với từ điển (cụ thể, SP731:chiếm54,45%,SP732:31,32%,Bảng1.6).
- Ngữ liệu dùng hỗn hợp mã Unicode dựng sẵn (theo TCVN 6909:2001) và mãUnicode tổhợp.
- Không thống nhất trong cách đánh dấu thanh tiếng Việt trên một số tổ hợpnguyênâm:oa,oe,uy.
- Phiên âm tiếng nước ngoài không thống nhất Cách viết tắt, viết hoa tên riêng,tênđịađiểm,tổchức, khôngthốngnhấtvàkhôngtuântheochuẩnchínhtả.
- Mộtsốtừđượctáchchưathốngnhấtdonhiềungườikhácnhauthựchiện.Khongữliệ umẫucóthểdùngchonhiềumụcđíchnghiêncứukhácnhaunhư: tách từ, rút trích thông tin, trả lời tự động, huấn luyện kiểm lỗi chính tả, ngữ pháp, Việc xây dựng kho ngữ liệu mẫu tiếng Việt mới chỉ là bắt đầu, khó tránh khỏi lỗichính tả, sự thiếu nhất quán trong dùng từ hay thực thể văn bản Vì vậy, việc khảo sátđánhgiá,sửalỗicáckhongữliệutiếngViệtlàcầnthiết.
ĐỀXUẤTHƯỚNGGIẢIQUYẾT
XácđịnhtàinguyênchobàitoántáchtừtiếngViệt
- KhoSP732-VietTreeBank(SP7.3,KC.01.01/06-10):gồm142filevănbảnvới
10.383câu,221.259từđượctách,gánnhãntừloại.(kíchthước1.35MB).
- Khongữliệu thôtiếngViệtrawVnCorpus: được tácgiảthuthập từcác t intức,tàiliệu trênInternetvớinhiềulĩnhvựckhácnhau(kíchthướccỡ54MB). b SửalỗichocáckhongữliệutiếngViệt
CáckhoSP731,SP732đãđượcchỉnhsửathốngnhấtvềmộtmãunicodedựngsẵn,ch uẩnhoácácthựcthể,táchcâu.Hiệuchỉnhmộtsốlỗinhưsau:
+CáccôngcụgõtiếngViệtcóhaichếđộbỏdấu:òa/oà,óe/oé,ủy/uỷ,
+Lỗikhigõdấuthanhkhôngđúngvịtrí:qúa,cuả,gía,tứơng,đựơc,
+Lỗihaidấuthanh:trờí/trời,nguỵễn/nguyễn,tựợng/tượng,
+Lỗithanhsắcvớiphụâmcuốip/t/c/ch:cẳp/cắp,viềt/viết,
+Lỗinguyênâmươ(uơ/ưo):nguời/người,uớc/ước,Tưòng/Tường,
+Lỗingh/ng:nghô/ngônghê,nghành/ngànhnghề,
+Lỗig/gh:ghồ/gồghề,ghanh/ganhghét,
+Lỗivầnuyêch/uêch:khuyếch/khuếchđại,rỗngtuyếch/tuếch,
Trên cơ sở quy định về chuẩn chính tả tiếng Việt hiện hành ([4],[5]) và quy tắcđặt dấu thanh tiếng Việt ([20],[27]), luận án đã đề xuất thuật toán A3 (Phụ lục A) đểphântíchvàsửamộtsốlỗichínhtảđãnêu chocáckhongữliệu mẫutiếngViệt.
Kết quả sửa lỗi chính tả tự động: 7.801 lỗi cho kho SP731, 929 lỗi cho khoSP732.(BảngB2.1,PhụlụcB2).
+Dấucách:giữacácđơnvịâmtiếtchỉdùng1dấucách.Kếtquả:loạibỏ
+ Dấu nối ("_"): chỉ dùng 1 dấu nối giữa hai âm tiết cho từ ghép Kết quả:loạibỏ80dấunốithừa trongSP731, loạibỏ5 dấu nối thừa trongSP732.
Các kho ngữ liệu SP731 và SP732 đã được chuyên gia Viện Ngôn ngữ học ViệtNamhiệuchỉnhhầuhếtcáclỗivềtừ láy,từghép đẳnglập,thànhngữ,
+ Từ điển VCL ([10]): có 31.158 từ (với 41.734 từ-nghĩa), với các thông tinhình thái, ngữ pháp, ngữ nghĩa của từ (SP7.2, KC.01.01/06-10) dùng cho xử lýngônngữ tự nhiên tiếngViệt.
ThốngkêchấtlượngcáckhongữliệumẫutiếngViệt
Luận án sử dụng từ điển VCL 31.158 từ vựng và từ điển VSD 7.015 âm tiết đểthực hiện các thống kê cho các kho ngữ liệu mẫu tiếng Việt đã hiệu chỉnh Các kếtquả thống kê được dùng để xác định các đặc trưng cho bài toán tách từ, là cơ sở để sosánh,đánhgiákết quảnhậndiệntừmới,tênriêngvàtỉlệkhửcácnhậpnhằng.
Về mặt thống kê, đơn vị từ trong các kho ngữ liệu thể hiện ở ba dạng:
"dấucâu", "từ vựng", và "thực thể" Trong đó, mỗi đơn vị từ có thể gồm một hay nhiềuđơnvị âmtiết ghép lại.
Bảng 1.4 cho thấy dấu câu chiếm tỉ lệ khá cao (cỡ 14 - 15%) Mỗi dấu câuthường đi kèm ở trước, ở sau hay trong âm tiết, có mặt trong các từ - thực thể lẫn từ -từ điển Do vậy, nếu không tách trước ở bước tiền xử lý thì sẽ ảnh hưởng xấu đến kếtquả tách từ Việc xử lý tách các dấu câu được thực hiện ở bước tiền xử lý với thuậttoánVWS1 bằngcây quyếtđịnhnhịphân(mục2.1.2.1).
Cũng qua thống kê, các từ - thực thể chiếm tỉ lệ không nhỏ trong các kho ngữliệumẫu(SP731:7,76%,SP732:4,93%,theoBảng1.4).Việcnhậndiệnđúngcáctừ
- thực thể, nhất là các từ - thực thể ghép sẽ làm tăng độ chính xác cho kết quả tách từ.Các dạng từ - thực thể không có mặt trong từ điển, nên chúng được coi là một dạng"từmới" cần đượcnghiêncứuvà nhận diện.
Tổng số từ-thực thể 119.770 7,76 10.917 4,93
Tổng số từ-từ điển 1.201.719 77,90 177.072 80,04
("Tổngsốđơnvịtừ",hay"Tổngsố đơnvịâmtiết"làbaohàmdấucâu)
Phầncònlạilàcáctừ- từđiển,chiếmtỉlệcaonhất(SP731:77,90%,SP732:80,04%).Chínhvìthế,bàitoántáchcác dấucâu,táchcáctừ- thựcthểvàtáchcáctừ
Bảng 1.1 cho thấy tổng số dấu câu và từ đơn chiếm tỉ lệ chủ yếu trong các khongữ liệu (75,87 - 81,57%) Từ Bảng 1.1, ta cũng xác định được ngưỡng độ chính xáctách từ (67,24 - 74,32%) như trong Bảng 1.2 Ngoài ra, cũng từ Bảng 1.1 ta rút rađượccácthôngtintrong Bảng1.5nhưsau:
Tổng số từ 1-2 âm tiết chiếm tỉ lệ 98,70 - 99,09%; tổng số từ 1-4 âm tiết chiếm99,99%.Dựavàođó,cóthểchọnđượcđộdàitừchotáchtừtiếngViệt.
+Độphủtừđiển:SP731:54,44%;SP732:31,34%.Ngữliệuhuấnluyệncóđộphủc àng caothì huấnluyện càngtốt,vàcóthểdùngchocácứngdụngthực tế.
Tổng từ trong từ điển 1.179.169 98,12 173.647 98,07
'Quathốngkê kítựđặc biệt(BảngB3.1, Phụlục B3) tathấy:
+ Các kho ngữ liệu mẫu (SP731, SP732) đã lược bỏ đi khá nhiều kí tự đặc biệt(các dòng 3, 4, 19, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34) Trong đó, có một số kí tựđặc biệt mangý nghĩa quan trọngtrong văn bản.
+ Kho ngữ liệu thô (rawCorpus) cho thấy tần suất thấp của một số kí tự đặc biệt(~:44,^:28,#:22,`:14,|:4,_:3).Theotầnsuất,cáckítựnàycórấtítýnghĩa
S0 f1 S1 f2 S2 fk Sk trongvănbản,nêncóthểchọnnólàmkíhiệuchobàitoántáchtừvàgánnhãn.Ởđâyc họnkíhiệu "_"choviệc ghéptừphức(ghép)vàkíhiệu"|"choviệc gánnhãn.
ChọnmôhìnhtíchhợpchotáchtừtiếngViệt
VớicácnghiêncứutáchtừtiếngViệtdựavàođơnvịcơsởlàâmtiết,thìcácmô hình học máy có giám sát cho kết quả cao hơn nhiều so với không giám sát.Chẳnghạn,cácmôhìnhHMM,MEM,CRFdùngchotáchtừtiếngViệtthườngcóđ ộ chính xác F1-score 90%-95% Các mô hình hỗn hợp tuyến tính kể cả MEM hayCRF (biểu diễn lograrit tuyến tính) sử dụng các đặc trưngf k với trọng sốw k để tối ưucấu trúc:w k f k Kết quả tối ưu của mô hình là sự tối ưu cân đối giữa các đặc trưngfthôngqua tập trọng sốwhọctừngữliệuhuấnluyện.
MộtsốnghiêncứutáchtừtiếngViệttrướcđâychothấy,cácmôhìnhlaikếth ợp dựa vào đơn vị cơ sở là từ cho kết quả tách từ tốt hơn so với đơn vị cơ sở là âmtiết Chẳng hạn,[A5],[2],[29],[61], [69]và[134]sử dụng các phương pháp kết hợpcósửdụngtừđiển,kếtquảtách từđược côngbố tươngđối cao(94%-98%).
Vìthế,luậnánnghiêncứutheohướngmôhìnhlaikếthợpdựavàođơnvịcơsở là từ Trong đó, các đặc trưng được giải quyết tối ưu kết hợp với nhau một cách cóthứ tự trong một mô hình tích hợp, theo nguyên tắc các đơn vị ngoài từ vựng đượcthựchiệntrước:dấucâu,cáckítựđặcbiệtvàcácthựcthểtrongvănbản.Vớicá cđơn vị ngoài từ vựng, thực hiện tách dấu câu và các kí tự đặc biệt trước, sau đó dễdàngnhậndiệncácthựcthểtrongvănbảncũngnhưtừvựng.Kếtiếpđểcócácđơnvị cơ sở là từ, thực hiện sinh các ứng viên từ theo từ điển, rồi thực hiện nhận diện từmới, sau đó là xử lý nhập nhằng ranh giới từ Ở bước cuối, sẽ thực hiện tìm và xácđịnhđượcdãytừtiếngViệt.
Minhhoạ bằng sơđồởdạng mô hìnhghép nối có thứtựnhư Hình1.4.
(1) Nghiên cứu vềcác đặcđiểmvềcấu tạotừtiếngViệt: chỉra cácđặc trưngvàminhhoạtiêubiểutheocấutạotừphứctiếngViệt.
(2) Nghiên cứu các tiếp cận trên thế giới cũng như trong nước về bài toán táchtừ nói chung và tách từ tiếng Việt nói riêng Trên cơ sở đó, luận án đã chỉ ra nhữngkếtquảđạtđượcvànhữngvấnđềkhócòntồntạichưađượcgiảiquyết.
(3) Luận án đã đề xuất hướng giải quyết: (a) Sửa lỗi cho các kho ngữ liệu mẫu;Thựch i ệ n c á c k h ả o s á t , t h ố n g k ê t r ê n c á c k h o n g ữ l i ệ u m ẫ u V i e t T r e e B a n k n h ằ m chọn một số tham số, đặc trưng cho tách từ tiếng Việt; (b) Trên cơ sở đó, luận án đãphân tích, lựa chọn mô hình và đề xuất một số kỹ thuật tách từ tiếng Việt: Tách từ vànhận diện thực thể văn bản tiếng Việt (Chương 2); Nhận diện từ láy và từ ghép đẳnglập tiếng Việt (Chương 3); Khử nhập nhằng ranh giới từ tiếng Việt (Chương 4); vàChương 5 là thử nghiệm và đánh giá mô hình tích hợp các kỹ thuật đã đề xuất chotáchtừtiếngViệt.
Trong chương này, tác giả đã có một số bài báo bổ sung làm đa dạng cho cácphươngpháptách từ tiếngViệtnhư[A1],[A3]và[A5].
THUẬTTOÁNTÁCHTỪTIẾNGVIỆT
ThuậttoántáchtừtiếngViệtVWS
Bước2 Nhậndiện cácthực thể văn bản:
+tênriêng,tênviếttắt,kíhiệumã, +ngàytháng,thờigian,giátrịsố,phânsố,sốbằngchữ, +địachỉemail,tênmiền/url,đơnvịđo,phầntrăm.
Bước3 Sinh các ứngviên từdựavào từđiển.
Bước5 Gán điểmchocác ứngviên từtheo nhậpnhằng và ngữ cảnh.
+Chương2:thựchiệnBước1,Bước2,Bước3vàBước6.
+Chương5: thựchiện thử nghiệmtổnghợpcác bước.
Trongmục2.1.2,luậnánsẽthựchiệngiảiquyếtcácbước:Bước1,Bước3vàBước6 củathuật toánVWS, cònBước2sẽđượcgiảiquyếttrongmục 2.2.
Cácthuậttoándùngchungtrongtáchtừ
2.1.2.1 Tiềnxửlýtáchtừ(VWS1)thựchiệntáchcácdấutrongcâu Đây là nhiệm vụ đầu tiên (Bước 1) trong thuật toán tách từ Do có sự nhậpnhằng giữa việc tách hay không tách một số dấu câu khi đi kèm với âm tiết, chữ viếttắt, số, Hơn nữa, các dấu câu chiếm tỉ lệ khá lớn trong văn bản (14.34 - 15.02%,xemBảng1.4, mục 1.3.2.1) nên cần phải được phân tách đúng.
- Khôngtáchdấunháyđơn(')vìphảidùngnhư:T'rưng,K'Ho,it's
- Khôngtáchdấuchấm(.)sauchữviếttắt:|Q.|,|TP.|,| TS.|,|Th.|,
+ Kí tự "-" giữa 2 kí tự kề nhau, trước chữ in thường: không tách.Vídụ:|a-xit|,|Lê-nin|,|bê-tông|,
+ Nếu có 1 dấu cách, hoặc dấu "-" trước âm tiết viết Hoa thì tách.Vídụ:Mác-Lê-nin :có1đơnvịâmtiết:Mác-Lê-nin
ThừaThiên-Huế : có 2 đơn vị âm tiết: Thừa, Thiên-HuếCầntáchra:Mác-Lê-nin,ThừaThiên-Huế,BàRịa-VũngTàu
Các trường hợp khác đi kèm với 1 dấu cách thì tách ra, chẳng hạn:Mác–L ê - n i n , Mác– L ê - n i n =>Mác–Lê-nin + Với các kí tự &, %, $, # thì tách ra khi đứng trước/sau kí tựGD&ĐT,GD&ĐT,GD&ĐT=>GD&ĐT Tỉlệ%=>Tỉlệ%,45%=>45%,25$=> 25$,dấu#=> dấu#
Trướchết,sửdụngdấucáchđểtáchcâuđầuvàothànhmộtmảngcácđơnvịâm tiếta i Vớimỗiđơn vị âm tiếta i đó, táchtheo 3trườnghợp nhưsau(Hình2.1):
+Kítựđặcbiệt(kt)ởbêntráiâmtiết(amtiet)a i ,códạng:(kt)(amtiet)
+Kítựđặcbiệtởgiữacủaa i ,códạng:(am)(kt)(tiet)
2.1.2.2 Sinhứngviêntừdựavàotừđiển(VWS3) Đây là nhiệm vụ trong Bước 3 của thuật toán VWS Bước này sinh ra mạng từtiếng Việt dựa vào so khớp cực đại theo từ điển từ vựng Việc sinh các ứng viên từhay tìm dãy tách từ tối ưu có thời gian phụ thuộc cửa sổ âm tiết Thuật toán quyhoạch động tìm dãy tách từ tối ưu trong[79]có độ phức tạp O(n 3 ) khi không dùngcửasổâmtiết.TheoBảng1.5,cáctừcóđộdàitừ1đến4âmtiếtchiếm 99,99
%trong ngữ liệu mẫu Do vậy, việc chọn cửa sổ 4 âm tiết đảm bảo yêu cầu cao về độchínhxácmàthuật toánvẫn thựchiện nhanh vàtiết kiệmbộ nhớ.
Dùng một mảng hai chiềuscore[1 n, 1 4] (như một mạng từ) để ghi điểm chomỗi ứng viên từw ij theo cửa sổ 4 âm tiết (1 ≤i≤n,1 ≤j≤ 4) Nếu một dãy âm tiết(s i s i-
1+j )cóthểlàmộttừ(w ij )trongtừđiểnhayngữliệuhuấnluyệnhaytheoquytắc ngôn ngữ học thì ghi điểm cho nó bằng 1 hoặc tỉ lệ ngịch với số lượng âm tiết củatừ(xemcácbàibáo[A2], [A8]và[A11]),ngượclạilà+∞nhưsau: score[i,j]= 1
Minhhoạsinhứngviên mạngtừbằngđồ thị:với 2câuvídụ mẫunhư sau:
Câu1 "sẽ xuất hiện những cường quốc khuvực mới"
Biểudiễn đồthị củamảngđiểmsố chohai câutrên nhưhình 2.2và2.3.
Trên đồ thị Hình 2.2, các đường liền nét mô tả các từ thuộc từ vựng có điểm sốở trên cung ra (≤1), ngược lại, các đường đứt nét mô tả không phải từ vựng với điểmsố ở cung ra bằng +∞ Với mô tả đồ thị như vậy, bài toán tách từ trở thành bài toántìmđườngđingắnnhấttrênđồ thịcó hướng tiến.
(i) Câu 1 cón= 9 âm tiết, mạng từ được sinh theo từ điển như Hình 2.2.Trườnghợpnày,chỉcó1phươngánvớitổngđiểmsốnhỏnhấtlà6:
(1)=>(2)=>(4)=>(5)=>(7)=>(9)=>(10) Kếtquảtách:sẽx u ấ t _ h i ệ n nhữngcường_quốckhu_vựcmới
(ii) Câu 2 cón= 9 âm tiết, mạng từ được sinh theo từ điển như Hình
+Phươngán1:( 1 ) =>(2)=>(3)=>(5)=>(7)=>(8)=>(10)Kếtquả:họđangchuẩn_bịđón_tiếptângiám_đốc+Phươngán2:( 1 ) =>(2)=>(3)=>(5)=>(6)=>(8)=>(10)Kếtquả:họđangchuẩn_bịđóntiếp_tângiám_đốc Đây là trường hợp nhập nhằng OA: [đón_tiếp tân | đón tiếp_tân] xảy ra tạicung (5) => (7) và cung (6) => (8) khi điểm số bằng nhau Phần này đượcnghiên cứuở chương4: cho điểmsố thấphơnvới phương án tốthơn.
+Đầura: mảngđiểmsố(mạngtừ):score[1 n,1 4] Độ phức tạp thuật toán: Có 2 vòng lặp lồng nhau và lồng với việc tìm kiếm từtrong từ điển: B1) lặpnlần, 1) và 2) thực hiện 4 lần, a) tìm kiếm từ dùng Automat tốithiểu (MinDFA, Phụ lục A4) với thời gian là O(1) Vì vậy, thuật toán VWS3 có độphứctạp tổnghợp là O(n),vớinlàsố âmtiếttrong dãy vào.
Trêncơsởđiểmsốcủamỗitừtrongmạng:score[1 n,1 4],tasẽtìmđườngđingắnnhất (cótổngsốđiểmnhỏnhất)từnút1đếnnútntrênđồthịcóhướngnhưmôtảtrongHình2.2và2. 3.Theosokhớpcựcđại,sốlượngmtừđượctáchlàtốithiểu.Mỗitừcómộtđiểmsốtốiđalà1 ,vìthếtổngđiểmsốcủachúnglànhỏnhất(≤m).Đây là hàm mục tiêu để xác định dãy từ tối ưu trong mạng từ theo điểm sốscore[i, j].GọiS C(S (m) )l à t ổ n g đ i ể m s ố t h e o p h ư ơ n g á n t á c hm t ừc ủ a c â uS.V ì t h ế , phươngántối ưu thoảmãn tiêu chuẩn sau: min{SC(S (m) )}minm score(w)
B1.SC[0]0;//mảngSCcón+1 phần từ bắt đầu từ
22) Lặpvớimỗijtừ4xuống1(j=4 1){/ / cửasổ4âmtiết a) Nếu(i≥j)thì{ a1)wa[i–j+1];//âmtiếtđầutiêncủatừ a2) Nếu (SC[i] >SC[i-j] +score[i – j+1, j]) thì { // tìm SC mina21)SC[i]SC[i-j]+score[i–j+1,j]; a22)Lặpvớicácâmtiếtktừvịtrí(i–j+2)đến(i){ i) ww&a[k];//lấytừghép
//kếtthúcvònglặp22(4âmtiết) //kếtthúcvònglặpB2(nâmtiết) B3.Truyvếtngượctìmdãytừđượctáchtừcuốinvềđầu1,(i=n 1)
33) Lặp{ b1)demATSốÂmTiết(q[i]); // đếm số âm tiết của từ tạiq[i]b2)q[i]ThayThế(q[i], " ", "_"); // thay dấu cách bằng dấu nốib3)SegOutq[i]&SegOut; b4)ii–demAT;
Tại B1, cần thời gian thực hiện là O(n); Tại B2, có 3 vòng lặp lồng nhau:vòng21 vớinlần lặp, vòng lặp 211 với 4 lần lặp, và vòng lặp i với 3 lần lặp Vì vậy,thờigian thực hiện bước B2 là O(n); Tại bước B3: có 1 vòng lặp 33 duyệt các âm tiết củamỗi từ trong dãy kết quả lưu vếtq[i] với tổng số âm tiết làn, nên cần thời gian thựchiện là O(n) Như vậy, thuật toán VWS6 tìm dãy tách từ tối ưu cần thời gianthựchiệnlàO(n),vớinlàsốâmtiếtcủadãyvào.
Thửnghiệmthuật toán sokhớpcựcđạicảitiếnAMM
Sự kết hợp thuật toán sinh ứng viên từ dựa vào từ điển (VWS3) và thuật toántìmdãytáchtừtốiưu(VWS6)tạothànhthuậttoánsokhớpcựcđạicảitiếnAMM. Để thử nghiệm và so sánh, các thuật toán FMM và BMM đều dùng cửa số 4 âmtiếtchoso khớpcự c đại( Ph ụl ục D1), từđiển t ừ vựngtiếng V iệt đư ợc th iế t kế ở dạng Automat tối thiểu (MinDFA, Phụ lục A4) Với dãy vào cónâm tiết, các thuậttoán FMM và BMM đều có độ phức tạp O(n); AMM gồm hai thuật toán VWS3 vàVWS6đềucóđộphứctạpO(n),nênthuậttoán AMMcũngcóđộphứctạpO(n).
Thực hiện tách từ trên hai kho ngữ liệu mẫu SP731 và SP732 với ba thuật toánFMM,BMMvàAMM.Kếtquảthử nghiệmtrongBảng2.1.
Corpus Model Nm Nt Nđ R(%) P(%) F1(%)
- Hai phương pháp tách từ bằng so khớp cực đại truyền thống là FMM hayBMM, đều chọn từ dài nhất (nhiều âm tiết nhất) theo hướng quét từ tráis a n g p h ả i hay ngược lại, nên trong nhiều trường hợp gặp dãy âm tiết nhập nhằng ranh giới từ sẽbịlỗi.Vídụ,táchtừchovănbảncóhaidãyâmtiếtsau:
Nghiên cứu sinh vật họcVốntựcócủacôngty + Dùng FMM để tách từ (so khớp cực đại trái sang phải), kết quả:Nghiên_cứu_sinhvậthọc =>có3từ(sai) Vốn_tự_cócủacông_ty =>có3từ(đúng) + Dùng BMM để tách từ (so khớp cực đại phải sang trái), kết quả:Nghiên_cứusinh_vật_học=>có2từ(đúng) Vốntựcó_củacông_ty =>có4từ(sai)
- Phương pháp tách từ bằng AMM thực hiện tìm dãy tách từ tối ưu theo VWS6dựa vào điểm số của mỗi ứng viên từ (thuật toán VWS3, xem đồ thị hình 2.2 và 2.3).Thựchiệntìmđườngđingắnnhất(tổngđiểmsốnhỏnhất)trênđồthị(tứclàphương áncósốtừítnhất,khớpcựcđạinhiềutừnhất).Dovậy,vềmặtlýthuyết,kếtquảA MMsẽtốthơnFMMvàBMM.MinhhoạtáchtừbằngAMMcho2vidụtrên:
Nghiên_cứusinh_vật_học => có 2 từ (đúng)Vốn_tự_cócủacông_ty =>có3từ(đúng)
- Kếtquảthửnghiệmtáchtừ(Bảng2.1)chothấy,chấtlượngđộchínhxácF1- scorecủamôhìnhAMMtốthơncảhaimô hìnhFMMvàBMM.
NHẬNDIỆNTHỰCTHỂVÀKHỬNHẬPNHẰNGTÊNRIÊNG
Bàitoán nhậndiệnthựcthểtrongvănbản
Thực thể (entity) trong văn bản là đối tượng hoặc tập hợp các đối tượng trongthếgiớitựnhiên đượcmô tảbằngngônngữvănbản(xem[47],[48]).
Trongvănbản,cónhiềuloạithực thểkhácnhau,được phânbiệtquacáctên của nó như: tên người, tên địa điểm, tên tổ chức, giá trị số, ngày tháng, thời gian, giátrịtiền,địachỉemail,url,
Nhận diện và phân loại thực thể trong văn bản là một trong những nhiệm vụquantrọngcủaxửlýngônngữtựnhiên.Bàitoánnàyvẫncòntươngđốimớitrongx ử lý ngôn ngữ tiếng Việt, kể cả trong ngôn ngữ học tiếng Việt Số lượng các nghiêncứuvề bài toánnàyvẫn còn khiêmtốn. a Thựcthểdạngtừ ( tênriêng )
Hướng này coi các đơn vị thực thể ở dạng "từ" Các thực thể văn bản bao gồm:tên riêng (tên người, tên tổ chức, tên địa điểm, tên vật - sự việc), giá trị số, ngàytháng, thời gian, địa chỉ email, url, Trong bài toán tách từ, các thực thể văn bản cótừ 2 đơn vị âm tiết trở lên rất cần phải nhận diện và tách đúng ranh giới, có thể coimỗi thực thể như một từ mới Việc xác định đúng ranh giới thực thể (chủ yếu là tênriêng) sẽ cải thiện độ chính xác cho bài toán tách từ Chẳng hạn như nhận diện ranhgiớitên riêngchovănbản táchtừsau:
TT - Sôi_nổi , hoạt_bát , và đặc_biệt tốc_độ nói rất nhanh với giọng Bắc đã " lai " ít_nhiềuphương_ngữSài_Gòn, trưởng phòng xuất_nhập_khẩu Công_tyDệtPhong_PhúPhạm_Minh_Hươngđã bật cười khanh_khách Mộng văn_sĩ củaMinh_Hươngđã nguội dần đi khicảnhàchuyểntừHà_NộivàoTP.Hồ_Chí_Minhsinh_sốngnăm1986
Hầu hết các nghiên cứu tách từ tiếng Việt đều quan tâm đến nhận dạng thực thểtrong văn bản, đặc biệt là thực thể ở dạng tên riêng Tuy nhiên, đa số các nghiên cứutách từ chưa đi sâu giải quyết bài toán này mà mới chỉ nhận biết thực thể ở một số kỹthuật heuristic và sử dụng luật còn sơ sài Ngoài ra, cũng chưa có những đánh giáriêng về độ chính xác việc nhận diện các thực thể, mà đánh giá gộp với tách từ Cóthể thấy khi xem các kết quả: nhận diện thực thể tên riêng PN trong[29]; mô tả cácthựcthểERS+Misctrong[162];nhận diệnthựcthểNEtrong[128]. b Thựcthểdạngcụmtừ ( thựcthểcótên ) Đây là hướng nghiên cứu coi mỗi thực thể ở dạng đơn vị "cụm từ" và phânthành một số lớp khác nhau Bài toán này thường được xác định sau khi tách từ, ứngdụng cho các bài toán tìm kiếm, khai thác thông tin và dịch máy Bài toán này chủyếu là nhận diện và phân loại thực thể có tên, bao gồm: tên người (person), tên tổchức (organization), tên địa điểm (location) và có thể là tên vật - sự việc - hiện tượng(miscellaneous) Khác với nhận diện ranh giới thực thể tên riêng, nhận diện thực thểcótênđượcminhhoạnhưHình2.5,trongđó,có4loạithựcthểđượcnhậndiện:
Bắcđ ã " l a i " í t _ n h i ề u p h ư ơ n g _ n g ữ < M I S > Sài_Gòn, t r ư ở n g p h ò n g xuất_nhập_khẩuCông_tyDệtPhong_PhúPhạm_Minh_Hươngđãbật cườikhanh_khách.Mộngvăn_sĩ củaMinh_Hươngđãnguộidầnđikhicảnhàchuyển từ Hà_Nội vào TP
Hồ_Chí_Minh sinh_sống năm 1986 (TRẦN_VŨ_NGHI)
NộidungnghiêncứuchínhcủaluậnánlàbàitoántáchtừtiếngViệt.Vìvậy,phạmvi nghiêncứucủaluậnánđốivớithựcthểlàởdạngtừ(tênriêng).
NhậndiệncácthựcthểtrongvănbảntiếngViệt
Hà_Nội,Phạm_Minh_Hương, bước tiền xử lý (xem Bảng 1.4), các đơn vị từ ở dạng "từ - thực thể" chiếm một tỉ lệkhông nhỏ (kho SP731: 7,76%, kho SP732: 4,93%, theo Bảng 1.4) được phân loạitrongBảngB4.1 (Phụ lục B4). Đối với bài toán tách từ tiếng Việt, các thực thể tương đương một âm tiết thìkhôngcầnphảinhậndiệnvìbảnthânnólàthựcthể,cònvớicácthựcthểcótừhaiâmt iếttrởlênthìcầnthiết nhận diện.
Từ kết quả thống kê các kho ngữ liệu mẫu cho các thực thể có 2 âm tiết trở lêntrongBảngB4.2 (PhụlụcB4),có thể thấy:
+ Nếu nhận diện đúng các thực thể 2 âm tiết trở lên, có thể cải thiện được độ đotruyhồiR(recall)chotáchtừtăngđến2,631%vớiSP731và1,887%vớiSP732.
+Tỉlệcácthựcthểcóđộdàitừ5âmtiếttrởlênrấtnhỏ(dưới0,003%).Dovậy, có thể chọn cửa sổ tối đa cho thực thể là 4 đơn vị âm tiết Việc chọn này giúpthuậttoán thựchiện nhanhhơn màvẫnđảmbảođộchínhxáccao.
+ Theo khảo sát, các thực thể có độ dài từ 2 âm tiết trở lên là thực thể tên riêng,có một số ít là số và phân số bằng chữ Vì thế, việc xử lý nhận diện thực thể chính lànhậndiệntênriêng,nhậndiệnsốvàphânsốbằngchữ.
+Kếthợpviếthoa,viếttắt:P.QUÂN,Ng._V._Hùng,Lê_T.,
- Táchchữviếttắt: Q.,TP,TP.,GS,GS.,TS,TS.,
- Táchsốbằngchữ: ba_mươi_hai,hai_mươi,hai_phần_ba,
- Táchđơnvịđo: m2,m/s,km/h,đồng/tháng,USD/năm,
- Táchđịachỉemail: anhtn69@gmail.com,kl@outlook.com,
- Táchtênmiền: www.google.com.vn,fit.mta.edu.vn,
Kí hiệuisProper(at)là hàm kiểmtra thuộc tính tên riêng của âm tiếtat.Kít ự đ ầ u c ủ a â m t i ế t t ê n r i ê n g l à c h ữ c á i i n h o a , c á c k í t ự c ò n l ạ i l à c h ữ c á i i n thường Độ dài tối đa củaâm tiết Việtlà7, nênđộphứctạphàmisProperlàO(1).
Giải pháp nhận diện:duyệt các âm tiết trong dãy vào và kiểm tra, nếu tồn tạidãycontừhaiâmtiếttrởlêncóthuộctínhisProperthìdãyconđólàtênriêng.
Ví dụ:NhưAnh đã kể cho NguyễnVănThạc những kỷ niệm Đầura:Như_AnhđãkểchoNguyễn_Văn_Thạcnhữngkỷniệm
Thuật toán nhận diện thực thể tên riêng VWS2.11 (chi tiết trong Phụ lục E1.1)cóđộphứctạplàO(n),nlàsốâmtiếttrongdãyvào.
Qua khảo sát các kho ngữ liệu mẫu SP731 và SP732, các số bằng chữ cần nhậndiện là hàng chục, mô tả các giá trị từ 11 đến 99 (có 2 đến 3 âm tiết), các chữ số hàngtrăm, nghìn (ngàn), triệu, vạn và tỉ là không ghép Các phân số bằng chữ phổ biến có3âmtiết.Đâylàcơsởđểnhậndiện dãy sốvàphân số bằng chữ.
Vídụ:A n h ấyđãbam ư ơ i tuổi,đã sốngquamộtp h ầ n b a cuộcđời. Đầura:Anhấyđãba_mươituổi,đãsốngquamột_phần_bacuộcđời.
-Giải pháp nhậndiệnsố bằng chữ: kiểm tra 3 âmt i ế t l i ê n t i ế p t r ư ớ c , n ế u khôngphảilàsốthìkiểmtra2âmtiếtliêntiếpsau,cụthể:
+isNumStr(w1,w2):nếulàsốthìghéplại. với w1{một, hai, ba,bốn,năm,sáu,bảy,tám,chín,mười} w2{một,hai,ba,bốn,tư,năm,sáu,bảy,tám,chín,mươi,mốt,tư,lăm} w3{mốt, hai, ba, bốn,tư, lăm,sáu,bảy,tám,chín}
+isFracStr(w1,w2,w3):nếulàphânsốthìghéplại. với w1, w3{một, hai, ba, bốn, tư, năm, sáu, bảy, tám, chín, mười}w2{phần,trên}
Thuật toán nhận diện dãy số và phân số bằng chữ VWS2.12 (xem Phụ lục E1.2)cóđộphứctạplàO(n),nlàsốâmtiếttrongdãyvào.
Khitácht ừ và n hận di ện tên r i ê n g t i ế n g Việ t, xảy r a hiệnt ư ợ n g n hập nhằ ngranh giới tên riêng: giữa tên riêng với từ, hay giữa tên riêng với tên riêng Đây là vấnđề mà nhiều nghiên cứu về tách từ tiếng Việt gặp phải Khi nhận diện tên riêng vớithuậttoánVWS2.11haycôngcụtáchtừtrựctuyến([10])chomộtsốvídụ:
=>Chủ_tịchTPHà_Nội_Nguyễn_Thế_Thảođãđến
Với ví dụ 1, từ "Anh_Hùng" có mặt trong từ điển VCL, nhưng cũng thoả mãntính chất tên riêng Tuy nhiên nó phải tách ra mới đúng Nó được gọi lànhập nhằnggiữat ừ t i ề n t ố v ớ i t ê n r i ê n g,t h ư ờ n g x ả y r a ở đ ầ u câ u : "AnhH ù n g"á m chỉn g ư ờ i đượcgọilà"Anh"cótênriênglà"Hùng".
Trong ví dụ 2, về hình thức, "Trường_Đại" thoả mãn tính chất tên riêng, cũngtương tự như "Trường_Sơn học Bách_khoa Hà_Nội" Tuy nhiên, do chưa xét đến từ"Đại_học" bị chồng lấp ở âm tiết "Đại" nên mới có lỗi Vì thế, nó được gọi lànhậpnhằngchồnglấpgiữatênriêngvàtừhậutố.Nhậpnhằngsẽđượckhửsaukhitác htừ,hoặckiểmtratừhậutố,nếunóthuộctừđiểnthìtáchtừhậutốra.
Trong ví dụ 3, ta có một dãy dài "Hà_Nội_Nguyễn_Thế_Thảo" thoả mãn tínhchất tên riêng, bịnhập nhằng giữa tên riêng với tên riêngở chỗ không phân biệt ranhgiới Bảng B4.2 (Phụ lục B4) cho thấy tổng các thực thể có độ dài từ 5 âm tiết trở lênchiếm tối đa 0,001% số từ trong các kho ngữ liệu SP731 và SP732 Vì thế ta có thểchọn các thực thể có độ dài không quá 4 âm tiết Mặt khác, các thực thể tên riêng vềmặth ìn ht hứ c có độd à i t ừ 2 âm tiế tt rở l ê n , nhậ pnhằngd o hai nguyênn hân :
(2)nhậpnhằnggiữatên địa điểm với tên người (có chứa họ của người Việt) Đây là cơ sở để nhận diệntách giữa tên riêng và tên riêng Trường hợp này có thể thực hiện khử nhập nhằngtrướchoặcsaukhitáchtừđềuđược.
Qua 3 ví dụ về nhập nhằng thực thể tên riêng, luận án đề xuất giải pháp gồm babướcthựchiệnnhậndiệnvàkhửnhậpnhằngtênriêngnhưsau:
Nhận diện vàkhử nhậpnhằng ranhgiớitên riêng tiếng Việt
Thường xảy ra với từ tiền tố có 1 âm tiết trong tên riêng khi đứng ở đầu câu Cómộtsốloại nhậpnhằngthực thể kiểunày:
Vídụ1.Bà_Nguyễn_Thị_Kim_NgânđãvềthămBến_Tre
=>B àNguyễn_Thị_Kim_NgânđãvềthămBến_Tre
Vídụ3.Cầu_Thăng_Longdài3,5km.
Vídụ5.Đưa_Nguyễn_Văn_Thạcđếnvới
Mặc dù trong tên riêng có từ tố cho tên người (Bác, Bà, ), từ tố chỉ địa điểm(Bến, Cầu, ), hư từ (Các, Như, ), nhưng chúng đã trở thành tên riêng đặc biệt, sẽkhôngtáchnhư:Bác_Hồ,Bà_Rịa,Bến_Tre,Xóm_Củi,Các_Mác,Như_Anh, Qua thống kê tên riêng và từ tiền tố tên riêng trong các kho ngữ liệu mẫu, luậnánđãlọcrađượcdanhsáchcáctừtiềntố1âmtiếtcủathựcthểtênriêng(ListPreNE, Bảng B5.1, Phụ lục B5) theo các dạng nhập nhằng, và một danh sáchtênriêngđặcbiệt(ListSpecialPN,BảngB5.2,PhụlụcB5).
Trongđó,hai danh sáchListPreNEvàListSpecialNEđược thiết kế ở dạngbảng băm từ điển, nên thời gian tìm kiếm trên bảng băm là O(1) Vì thế, độ phức tạpthuậttoánVWS2.21(xemPhụlụcE2.1)làO(n),vớinlàsố âmtiếttrongdãyvào.
2.2.3.2 Nhận diện và khử nhập nhằng tên riêng với từ hậu tố
(VWS2.22)Nhập nhằng thường xảy ra do cách viết hoa không đúng quy định Chẳng hạn: Vídụ1.CácTrườngĐạihọc
+ Sau khi tách từ:=>CácTrường_Đại học (=>Các Trường Đại_học)Vídụ2.Lớp KỹSưTinhọc
+Saukhitáchtừ:= >LớpKỹ_Sư_Tinhọc (=>Lớp Kỹ_Sư
+Saukhitáchtừ:= > HộiChữ_Thập đỏ (=>Hội
Chữ_Thập_đỏ)Vídụ4.NhómDấu HỏiXanhNhàvănhoá
+ThuậttoánVWS2.21=>NhómDấu_Hỏi_Xanh_Nhàvănhoá
+Saukhitáchtừ:= >NhómDấu_Hỏi_Xanh_Nhàvăn_hoá
(=>NhómDấu_Hỏi_XanhNhà_văn_hoá)Qua 4 ví dụ trên, sau thuật toán VWS2.21 hay sau khi tách từ, vẫn có thể còncác nhập nhằng chồng lấp giữa tên riêng và từ hậu tố Với khảo sát này, luận án đưarathuậttoánVWS2.22khửnhậpnhằngchồnglấpgiữatênriêngvàtừhậutố.
{A2đ)Lặpk1đếnd{//xétvịtríattrongw[i] a) w1LấyÂmTiết(w[i],1,k-1); b) w2LấyÂmTiết(w[i],k,d)+w[i+1]; c) Nếu (w2Từđiển) Thì {c1)w[i]w1; c2) w[i+1]w2;c3)exi tvònglặpk;
Theoquanđiểmđộdàitừcựcđạilà4âmtiết,tasẽxéttốiđa3âmtiết(củatừhậutố)sautê nriêngcóthểcónhậpnhằngnhưtrong Hình 2.6.
+ĐầuralàS,sửalỗiw[i],w[i+1]bịnhậpnhằngtênriêngvớitừhậutố. Độ phức tạp của thuật toán: vòng lặp A) thực hiệnmlần, bước A2đ) có tối đa d(số âm tiết của 1 từ ≤ 4) lần lặp Tại bước 1c) kiểm tra 1 từ thuộc từ điển mất thờigian O(1) vì dùng từ điển dạngAutomat tối thiểu (MinDFA) Chi phí thời gian chocácbướccònlạitrongthuậttoánlàO(1).Vìthế,độphứctạpcủathuậtt o á n VWS2.22 (xemPhụ lục E2.2) là O(m) Ta thấy mỗi lần duyệt 1 từw[i] đều kiểm trasố âm tiết của từ đó,chính vì vậy, thuật toán thực hiện duyệtmtừ trong dãy vào cũngchínhlàduyệtnâmtiết trongdãyvào Cũngvì thế mà: O(m)=O(n).
Vídụ1.Tổng_thốngNga_Putinđãtuyên_bố
Vídụ2.Tổng_thốngPháp_Francois_Hollandeđãphê_chuẩn
=>Pháp_Francois_Hollande=>PhápFrancois_Hollande
Vídụ3.Chủ_tịchUBNDTPHà_Nội_Nguyễn_Thế_Thảo
=>Cầntáchralà:Hà_NộiNguyễn_Thế_Thảo
Vídụ4.Phó_chủ_tịchUBNDTPHồ_Chí_Minh_Nguyễn_Thị_Thu_Hà
=>Cầntáchralà:Hồ_Chí_MinhNguyễn_Thị_Thu_Hà
Vídụ5.Giám_đốcToyota_Vũng_Tàu
Vídụ6.Giám_đốcAgribank_An_Giang_Nguyễn_Văn_Sơn
=>Cầntáchra:AgribankAn_GiangNguyễn_Văn_Sơn Theo thống kê, mỗi tên riêng có 1 - 4 âm tiết, do vậy nhập nhằng tên riêng vớitên riêng có có độ dài từ 2 đến 8 âm tiết Một số ít trường hợp chuỗi tên riêng dài hơn8 âm tiết thường là các tiêu đề bài viết, có thể xử lý bằng cách tìm tên riêng có từ 1đến4âmtiếtởphầnđầu,phầncònlạisẽgọihàmđệquyđểxửlýchúng.
+ H1, H3, H4, H5, H6 là thứ tự xét họ của người Việt để tách.
B2 seqSplitedPN seqLinkedPN; // giả sử kết quả được tách như đầu vào.B3.Nếu(dãyName[1 n]đềulàtiếngViệt)thì{//dùnghàmisVietSyll
Name2Name[9 n]; preSplitedPN SplitNEbyRules (Name1);
Nếu(preSplitedPNcótừ2tênriêngtrởlên)thì{ preName2(tên riêng cuối cùng trong dãypreSplitedPN);preSplitedPN(preSplitedPNbỏđitênriêngcu ối);Name2preName2&Name2;
+SplitNEbyRules(TenRieng): là hàm kiểm tra và táchTenRiengtheo các luật,trảvềdãytênriêngđượctách.Hàmnàychophépgọiđệquy.
Dãy âm tiết có khuôn dạng tên riêng có thể bị nhập nhằng ở các dạng: tên riêngtiếng nước ngoài, tên riêng địa điểm, tên họ người Việt (Bảng B5.3, Phụ lục B5), vàcũng có thể là dãy từ tiêu đề của bài viết nào đó Dưới đây là thuật toán khử nhậpnhằngtênriêngvớitênriêng.
+ Đầu vào:là dãy tênriêngseqLinkedPNghépbằngdấunối “_”.
}ngượclại { //n≤ 8: dùng bảng 3.6 để xét họ người Việt có thứ tự ưu tiênXétcáctrườnghợp:Name[i],vớii=1 8{
SplitedName(tách họ ưu tiên bảng 3.6 với hàmisVietFamily);LeftName(dãy âm tiết chưa xét ở bên trái củaseqLinkedPN); seqSplitedPN SplitNEbyRules (LeftName)
&SplitedName;Nếu(i>4)& & ( seqSplitePNchưa đượctách)thì{ seqSplitedPN (táchtừcho seqSplitePNbằngisVietWord); }
}ngượclại { //có thể là tên nước ngoài hoặc tên nước ngoài và tên
Lặp trong khi (Name[i] không phải tiếng Việt) {// dùng hàmisVietSyllnnNamennName&Name[i]; ii+1;
Nếu(nnName≠"")thì{/ / códãytênnướcngoài seqLinkedPN(nốidãyName[i n]);//đâylàdãytiếngViệt seqSplitedPN nnName&SplitNEbyRules (seqLinkedPN);
}ngượclại{/ / đoạnđầukhôngphảilàtênriêngnướcngoài tvName"";/ / tạivịtrínày,ivẫnlà1.
Lặp trong khi (Name[i] là tiếng Việt) { // dùng hàmisVietSylltvNametvName&Name[i]; ii+1;
Nếu(tvName≠"")thì{ nextPN(nốidãyName[i n]);//đâylàdãycònlại seqSplitedPN SplitNEbyRules (tvName)& SplitNEbyRules (nextPN);
HàmSplitNEbyRulesđược gọi đệ quy nên độ dài tên riêng đầu vào là tuỳ ý.Trongt h u ậ t t o á n V W S 2 2 3 ( c h i t i ế t t r o n g P h ụ l ụ c E 2 3 ) , c á c h à mi s V i e t S y l l, isVietFamilyvàisVietWordtìm kiếm trong từ điển, được thiết kế thông qua hàmWordToIndex.Các từ điển ở đây được thiết kế theo dạng Automat tối thiểuMinDFA(xem thuật toán A4.4, Phụ lục A4) nên tiết kiệm bộ nhớ và độ phức tạp tìm kiếm củacáchàmisVietSyll(a),isVietFamily(a)làO(1),củahàmisVietWord(w)làO(| w|).
HàmSplitNEbyRules(TenRieng) thực hiện kiểm tra từng âm tiết trong tên riêngbằng các hàmisVietSyll(a),isVietFamily(a),isVietWord(w), nên độ phức tạp thuậttoánchungsẽlàO(m),vớimlàsốâmtiếtdãyTenRieng.(m=|TenRieng|).
Kếtquảthửnghiệm
Lọcc á c t h ự c t h ể t ê n r i ê n g t r o n g m ỗ i c â u v à o m ộ t m ả n g t h e o t h ứ t ự c ủ a n ó , trong đó mỗi tên riêng là một phần tử của mảng Thực hiện đánh giá hai mảng thựcthểtênriêngcủangữliệu mẫuSP731với kếtquảkhửnhậpnhằngbằng cácth uậttoánđãđềxuấttheocácphépđoR,PvàF1đãmô tảtrong(1.1),(1.2)và(1.3).
TT Thuật toán Nm Nt Nđ R(%) P(%) F1(%)
Nhận xét: Các kết quả nhận diện thực thể tên riêng và khử các nhập nhằng giữatên riêng với: từ tiền tố, từ hậu tố và với tên riêng, cho thấy độ chính xác F1- scoretrongBảng2.3làkhácao(97,30%).
Kho Môhình Nm Nt Nđ R(%) P(%) F1(%)
SP732 ER.FMM 221.221 222.535 215.424 97,380 96,805 97,091 ER.BMM 221.221 222.539 215.535 97,430 96,853 97,140
Thực hiện tách từ trên hai kho ngữ liệu mẫu SP731 và SP732 với ba thuật toánFMM, BMM và AMM (mục 2.13) với các mô-đun nhận diện và khử nhập nhằng tênriêng ER (gồm ba thuật toán VWS2.21, VWS2.22, VWS2.23, và nhận diện số vàphânsốbằngchữVWS2.12,mục2.2.2.3).KếtquảthửnghiệmtáchtừtrongBả ng
+ So với Bảng 2.1, độ hồi tưởng R tăng 2,37% (SP731) và 1,76% (SP732); độđo chính xác P tăng 5,20% (SP731) và 3,86% (SP732); và kết quả là độ đo F1- scoretăng3,82%(SP731)và2,83%(SP732).
(1) Đề xuất thuật toán tách từ tiếng Việt VWS Trên cơ sở chọn mô hình tíchhợp có thứ tự cho tách từ tiếng Việt, luận án đưa ra thuật toán tách từ gồm 6 bước.Trongđó,babướcquantrọngđượcgiảiquyếtlà:Tiềnxửlý,dùngcâyquyết địnhnhịphântáchkítựđặcbiệt;Sinhcácứngviêntừdựavàotừvựng;vàTìmdãytáchtừ tối ưu Sự kết hợp giữa thuật toán sinh các ứng viên từ dựa vào từ vựng và thuậttoántìmdãytáchtừtốiưutạothànhthuậttoánsokhớpcựcđạicảitiếnAMMchok ếtquảtáchtừhiệuquảhơnsovớicácthuậttoánFMMvàBMM.
(2)Vấn đề nhận diện thực thể và khử nhập nhằng ranh giới tên riêng: qua khảosátcáckhongữliệumẫu,chỉracácloạithựcthểvàtỉlệcủachúng.Trêncơsởđóchỉ hai loại thực thể cần nhận diện làtên riêngvàsố (hay phân số) bằng chữ Đặcbiệt, qua khảo sát một số mẫu tên riêng khi dùng trong văn bản tiếng Việt, luận án đãchỉ ra ba dạng nhập nhằng:nhập nhằng từ tiền tố với tên riêng, nhập nhằng tên riêngvới từ hậu tố và nhập nhằng tên riêng với tên riêng.
Luận án đã đưa ra các giải phápvàt h u ậ t t o á n n h ậ n d i ệ n t h ự c t h ể v ă n b ả n v à k h ử n h ậ p n h ằ n g t ê n r i ê n g h i ệ u q u ả , chínhx á c đ ế n 9 7, 3 0 % V i ệ c n h ậ n d iệ nt h ự c t h ể và k h ử nhậ pn h ằ n g t ê n r i ê n g l à m tăngđộchínhxáctáchtừF1-score3,82%(vớiSP731)và2,83%(vớiSP732).
Chương3 NHẬND I Ệ N TỪL Á Y VÀTỪGH É P ĐẲNGLẬPT I Ế N G VIỆT
Vấn đề nhận diện từ mới tiếng Việt được luận án nghiên cứu giải quyết với hainhóm phương pháp khác nhau để phân tích và nhận diện: nhóm phương pháp họckhônggiámsátvớicácđộđothốngkêmứcâmtiếtđểxácđịnhtừghépnóichung;và nhómphươngphápdựavàocácquytắccấutạotrongngônngữhọcđểxácđịnhtừ láyhaytừ ghép đẳng lậptrong tiếng Việt Kết quả nhận diện từ láy và từ ghépđẳnglậplàsựkếthợpcủacảhaiphươngphápđãnêu.
NHẬNDIỆNTỪGHÉPBẰNGHỌCKHÔNGGIÁMSÁT
Chọnđộdài từ ghéptiếng Việt cho họckhônggiámsát
Vớicác p h ư ơ n g pháph ọc không gi ámsá t ( u n s u p e r v i se d l ear ni ng ) thườ ngc ó kết quả thấp hơn so với học máy có giám sát (supervised learning) và bán giám sát(semi-supervised learning). Các thử nghiệm trong[79]đạt độ chính xác F1-score51%- 65%,trong[87]đạtđược50,18-61,57%,haytrong[85]đạtđược90%.
Số đơn vị từ đơn và từ có 2 âm tiết chiếm tỉ lệ trong các kho ngữ liệu mẫu là:SP731: 98,70%, SP732: 99,09% (Bảng 1.5) Các từ có 3 âm tiết trở lên chiếm tỉ lệkháthấp:0,91%-1,30%.
Vì thế, với các phương pháp học không giám sát, chỉ cần nhận diện đúng các từcó 2 âm tiết là đảm bảo độ chính xác chấp nhận được Do vậy, bài toán đặt ra là:sửdụnghọcmáykhônggiámsátđểnhậndiệncáctừ ghépcó2âmtiếttiếngViệt.
Mộtsố độđo thốngkê nhận diệntừ ghépcó 2 âmtiết tiếngViệt
Cácn g h i ê n c ứ u t r ư ớ c đâ y đ ã đ ư a r a m ộ t s ố đ ộ đ o t h ố n g k ê đ ể n h ậ n d i ệ n t ừ tiếng Việt Trong[79]đã dùng tiêu chuẩn cực đại xác suất (tích) của dãy xác suấtn-gram mức âm tiết (unigram, bigram và trigram) để tìm dãy tách từ tối ưu trên khongữ liệu10MB, độ chính xác đạt được là 51%-65% Trong[17],[87]đã dùng giảithuật di truyền GA (generic algorithm) với tiêu chuẩn cực đại hàm thích nghi của dãyvàolàtổngcácgiátrịthôngtintươnghỗMI(mutualinformation)củamỗiứngviên từđ ư ợ c t á c h b ằ n g G A ; v ớ i M I l à đ i ể m s ố c h o m ộ t h a y n h i ề u â m t i ế t ; k ế t q u ả đ ộ chính xác đạt được là 53-62% Qua khảo sát, cho thấy có thể cải tiến phương pháp đểđạt kết quả tốt hơn cả về thời gian thực hiện và độ chính xác Chẳng hạn: chọn độ dàitừ tối đa theo cửa sổ cố định, hay khảo sát đồ thị các độ đo để đưa ra cách chọn nhưthếnàođạtkếtquảtốtnhấtcóthể.
Với mong muốn phát hiện ra những mối liên hệ chặt chẽ giữa các độ đo thốngkê với các từ có 2 âm tiết tiếng Việt, cũng như khi gặp lỗi thì cần xử lý như thế nào,luận án thực hiện khảo sát một số độ đo tiêu biểu (xác suất unigram; xác suất bigram;xácsuấtbigramcóđiềukiện;độthôngtintươnghỗ)trêncáckhongữliệutiếngViệt. Đểminhhoạtínhtoán,biểudiễnđồthị,luậnánsửdụng2câumẫunhưsau:
Ta gọiC(a k ) là số lần xuất hiện của âm tiếta k trong tổng sốN uni âm tiết, thì xácsuấtunigramP(a k )đượcướclượngbằngcôngthức(3.1):
(3.1) Đồthịxácsuấtunigramcủatừngâmtiếttrongcáccâunhưsau: a)Câua:"nókhôngphảicủahọmàlàcủamình." b) Câub:"thảoluậnnhữngvấnđềvềbảnchấtcủavũtrụ "
Nhận xét: Đồ thị hình 3.1 cho thấy, các âm tiết có xác suất unigram cao (≥
Ta gọiC(a k-1 a k ) là số lần xuất hiện của cặp âm tiết liền kề (bigram)a k-
1 a k trongtổng sốN bi cặp âm tiết liền kề, thì xác suất bigramP(a k-1 a k ) được ước lượng bằngcôngthức(3.2):
Biểudiễnđồthịxácsuấtbigramtheocặpâmtiếtcủamỗicâunhưsau: a)Câua:"nókhôngphảicủahọmàlàcủamình." b)Câub:"thảoluậnnhữngvấnđềvềbảnchấtcủavũtrụ "
Hình3.2.Đồthịxácsuấtbigramcáccặpâmtiếttrongcâu Nhận xét: Các đồ thị xác suất bigram cho thấy, đa số đỉnh nhọn là từ ghép.
Cóthể gặp các lỗi như trong các Hình 3.2a, Hình 3.2b Do vậy, khi xử lý cần tham khảoxácsuấtunigramcủadãyâmtiếtđểchọn(Hình3.1).
Từ (3.1) và (3.2), xác suất bigramcó điều kiệnP(a k |a k-1) của âm tiếta k khi biếttrướcâmtiếta k-1đượcxácđịnhbằngcôngthức(3.3):
P(a| a k k 1 )CC(a(a k1 a k1 k ))P(aP(a k1 a k k1 ) ) (3.3)Biểudiễnđồthịxácsuấtbigramcóđiềukiệncủacặpâmtiếtmỗicâu: a)Câua:"nókhôngphảicủahọmàlàcủamình." b) Câub:"thảoluậnnhữngvấnđềvềbảnchấtcủavũtrụ "
Hình3.3.Xácsuấtbigramcóđiềukiệncáccặpâmtiếttrongcâu Nhận xét: Các đồ thị hình 3.3 cho thấy đặc trưng từ ghép là các đỉnh nhọn.
Mặtkhác, các đỉnh nhọn có xác suất thấp (chẳng hạn: < 0,04 như hình 3.3a) thì có thểdùngngưỡngđểgạtbỏ,hoặccóthểthamkhảoxácsuấtunigramđểchọn.
3.1.2.4 ĐộthôngtintươnghỗMI(MutualInformation) Độ thông tin tương hỗ MI có thể được dùng để đo mức độ quan hệ giữa cá thểvớitổngthểhoặcgiữacáccá thể vớinhau.Luậnánsửdụng MItheo[97]đểx ácđịnh cặp âm tiết liền kề có thể tạo thành từ ghép hay không, nên độ đo MI được xácđịnhlàcóhướng(chẳnghạn,từtráisangphải)nhưHình3.4. a a 1 a 2
C(*) C(x) C(y) a) Thôngtinâmtiết-tổngthể b) Thông tin cặp âm tiết liền kềHình3.4.Lượcđồthôngtintươnghỗcủaâmtiếtvàcặpâmtiết Ởđây,tầnsuấtcủaâmtiếtđượccoilàthôngtincáthểtronghình3.4:
+C(*)làtổngtầnsuấttoànbộâmtiết(N uni )+C(xy):làtầnsuấtcủacặpâmtiếtliềnkề(xy).
1 a k ) k 1k C(a k1 )C(a) k C(a k1k a) (3.5) ĐồthịđộthôngtintươnghỗMIcủacáccặpâmtiếttheocôngthức(3.5): a) Câua:"nókhôngphảicủahọmàlàcủamình." b) Câub:"thảoluậnnhữngvấnđềvềbảnchấtcủavũtrụ "
Nhận xét: Các đồ thị hình 3.5 cho thấy đặc trưng từ ghép là các đỉnh nhọn.
Cácđỉnh nhọn cóMIthấp như hình 3.5a thì có thể dùng ngưỡng để gạt bỏ, hoặc cũng cóthểthamkhảoMI(hayxácsuấtunigram)củamỗiâmtiếtđểchọn.
Giảiphápnhậndiện từghépcó2âmtiếttiếngViệtdựavào đỉnhnhọn
+Gọiscoref(A,B)là hàmđiểmsố chungchomột sốđộđothốngkê của cặpâmtiếtliềnkềthứk(1≤k≤n-1).Tacũngcóthểcoi:scoref(A,B)=scoref(k).
+Nếutạiđỉnhk,điểmsốcủacặpâmtiếtliềnkề(A,B)caohơnđiểmsốcủahaiđỉnhk- 1vàk+1(trướcvàsau)thìđỉnhkđượcgọilàđỉnhnhọn.
Các mô hình thống kê có một số biến ngẫu nhiên không được quan sát, khôngđược mô tả đầy đủ Do vậy, các mô hình xác định từ ghép có thể tồn tại một hoặcnhiều cực trị khác nhau Vì thế, luận án đưa ra một số giải pháp xác định từ ghépbằngchọnđỉnhnhọndãyâmtiếttheocácđộđocùngvớithamsốtốiưucủachúng. a))ChọnđỉnhnhọnvớiđộđovượtngưỡngP 0
Chẳnghạn,đỉnhnhọnxácsuấtbigramP(A,B)>P bi0 b))Chọnđỉnhnhọn vớiunigramdướingưỡngP ng
Vídụ,đỉnhnhọnxácsuấtcóđiềukiệnP(B|A)vàmax{P(A),P(B)}
max{P(A),P(B)}
Vídụ,đỉnhnhọncóMI(A,B)>max{P(A),P(B)}thìghépA_B d)) Chọnđỉnhnhọnvớiđộđovượtxácsuấtunigramcựcđạivớithamsố
Ví dụ, đỉnh nhọn có (1-)*MI(A,B) >*max{P(A),P(B)} thì ghép A_BCác thamsốtrênđược gọilàcácngưỡngP 0 ,P ng hay(tổngquátgọilà).Với vector tham sốgồm một bộ hệ số (1 ,2 á, , n ) thỡ cú thể kết hợp giữa thuật toỏn ditruyền GA (Genetic Algorithm) với thuật toán cực đại hoá kỳ vọng EM (ExpectationMaximization)
[146]đểtìmgiátrịtốiưutoàncục(PhụlụcF1).Thựctế,thamsốchỉ là 1 hệ số, có thể dùng phương pháp chiankhoảng con, rồi áp dụng thuật toánEMtrênmỗikhoảngconđó,tasẽnhanhchóngtìmđượckếtquả(xemPhụlụcF2).
Kếtquảthửnghiệm
- KhongữliệuthôtiếngViệt(54MB)đượctácgiảluậnánthuthậptừmộtsốtài liệu, sách, báo điện tử, Qua thống kê, số unigrams và bigrams đều là 9.905.052(N uni ,N bi ),sốunigramskhácnhaulà7.100,sốbigramskhácnhaulà735.122.
* Ngữ liệu thử nghiệm gồm:Luận án chọn 2 kho ngữ liệu đã tách từ mẫu làSP731 và SP732 Để tránh lỗi nhận diện tên riêng, luận án thực hiện loại bỏ các câucóc h ứ a í t n h ấ t m ộ t t ê n r i ê n g g ồ m h a i â m t i ế t t r ở l ê n t r o n g n g ữ l i ệ u t h ử n g h i ệ m , nhằmmụctiêuchỉkhảosátvàđánhgiánhậndiệntừghépcó2âmtiếttiếngViệt.
1 SP731.noNP.txt,kíchthước5.831KB(cũlà10.230KB)
2 SP732.noNP.txt,kíchthước927KB(cũlà1.381KB) Đối với các giải pháp tách từ có tham số: kết hợp tách từ với thuật toán EM trêncácđoạncon,tínhhàmmụctiêu,rồitìmgiátrịtốiưutoàncục(xemPhụlụcF2).
Các kết quả đều dựa trên cơ sở đỉnh nhọn của các bigram theo các độ đo. Dovậy, để so sánh hiệu quả của các độ đo, ta tiến hành thử nghiệm và đánh giá kết quảnhậndiệntừmớichỉdựatheochọnđỉnhnhọn.KếtquảtrongBảng3.1.
Bảng3.1.Nhậndiệntừghépcó2âmtiếtdựatheochọnđỉnhnhọn Đỉnhnhọn Corpus Nm Nt Nđ R(%) P(%) F1(%)
Nhận xét: Kết quả nhận diện từ ghép có 2 âm tiết bằng chọn đỉnh nhọn bigramvớiđộđoF1-scoretheotừnggiảiphápPb,PkvàMIlàtươngđương(xấpxỉ70%). a) Nhậndiệntừghépcó2âmtiếtdựa theođỉnhnhọnvượtngưỡng:
Bảng 3.1 là kết quả chọn đỉnh nhọn với ngưỡng bằng 0 Các giá trị tham sốngưỡng Pbng, Pkngvà MIngđược học khi thử nghiệm tách từ sao cho F1-score đạt cựcđạivớithuậttoánEMtrêncácđoạncon(PhụlụcF2).KếtquảtrongBảng3.2.
Cácngưỡng Corpus Nm Nt Nđ R(%) P(%) F1(%)
+Kết quảcho thấyđộđoMI nổitrội hơn cả(84,82 –85,12%).
+ThứtựđộđoF1-scoretăngdần:F1(Pb)0,5:14.452cặp)
TT CặpSTĐL Pos SimED SimLcs SimDice SimJac SimCos
Bảng3.13.MinhhoạdùngMI(từinternet)đểxácđịnhTGĐL(4.718cặp)
TT CặpSTĐL MI TT CặpSTĐL MI TT CặpSTĐL MI
Kếtquả là mộtdanhsáchgồm4 718đơnvịtừghép songtiếtđẳn glập.Qua kiểmtra,đánhgiácủachuyêngiangônngữhọc,pháthiện264lỗi.(Bảng3.14).
Phát hiện sai(sốlượng) Độ chính xác(%)
Trong số 4.454 từ ghép song tiết đẳng lập, có 3.414 từ có trong từ điển VCL vàsốtừmớipháthiệnđượcngoàitừđiểnlà1.040từ.
Nhậndiện tổhợptừ,thànhngữcó3hay4âmtiết
Dựa trên danh sách 4.454 từ ghép song tiết đẳng lập thu được, ta có thể nhậndiện và xác định các tổ hợp từ cố định có 3 hoặc 4 âm tiết ở dạng lặp, thành ngữ hayngữcốđịnh bằngluật dựavàotínhchấtđẳnglậpcủachúng.
Trong thực tế, nếu tồn tại một dãy 3 âm tiết (A B C), chúng đẳng lập lẫn nhau,tức (A B) và (B C) là STĐL thì chúng là một tổ hợp tam tiết đẳng lập Ví dụ: dãy"anh chị em" có "anh chị" và "chị em" là hai từ ghép song tiết đẳng lập Vì vậy,
Trong nhiều trường hợp, nếu tồn tại một dãy 3 âm tiết (A B C), mà trong đó, (AC) và (B C) là các từ ghép chính phụ, (A B) là song tiết đẳng lập, thì (A B C) là mộttổ hợp từ ghép 3 âm tiết Ví dụ: dãy "thầy cô giáo" được sử dụng trong các văn bảnthực tế Trong đó, "thầy giáo" và
"cô giáo" là hai từ ghép chính phụ, và "thầy cô" làsongtiếtđẳnglập.Vìthế,"thầy côgiáo"làmộttổ hợptừghép3âmtiết.
Nếu tồn tại một dãy 4 âm tiết có dạng (A B A C), trong đó (B,C) là song tiếtđẳnglập,thì(ABAC)làtổhợptừ4âmtiếtcómộtsongtiếtđẳnglập.
Ví dụ: dãy "hết lòng hết dạ" được sử dụng trên văn bản thực tế, trong đó
"lòngdạ" là một song tiết đẳng lập Vì thế, "hết lòng hết dạ" là một tổ hợp từ 4 âm tiết(thànhngữ)cómộtsongtiếtđẳnglập.
Nếu tồn tại một dãy 4 âm tiết (A C B D), trong đó, (A B) và (C D) là các songtiếtđẳnglập,thì(ACBD)làtổhợptừ4âmtiếtcóhaisongtiếtđẳnglậpđan xen.
Chẳng hạn, dãy "cơm no áo ấm" được sử dụng, trong đó, "cơm áo" và "no ấm"là hai song tiết đẳng lập Vì vậy, "cơm no áo ấm" là một tổ hợp từ 4 âm tiết (thànhngữ)vớihaisongtiếtđẳnglậpđanxen.
Bảng3.15.Minhhoạnhậndiện tổhợp từcó3-4âmtiết(TGĐL)
TT Tổhợptừ3âmtiết Pos TT Tổhợptừ4âmtiết Pos
1 anh chị em N 1 bữa raubữacháo N
5 cơ xươngkhớp N 5 mộtmất một còn A
Nhận xét:Kết quả nhận diện tổ hợp từcó 3-4 âm tiếtdựa vào tínhc h ấ t đ ẳ n g lập, đạt độ chính xác xấp xỉ 100% Tương tự như mô-đun từ láy mở rộng,mô-đunnhận diện tổ hợp từ có 3-4 âm tiết kiểm tra dựa vào tính chất đẳng lập Nó được tíchhợpvào thuật toánVWS ởBước 4 (VWS4.2).
Kếtquảthửnghiệm
+ Bước 4: nhận diện từ mới (VWS4) là từghépđẳnglậpC C (sinh các ứngviên từ ghép song tiết đẳng lập mới theo từ điển; sinh các ứng viên từ tổ hợp từvàthànhngữcó3-4âmtiếttheocácluậttrongmục3.3.3).
(Ký hiệu AM: là sự kết hợp giữa VWS3 và VWS6, theo mục
Kho Môhình Nm Nt Nđ R(%) P(%) F1(%) d)F(%)
SP 73 1 ER.AM 1.542.673 1.556.192 1.511.183 97,96 97,11 97,53 - ER.AM.CC 1.542.673 1.550.509 1.514.821 98,19 97,70 97,95 0,42
Nhận xét: Ở bước 4, mô-đun nhận diện từ ghép mới (VWS4) thực hiện sinh ứngviên từ mới là từ ghép đẳng lập CC Qua thử nghiệm tách từ trên hai kho ngữ liệumẫutiếngViệt,kếtquảlàmtăngđộchínhxácF1-score0,42%.
(1) Nhậndiệntừghépbằnghọckhônggiámsátdùngcácđộđothốngkêvớimô hình n-gram, học từ kho ngữ liệu thô tiếng Việt cho thấy, kết quả tách từ với độđo đỉnh nhọn MI kết hợp xác suất unigram là tốt nhất, đạt độ chính xác F1-score là85,68 - 86,13%.
(2) Nhận diện từ láy và từ ghép đẳng lập dùng các quy tắc trong cấu tạo từ làhướng tiếpcận khá mới.Luậnán đã đưa ra các thuậttoán3.1 và 3.3 nhậnd i ệ n chúng Kết quả thu được 1.024 từ láy đôi mới, 1.040 từ ghép song tiết đẳng lập mớivà các quy tắc mở rộng nhận diện tổ hợp từ có 3-4 âm tiết Qua thử nghiệm tách từ,các mô-đun nhận diện từ ghép mới làm tăng độ chính xác F1-score là 0,03 - 0,05 %đốivớitừláyRWvà0,42%đốivớitừghépđẳnglậpCC.
Mộtsốbài báonghiêncứuliênquanđến chương3gồm:[A7],[A9]và[A10].
Trong chương này, luận án nghiên cứu vấn đề nhập nhằng và khử nhập nhằngranh giới từ Trên cơ sở khảo sát, thống kê, phân loại các dạng nhập nhằng ranh giớitừtrongvănbảntiếngViệtvàđưaracácgiảipháphữuhiệuđểkhửchúng.
NHẬPNHẰNGRANHGIỚITỪTIẾNGVIỆT
Kháiniệmvàphânloại nhậpnhằngranhgiớitừtiếngViệt
Như đã giới thiệu ở mục 1.1.3.2, nhập nhằng ranh giới từ là hiện tượng thườngxuất hiện trong bài toán tách từ tiếng Việt Qua khảo sát các kho ngữ liệu mẫu tiếngViệt, ta thấy có hai kiểu nhập nhằng cơ bản, đó là: nhập nhằng chồng lấp và nhậpnhằngghép-tách.
[69] và[134]cóđềcậpđếnnhậpnhằng,nhưngcáctácgiảchỉnêuvàđưaracáchgiải quyết một dạng nhập nhằng chồng lấp (overlapping ambiguity) của ba âm tiếts i,s i+1,s i+2khi có hai lựa chọn (s i s i+1) (s i+2)/(s i )(s i+1 s i+2) bằng thống kê, và cũng chưa xétđến ngữ cảnh của nhập nhằng Một số tác giả khác không nêu cụ thể nhập nhằng,nhưng đưa ra phương pháp giải quyết tổng quát là dùng từ điển so khớp cực đại tiếnvà lùi để phát hiện nhập nhằng và kết hợp với học máy như:[29]dùng cơ chế hỗ trợvéctơ SVM,[61]dùng mô hình HMM, [69]dùng ANN để khử chúng Hầu như cáctác giả chưa đề cập đến loại nhập nhằng ghép-tách, mà ngay cả dùng các phươngpháp so khớp cực đại tiến và lùi đều không phát hiện ra Nhập nhằng ghép-tách chínhlà một từ ghép thuộc từ điển buộc phải tách ra trong một ngữ cảnh cụ thể nào đó (vídụ 2) Loại nhập nhằng ghép-tách chiếm tỉ lệ khá cao (gấp 3- 5 lần) so với loại nhậpnhằng chồng lấp (Bảng 4.1 và 4.2) trong các kho ngữ liệu mẫu Phần này sẽ đượckhảo sát thống kê, phân tích các loại nhập nhằng, đồng thời đưa ra các giải pháp khửchúng. a NhậpnhằngchồnglấpOA(OverlappingAmbiguity)
Vídụ1:Họhọc sinh học rấtchămchỉ.
Các từ: "học" và "sinh học" hay "học sinh" và "học" đều là các từ vựng, nên cócácphươngántáchtừnhưsau:
Rõràngphươngán(1a)làđúngngữcảnh,cònphươngán(1b)làsai. b Nhậpnhằngghép-táchCA(CombinationAmbiguity)
Cáctừ:"trườnghọc"hay"trường"và"học"cũngđềulàcáctừvựng,nêncũngcócácph ươngántáchtừkhácnhau:
Trườnghợpnày,phươngán(2a)làsai,còn(2b)làđúngngữcảnh.
Thốngkêvàgiảiphápkhửnhậpnhằngranhgiớitừ
DựavàoSP731,SP732 vàtừđiểnVCLđểpháthiệnnhậpnhằngOAvàCA.V ớicáckhongữliệuđãtáchtừ,luậnánđềxuấtphươngpháppháthiện:
Mỗi nhập nhằng OA hay CA nếu bị xử lý sai sẽ dẫn đến 2 từ bị lỗi Do vậy, tỉ lệgâylỗicủacácnhậpnhằngOAvàCAđốivớicáckhongữliệutrongBảng4.2.
Tỉ lệ gây lỗi tổnghợp 34.786 2,25 5.622 2,54
1 rửahai_bàn_tay_trắngxoábọt rửahaibàn_taytrắng_xoábọt
2 đốngchăn_gốixếpở đốngchăn gối_xếpở
5 cácbệnh_viện_tưnhân) cácbệnh_việntư_nhân)
9 đưasắc_thuếthu_nhậpthành đưasắcthuế_thu_nhậpthành
10 đãlàm_chủnhiệmđề_tài đãlàmchủ_nhiệmđề_tài
TT Từ_ghép |tách ra TT Từ_ghép |tách ra
1 ai_nấy|ai nấy 11 bắt_đầu_từ|bắt_đầutừ
2 ai_ngờ|aingờ 12 bắt_giam|bắtgiam
3 ba_chỉ|bachỉ 13 bệnh_viện_tư|bệnh_việntư
4 bắc_cầu|bắccầu 14 biết_bao_nhiêu|biếtbao_nhiêu
5 bán_công_khai|báncông_khai 15 biết_đâu|biếtđâu
6 bán_hàng|bánhàng 16 cao_cả|caocả
7 bán_kính|bánkính 17 chủ_đầu_tư|chủđầu_tư
8 bàn_là|bànlà 18 nhất_là|nhấtlà
9 ban_ngành|banngành 19 nào_là|nàolà
10 bán_nước |bánnước 20 phải_biết|phảibiết
Nhận xét: Kết quả thống kê về nhập nhằng OA và CA trong các kho ngữ liệumẫuchothấytỉlệảnhhưởngcủachúngđếnkếtquảtáchtừlàkhôngnhỏ.
Qua khảo sát, phân loại và thống kê các nhập nhằng ranh giới từ trong các khongữliệumẫutiếngViệt,cóthểđềxuấtgiảipháp khửnhậpnhằngnhưsau:
- Với các nhập nhằng chồng lấp, có thể khử bằng kỹ thuật heuristics hoặc bằngxácsuấtbigrammứctừ(họctừcáckhongữliệumẫutiếngViệtđãtáchtừ)cóx étđến từ bên trái, bên phải của nó Trong nhiều trường hợp mà xác suất bigram mức từbằng nhau, hoặc do kho ngữ liệu huấn luyện không đầy đủ nên các bigram mức từbằng0,tacóthểdùngđộthôngtintươnghỗMImứcâmtiếtđểsosánhvàchọn.
- Với nhập nhằng ghép-tách, có một số nhập nhằng liên quan đến đặc trưng vềngôn ngữ học, nhất là đối với các quán từ đứng ở đầu (như:ai nấy, nhất là, ) haycuối (như:phải biết, biết bao nhiêu, ) của cụm từ/câu Do vậy, có thể dùng từ điểnquán từ ở đầu cụm từ, đầu câu (hay sau các dấu câu, sau các liên từvà/ hoặc/ nhưng/vì/ do/ bởi) và từ điển quán từ ở cuối cụm từ, cuối câu (trước các dấu câu).
Ngoài ra,có thể dùng xác suất bigram của nhập nhằng và ngữ cảnh từ trước, từ sau để so sánhvàchọn. Để khử các nhập nhằng cần mô tả mẫu của chúng Kí hiệu: a, b, c, là các đơnvị âm tiết trong dãy từ Khi đó (a), (ab), (abc), là các từ đơn, từ kép, từ bộ ba, Cácmẫunhậpnhằngđượcmôtả nhưsau:
Cácmẫukhác:+ Mẫu2:(a)(bcd)/(ab)(cd)/(abc)(d)
+Mẫu3:(ab)(cd)(e)/(ab)(c)(de)/(a)(bc)(de) +Mẫu4:(a)(bcde)/(ab)(cde)/(abc)(de)/(abcd)(e)
Cácmẫukhác:+Mẫu2:(abc)/(ab)(c)/(a)(bc)
+ Mẫu 3: (abcd) / (abc)(d) / (ab)(cd) / (a) (bcd)Trêncơsởđó,luậnánđưarabagiải phápkhử nhậpnhằng:
(2) Dùng độ phức tạp văn bản để khử nhập nhằng dựa trên: mô hình xácsuất bigram mức từ (PB); mô hình HMM gán nhãn từ loại (PO); và môhìnhkếthợpgiữaPBvàPO.
(3) Dùng các tri thức thống kê khử nhập nhằng theo ngữ cảnh: dựa vào sựbiểu diễn các thông tin xác suất bigram mức từ, thông tin tương hỗMImứcâmtiết,vàthôngtingánnhãntừloạichongữcảnhnhậpnhằng.
Tạongữliệunhậpnhằngchohuấnluyệnvàthửnghiệm
Để thực hiện thử nghiệm tách từ, khử nhập nhằng, và có thể so sánh giữa cácgiải pháp với nhau, cần có một bộ ngữ liệu huấn luyện và thử nghiệm thống nhất.LuậnánchiakhongữliệumẫuVietTreeBankthành2phầntheotỉlệnhưHình4.1.
Tỉ lệ % bao hàm cả số câu không bị nhập nhằng, số câu bị nhập nhằng theoOA,sốcâu bịnhậpnhằngtheoCAvàtỉlệ sốcâu nhậpnhằngcả OAvàCA:
Thử nghiệm 10% 90% nhập nhằng CA
Huấn luyện 90% kho ngữ liệu
Số lượng và tỉ lệ phân chia ngữ liệu huấn luyện và thử nghiệm cụ thể tương ứngvới các nhập nhằng OA và CA được chọn một cách ngẫu nhiên trong các kho ngữliệuđảmbảotỉlệnhưtrongHình4.1vàBảng 4.5.
Khongữliệu VietTreeBank(SP731,67.790câu) Phânchia(câu) Huấnluyện(90%) Thửnghiệm(10%)
KHỬNHẬPNHẰNGRANHGIỚITỪBẰNGTỪĐIỂN
PhươngphápkhửnhậpnhằngCAbằngtừđiển(VWS5.1)
Khử nhập nhằng là nhiệm vụ được thực hiện ở Bước 5 của thuật toán VWS(mục 2.1.1) Đối với nhập nhằng chồng lấp OA, vì nó phụ thuộc ngữ cảnh ngữ liệuthựctếnênkhócóthể dùngtừđiểnđểkhử.Tuynhiên,vớinhập nhằngghéptá chCA, tuỳ vị trí của nó trong cụm từ hay câu mà có thể hoặc không thể tách ra, đặc biệtlà các quán từ hay quán ngữ cố định Do vậy, có thể dùng danh sách để chứa các từđặcbiệtnày.
B1 TuTo{rỗng, dấucâu, liêntừ: và|với|hay|hoặc| nhưng| };B2.Lặp vớimỗiitrong dãyâmtiết(i=1 n){
2) Lặpvớimỗijtrongcửasổ4âmtiết(2≤j≤4){ a)w curr =(a i a i+j-1); b)w next =ai+j; c) Nếu(w curr LD)and(w prev TuTo)or(w curr LC)and(w next TuTo){ score[i, j]+;
1 ai_bảo| ai bảo 1 phải_biết|phảibiết
2 ai_đời|aiđời 2 bỏ_cha|bỏcha
3 ai_ngờ|aingờ 3 bỏ_đời|bỏđời
4 chẳng_hạn|chẳnghạn 4 bỏ_mẹ|bỏmẹ
5 có_lẽ|cólẽ 5 chìm_xuồng|chìmxuồng
6 đời_nào |đời nào 6 cho_xong|choxong
7 đúng_ra|đúngra 7 còn_khuya|cònkhuya
8 được_cái |được cái 8 cũng_nên|cũngnên
9 nào_là|nàolà 9 gọi_là|gọilà
10 nhất_là|nhấtlà 10 nữa_là|nữalà
+Quántừởđầucụmtừ/câu:L D ={"nàolà","nghĩalà","nhấtlà", }.
+Quántừởcuốicụmtừ/câu:LC={"nữalà","phảibiết", }.
Nguyên tắc khử:không tách đối với quán từ đứng ở đầu cụm từ hay câu màthuộcLD; không tách đối với quán từ đứng ở cuối cụm từ hay câu mà thuộcLC; táchquántừkhôngđứngởđầu/cuốicụmtừ haycâu theo mẫu.
(Thuậttoántáchnhữngquántừkhôngphảiđầu/cuốicủacụmtừ/câu) Độ phức tạp của thuật toán: Bước c) tìm kiếm với độ phức tạp là O(1) vì các từđiển LC, LD và TuTo được thiết kế ở dạng Automat tối thiểu (Phụ lục A4) Bước 2)thựchiện3lần.DovậythuậttoánVWS5.1trêncóđộphứctạplàO(n),vớinlàsốâmtiế t trong dãy vào.
Kếtquảthửnghiệm
Tách từ với các phương pháp so khớp cực đại: FMM (FM), BMM (BM) vàAMM (AM) Trong đó AM có kết hợp với từ điển quán từ ở đầu/cuối cụm từ/câuVWS5.1(BE).
Thựch i ệ n t r ê n n g ữ l i ệ u t h ử n g h i ệ m V i e t T r e e B a n k ( S P 7 3 1 ) đ ư ợ c p h â n c h i a trongBảng4.5.Từđiển dùng chosokhớpcựcđạilàVCL31.158từ.
Kíhiệu:+N nn làsốnhậpnhằngcủangữliệuthửnghiệmmẫu(gồmOA,CA).
+K nn là số nhập nhằng khử đúng bằng các thuật toán (gồm OA, CA).Tỉlệ(%)khửnhậpnhằngđượctínhlàK nn *100/N nn KếtquảtrongBảng4.7.
TT Sốcâu NN SốNN FM % BM % AM % AM.BE %
Nhận xét: Việc dùng từ điển quán từ khử nhập nhằng CA làm tăng 5% tỉ lệ khửCA.Tỉlệkhửcácnhậpnhằngtốtdần:FMP B (ab):tasẽchọnphươngán:(a)(bc)
+NếuP B (bc)P B (ab):tasẽchọnphươngán:(ab)(c)
Một điểm quan trọng là số liệu thống kê bigram mức âm tiết có thể được huấnluyện tự động từ bất kì kho ngữ liệu thô nào có kích thước không giới hạn mà khôngcó bất kì yêu cầu giám sát của con người Chương 2 đã chỉ ra cách tính MI có độphức tạp là O(n), vớinlà số âm tiết trong dãy vào Có thể dùng MI thay cho xác suấtbigrammứctừbằng0mànókhông tồntạitrongkhongữliệuhuấnluyệnmẫu.
Với các công thức (4.16) và (4.16.*), ta có thể xác định được điểm số của nhậpnhằng chồng lấp OA dựa vàoP B(ab) vàP B(bc) Nhập nhằng OA được giải quyếtbằngtiêuchuẩn:argmax{P B(ab),P B(bc)}=argmin{1-P B(ab),1-
4.4.1.2 KhửcácmẫunhậpnhằngOAkháctheongữcảnh ÁpdụngchocácmẫuOAkhác:(a)(bcd)/(ab)(cd)/(abc)(d)/(a)(bc)(d) hay:(a)(bcde)/(ab)(cde)/(abc)(de)/(abcd)(e) hay:(ab)(cd)(e)/(ab)(c)(de)/(a)(bc)(de) Với mỗi trường hợp nhập nhằng chồng lấp OA, ta tính theo trung bình nhân củatíchxácsuấtbigrammứctừ:
Trườnghợp1:(a)(bcd)/(ab)(cd)/(abc)(d)/(a)(bc)(d)
P B(a,bcd)= [P(a|w L )*P(bcd|a)*P(w R | bcd)] 1/3 P B(ab,cd)= [P(ab|w L )*P(cd|ab)*P(w R | cd)] 1/3 P B(abc,d)=[P(abc|w L )*P(d|abc)*P(w R | d)] 1/3
Trườnghợp2:(a)(bcde)/(ab)(cde)/(abc)(de)/(abcd)(e)
P B(a,bcde)= [P(a|w L )*P(bcde|a)*P(w R | bcde)] 1/3 P B(ab,cde)=[P(ab|w L )*P(cde|ab)*P(w R | cde)] 1/3 P B(abc,de)= [P(abc|w L )*P(de|abc)*P(w R | de)] 1/3
Trườnghợp3:(ab)(cd)(e)/(ab)(c)(de)/(a)(bc)(de)
P B(ab,cd,e)= [P(ab|w L )*P(cd|ab)*P(e|cd)*P(w R |e)] 1/4
P B(ab,c,de)= [P(ab|w L )*P(c|ab)*P(de|c)*P(w R |de)] 1/4
P B(a,bc,de)= [P(a|w L )*P(bc|a)*P(de|bc)*P(w R |de)] 1/4
Môhìnhđiểmsố khử nhậpnhằngghéptáchCAtheongữcảnh
Theo bảng 4.2, tỉ lệ nhập nhằng CA gấp 3 - 5 lần nhập nhằng OA Kết quả khửnhậpnhằngCAảnhhưởnglớn đếnđộchínhxáctáchtừtiếngViệt.Qua khảo sát,hầu hết nhập nhằng CA là một từ - từ điển có thể tách thành hai từ - từ điển (con) vớingữ nghĩa và ngữ pháp khác nhau Có nhiều nhập nhằng CA do trật tự của nó trongcụm từ hay câu mà có thể hoặc không thể tách ra, đặc biệt là các quán từ hay quánngữcốđịnh.Dovậy,tacóthểdùngdanhsáchđểchứacáctừđặcbiệtnày.
Trường hợp 2: cần khử các nhập nhằng CA cho các từ khả tách(hàm chứa cácquántừLD,LC)theongữcảnhcủanó(xemminhhoạ Bảng3.4).
+Lưuý:hiểnnhiênlà:(LDLC)LK.
Với các nhập nhằng CA, với đa số xảy ra với từ kép: (ab) / (a)(b); một số kháclà những trường hợp từ gồm có 3 hay 4 âm tiết như: (abc) / (a)(bc) / (ab)(c) hay(abcd) / (ab)(cd) / (a)(bcd) / (abc)(d) Do vậy, việc mô tả cách giải quyết nhập nhằngCA cho từ kép (ab) bằng các xác suất ngữ cảnh hoàn toàn có thể áp dụng mở rộngchocácnhậpnhằngtừbộba(abc),từbộtư(abcd).
Nếuw i = (ab)LK,LE(w i )=2,taxéttừw L đứng trước,w R đứngsauw i
Xét dãy từ (w L ,ab,w R ) với các xác suất bigram chọn (ab) hay (a)
Thiếungữcảnhcảbêntráilẫnbênphải(khôngców L vàw R ),khiđóứngviên (ab)khôngđượccoilànhậpnhằng,nênkhôngtách.
CóbaphươngántheoxácsuấtP K(ab)vàP T(ab)nhưsau:
+NếuP K(ab)>P T(ab)thìchọnphương ánkhông tách:w i = (ab)
+NếuP K(ab)
LPP ng làcólỗi.
Trongbảng5.17,có4lỗibáođúngvà3lỗicóthểbáonhầm.Thựcra,vìmôhìnhnàyd ùngcácthôngtintừloại,nêncầnkiểmtralạithôngtintừloại.
Máy_tính/Ntrả_lời/V:/CH(N:danhtừ;V:độngtừ;CHlàdấucâu).
Dòng 6: “xây dựng từ điển tiếng Việt ;” được tách từ và gán nhãn từ loại:xây_dựng/Vtừ_điển/Ntiếng/NViệt/Np;/CH( N p : tênriêng)
Nguyên nhân: Dãy từ loại (V N N Np CH) hiếm khi bắt đầu là động từ.Dòng7:“CộnghoàxãhộichủnghĩaViệtNam.”táchtừvàgánnhãntừloại:
Cộng_hoà/Nxã_hội_chủ_nghĩa/NViệt_Nam/Np./CH
Nguyênnhân:Dãytừloại(NNNpCH)thiếuđộngtừ,nênbáolỗi.
Nếu không quan tâm đến từ loại, để giảm bớt báo động nhầm, ta sử dụng thôngtinLPBđể chọn Chẳng hạn, chọn ngưỡng:LPB ng = 8; vớiLPB>LPB ng là lỗi.Khiđó,sẽcó5lỗiđượcbáocóthứtựtừ1đến5trongBảng5.17.
Nếu xây dựng được kho ngữ liệu kiểm lỗi chính tả (có thông tin lỗi chính tả) thìcóthểdễdàngxácđịnhđượcngưỡngtừkhongữliệunàybằngthuậttoánEM.
Luận án đã thực hiện các thử nghiệm tách từ tiếng Việt theo mô hình đề xuất,tích hợp các kỹ thuật tách từ tiếng Việt theo thuật toán VWS, là các kết quả nghiêncứu của chương 2, chương 3 và chương 4 Mô hình này thực hiện tối ưu theo từngbước, với nhiều kỹ thuật khác nhau, sử dụng nhiều nguồn tài nguyên và tri thức khácnhau Các kỹ thuật đề xuất đều hiệu quả, có độ chính xác cao với thời gian thực hiệnnhanhO(n),nlàsốâmtiếttrongdãyvào.
Khi thực hiện so sánh với các công cụ tách từ hiện hành với cùng từ điển từvựng, cùng ngữ liệu huấn luyện và thử nghiệm, mô hình tách từ VWS mà luận án đềxuấtchokếtquảthửnghiệmđạtđộđoF1- scorelà98,78%caohơnsovớicáccôngcụVnTokenizer(96,71%),DongDu(97,90%)vàJ vnSegmenter(98,11%).
Kết quả thử nghiệm tích hợp các mô-đun (chương 2, 3 và 4) cho tách từ tiếngViệt được công bố trong[A7]; Luận án đã thử nghiệm bước đầu hiệu hiệu quả vớiứng dụng kiểm lỗi chính tả tiếng Việt ([A4]); Ngoài ra, kết quả tách từ tiếng Việt củaluận án cũng có một số đóng góp trong việc tính toán độ tương tự giữa hai từ theođịnh nghĩa của chúng trong từ điển (xem mục 3.3.2.2), cũng như trong quá trình xâydựngmạngtừtiếngViệt([A6]).
KẾTLUẬN Đề tài luận án " Nghiên cứu phát triển một số kỹ thuật tách từ tiếng Việt " đãgiải quyết được một số vấn đề lý luận và thực tiễn đặt ra cho bài toán tách từ tiếngViệt.Luậnánđãđạtđượcmộtsốkếtquảsau:
NghiêncứutổngquanvềtáchtừtiếngViệt.Tìmhiểucácđặcđiểmvềcấutạotừ tiếng Việt và một số quy tắc cấu tạo từ ghép, từ láy và mở rộng với các tổ hợp từcó 3 hay 4 âm tiết Đây là cơ sở nhận diện từ ghép mới bằng các quy tắc ngôn ngữhọc Trên cơ sở nghiên cứu các phương pháp, mô hình, thuật toán trên thế giới cũngnhưtrongnướcvềtáchtừ,đềxuấtmôhìnhtíchhợpchotáchtừtiếngViệt.
Vớim ô h ì n h đ ề x u ấ t , l u ậ n á n đ ư a r a t h u ậ t t o á n c h u n g , l à k h u n g c h o t á c h t ừ tiếngV i ệ t d ự a v à o đ ơ n v ị m ứ c t ừ L u ậ n á n đ ã đ ề c ậ p k ỹ t h u ậ t g i ả i q u y ế t m ộ t s ố nhiệmvụchungcủabàitoántáchtừtiếng Việt:Dùngcâyquyết địnhnhịphânđể tách dấu câu và các kí tự đặc biệt; Sinh các ứng viên từ dựa vào so khớp cực đại cảitiến AMM; và Tìm dãy tách từ tối ưu So khớp cực đại cải tiến AMM cho kết quảtách từ tốt hơn hai phương pháp so khớp cổ điển là FMM và BMM Trên cơ sở phânloại các thực thể, luận án đề xuất giải pháp nhận diện tên riêng và số (hay phân số)bằng chữ Đồng thời, qua khảo sát, luận án đã chỉ ra ba dạng nhập nhằng tên riêng(nhậpn h ằ n g t ừ t i ề n t ố v ớ i t ê n r i ê n g , n h ậ p n h ằ n g t ê n r i ê n g v ớ i t ừ h ậ u t ố v à n h ậ p nhằng tên riêng với tên riêng) và đã đưa ra các giải pháp xử lý hiệu quả, đạt độ chínhxáccao(97,91%) Việcnhậndiệnvàkhửnhậpnhằngtênriênglàmtăngđộc hínhxácF1-scorechotáchtừlênmộtlượngđángkể(3,82%).
Luận án đề xuất kỹ thuật nhận diện từ ghép 2 âm tiết bằng học máy không giámsát với các độ đo thống kê học từ kho ngữ liệu thô tiếng Việt Đặc biệt luận án đưa racáckỹthuậtmớichonhậndiệncáctừláy,từghépđẳnglập,vàcáctổhợptừmởrộn g bằng các quy tắc ngôn ngữ học Kết quả thu được 1.024 từ láy kép mới và 1.040từ ghép song tiết đẳng lập mới, dùng cho chính bài toán tách từ tiếng Việt Việc nhậndiệntừláyvàtừghépđẳnglậplàmtăngđộchínhxáctáchtừlênmộtlượng0,44%.
Nhập nhằng ranh giới từ là hiện tượng xuất hiện trong bài toán tách từ tiếngViệt, gồm hai lớp con: nhập nhằng chồng lấp OA và nhập nhằng ghép tách CA.Quakhảosát,phânloạivàthốngkê,luậnánđãđưara3nhómgiảiphápkhửnhậpnhằng:
So khớp cực đại kết hợp thông tin vị trí quán từ ở đầu/cuối cụm từ hay câu (khử được70,74% OA và 55,33% CA); Dùng độ phức tạp văn bản với mô hình xác suất bigrammức từ, mô hình HMM gán nhãn từ loại, hay mô hình kết hợp giữa HMM gán nhãntừ loại với bigram mức từ (khử được 88,86% OA và 69,33% CA); và mô hình điểmsố tích hợp các tài nguyên và tri thức cho khử nhập nhằng gồm: kho ngữ liệu tách từ,kho ngữ liệu gán nhãn từ loại và kho ngữ liệu thô (khử được 95-96% OA và 70%CA) Kết quả thử nghiệm tách từ cho thấy, khử nhập nhằng ranh giới từ làm tăng1,17%độchínhxácF1-score.
Trên cơ sở mô hình ghép nối có thứ tự được đề xuất cho bài toán tách từ tiếngViệt, các giải pháp và thuật toán cho bài toán tách từ mà luận án đã nghiên cứu vàthựchiệnđượctíchhợptheothứtựcácbướchợplývớithờigianthựchiệnlàO(n),nl à s ố l ư ợ n g â m t i ế t t r o n g d ã y v à o Q u a c á c t h ử n g h i ệ m t á c h t ừ , s o s á n h v ớ i c á c công cụ tách từ hiện hành với cùng từ điển từ vựng, cùng ngữ liệu huấn luyện và thửnghiệm, mô hình tách từ VWS mà luận án đề xuất cho kết quả thử nghiệm đạt độchínhxácF1- scorelà98,78%,caohơnsovớikếtquảcủacáccôngcụkhác:VnTokenizer (96,71%), DongDu (97,90%) và JvnSegmenter (98,11%).N g o à i r a , luận án còn đề xuất và thử nghiệm bước đầu hiệu quả với ứng dụng kiểm lỗi chính tảtiếngViệt.
Do khuôn khổ có hạn của luận án nên còn một số vấn đề trong bài toán tách từcũngn h ư ứ n g d ụ n g củ a b à i t o á n t á c h t ừ c h ư a đ ượ c đ ề cậ p đ ế n n h ư : n h ậ n d i ệ n t ừ ghép chính phụ; nhận diện từ ghép mới dựa vào thông tin độ dài từ; tích hợp mô- đunnhậndiệntừghépmớivàomôhìnhtáchtừ màkhônglàm giảmkết quảđộchín hxác; nhận diện thực thể tên theo hướng phân lớp trong văn bản, Hy vọng sẽ có điềukiệntiếptụcnghiêncứugiảiquyếtnhữngvấnđềnàytrongnhữngcôngtrìnhkhác.
[A1].Nguyễn Nhật An,Trần Ngọc Anh, Phan Thị Nguyệt Hoa (2014), "Kỹ thuật
Votingtrong bài toán tách từ tiếng Việt", Đặc san CNTT,Tạp chí Nghiên cứu Khoa học vàCôngnghệ Quânsự, số 04/2014, tr.54-61.
[A2].Trần Ngọc Anh , Đào Thanh Tĩnh, Nguyễn Phương Thái (2011), “Một phương pháphiệu quả khử nhập nhằng theo ngữ cảnh trong bài toán tách từ tiếng Việt”,Tạp chíKhoahọc& Kỹthuật,HVKTQS,Số145,12/2011,tr.50-62.
[A3].T r ầ n N g ọ c A n h , Nguyễn Nhật An (2011), “Lựa chọn tập gán nhãn ranh giới từ chomô hình Markov ẩn trong bài toán tách từ tiếng Việt”,Tạp chí Nghiên cứu Khoa học&Công nghệ Quânsự, Số 11/2011, tr 91-99.
[A4].Trần Ngọc Anh , Đào Thanh Tĩnh (2011), “Kỹ thuật mã hoá âm tiết tiếng Việt và cácmôh ì n h n - g r a m ứ n g d ụ n g k i ể m l ỗ i c á c h d ù n g t ừ v à c ụ m t ừ t i ế n g V i ệ t ” ,T ạ p c h í Côngn ghệThôngtinvà Truyềnthông,Tập V-1,Số6(26),tr.280-289.
CÁCTHUẬTTOÁNHỖTRỢ
TacầntínhmatrậnL[0 m, 0 n] , vớiL[i,j] là dãyconchungdài nhấtLCScủa
L[i−1,j−1]+1 nếui=0hoặcj=0 nếuX[i]=Y[j] (A1.1) max{L[i−1,j],L[i,j− 1]} nếuX[i]Y[j]
ThuậttoánA1.Tìmsốtừchungdàinhấtgiữahaidãytừ. ĐộphứctạpthuậttoánlàO(mn),mvànlàsốcáctừtrongchuỗiXvàY.
TiếngViệtcó6thanhđiệu:ngang,huyền,hỏi,ngã,sắc,nặng(5thanhcuốilàcó dấu) Việc biểu diễn kí tự Việt có dấu trong bảng mã unicode giữa dựng sẵn và tổhợpkhácnhauở7mã:2mãkítựđvàĐ,5mãdấuthanh. string ToStdUnicode(s: string)
{stNoMarkedViet "aăâeêioôơuưy";aăâeêioôơuưy"aăâeêioôơuưy";; stMarkedViet"aăâeêioôơuưy";àảãáạằẳẵắặầẩẫấậèẻẽéẹềểễếệìỉĩíị"aăâeêioôơuưy"; +
"aăâeêioôơuưy";òỏõóọồổỗốộờởỡớợùủũúụừửữứựỳỷỹýỵ"aăâeêioôơuưy";; i 1; st "aăâeêioôơuưy";"aăâeêioôơuưy";;// chuỗiconvertvềmãunicodedựngsẵn.while(i len(s)){ kt s[i];code2
0; if(i 0){ p Position(lower(kt),stNoMarkedViet);if
(p > 0) { pp*5+mark-1;//vịtrítrongstMaredkVietisUpper(kt = Upper(kt)); kt stMaredkViet[p];i fisUpper kt Upper(kt);
}else{ switch(int)kt{ case240:kt "aăâeêioôơuưy";đ"aăâeêioôơuưy";;break;//
=>mãmới273case208:kt "aăâeêioôơuưy";Đ"aăâeêioôơuưy";;break;//
Theo[20]thìcóđến5quytắcđặtdấuthanhchotiếngViệt,vàtheo[27]thìrútgọnlạicòn2 quytắccơbảnnhưsau:
Quy tắc 1 Khi vần có một nguyên âm, dấu thanh đặt tại nguyên âm đó.Quytắc2.Khivầncótừhainguyênâmtrởlên:
+Nếuvầnđangxétvềnguyên tắccóthểkếthợp(hoặcđãsẵn có)một trong số các phụ âm: C, CH, M, N, NG, NH, P, T làm âm cuối, ta đặt dấuthanh vào nguyên âm cuối cùng bên phải (hoàng, quyết, quyển, giường,thiếp,bước, ).
+ Nếu vần đang xét về nguyên tắc không thể kết hợp được với một trongsố các phụ âm cuối, ta đặt dấu thanh vào nguyên âm bên trái của nguyênâmcuốicùng(hoài,hỏi,hảo,màu,múa,phía, ).
Theo kết quả phân tích âm tiết tiếng Việt trên máy tính[27]thì cấu tạo âm tiếttiếngViệtđượcmôtảtheocáchsau: ÂM-TIẾT=[PHỤÂMĐẦU]++[PHỤÂMCUỐI] với[ ]làphầnkhôngbắtbuộc,và< >làbắtbuộcphảicó.
(i) Phụâmđầu:có27dạng:B,C,CH,D,Đ,G,GH,GI,H,K,KH,L,M,N,NG,NG H,NH,P,QU,R,S,T,TH,TR,V,Xvàrỗng(khôngcó).
(ii) Âmgiữa:làtổhợpcácnguyênâmtạothành.Theođịnh nghĩanày,cóthểchi acácâmgiữathànhbaloại:
+ Âm giữa loại 1: có thể kết hợp với phụ âm cuối hoặc không để tạo vần.Có14dạng:A,E,Ê,I,Y,O,Ô,Ơ,U,Ư,OA,OE,UÊ,UY.
+ Âm giữa loại 2: là những âm không thể kết hợp với phụ âm cuối Có33dạng: AI, AO, AU, AY, ÂU, ÂY, EO, ÊU, IA, IU, OI, ÔI, ƠI, ƠU,UA,UI, UƠ, ƯA, ƯI, ƯU, IÊU, OAI, OAO, OAY, OEO, UÂY, UÔI,UYA,UYU,ƯƠI,ƯƠU,YÊU,YU.
+ Âm giữa loại 3: là bắt buộc phải kết hợp với phụ âm cuối để tạo vần Có10dạng:Ă,Â,IÊ,OĂ,OO,UÂ,UÔ,UYÊ,ƯƠ,YÊ.
(iii)Phụâmcuối:có8dạng:C,CH,M,N,NG,NH,P,T.Trongđó,chiathànhhainhómv ớicáchđánhdấuthanhkhácnhau:
A,E,Ê,I,Y,O,Ô,Ơ,U,Ư,OA,OE,UÊ,UY. Ă,Â,IÊ,OĂ,OO,UÂ,UÔ,UYÊ,ƯƠ,YÊ.
+ Với âm giữa loại 2: đặt vàovị trí bên trái của nguyên âm cuối.AI, AO, AU, AY, ÂU, ÂY, EO, ÊU, IA, IU, OI, ÔI, ƠI, ƠU,UA, UI, UƠ, ƯA, ƯI, ƯU, IÊU, OAI, OAO, OAY, OEO,UÂY,UÔI,UYA,UYU,ƯƠI,ƯƠU,YÊU,YU.
-Với âm tiết có phụ âm cuối: C, CH, P, T thì chỉ đặt thanhsắc/nặng.ThuậttoánA3.Thuậttoánsửalỗichínhtả dấuthanhtựđộng.
Bước2.N ế ua t i c h ứ an g u y ê n â m c ó d ấ u , v àa t i t ừ đ i ể n â m t i ế t ( l ỗ i ) t h ì táchra4 phần:dấuthanh,phụâmđầu,âmgiữavàphụâmcuối.
Bước3.T ạ o l ạ i â m t i ế ta t i m ớ iv ớ i c á c t h ô n g t i n c ũ ( g ồ m c ó p h ụ â m đ ầ u , âmgiữavàphụâmcuối)vớidấuthanhđặttheoquytắcđãnêu.
Bước4.Ghépmảngcácđơnvịat i lạithành vănbảnmới. ĐộphứctạpthuậttoánlàO(n),vớinlàsốlượngâmtiếttrongvănbản.
O(log2 n) với tìm kiếm nhị phân Các giải pháp kiểm lỗi chính tả trong[1],
[27]rútthờig i a n t ì m k i ế m c ò n O ( 1 ) , n h ấ t l à d ù n g D F A ( D e t e r m i n i s t i c F i n i t e A u t o m a t a ) dạngcâyhậutố(Suffix-Trie)hayDFAtốithiểu(min-DFA).
Giảsửtừđiểncó40từđượcsắpxếpvàđánhsốtừ0đến39:a,an,ang,anh,ga, gan, gang, ganh, ha, han, hang, hanh, na, nan, nang, nanh, nga, ngan, ngang,nganh, nha, nhan, nhang, nhanh, ra,ran, rang, ranh, ta, tan, tang, tanh, tha, than,thang,thanh,tra,tran,trang,tranh.
Automat cây hậu tố gồm có 50 trạng thái (1 trạng thái bắt đầu, 9 trạng thái chưakết thúc và 40 trạng thái kết thúc) Tiến hành rút gọn tối thiểu, các nút tương đươngđượcrútgọn,cácnhánhgiốngnhauđượcghéplạitrêntoànbộAutomat.Cuốicùngt a thu được một Automat tối thiểu chỉ còn 7 trạng thái (với 1 trạng thái bắt đầu: q0,3trạngtháikếtthúc:q4,q5,q6)rấtgọnnhưsau:
2) Fori1 T o sizeof(DIC){ /* từđiểnDIC đãsắpxếp*/ a) W D I C [ i ] ; /*đọctừng từtrongtừđiển*/ b) CommonPrefix c o m m o n _ p r e f i x ( W ) ; / * tiềntốchung*/ c) LastState d) * (q0,CommonPrefix); d) CurrentSuffix W[length(CommonPrefix) +l length(W)]; e) Ifhas_children(LastState) et)replace_or_register(LastState);/ * tốithiểu*/ f) add_suffix(LastState,CurrentSuffix);/*thêmhậutố*/
3) replace_or_register(q0); /*tốithiểulần cuối*/
/* bảng chữ cái chấp nhận */
State[sizeof(Alphabet)] Child;/* các nút con */ bool isFinal; /* có thuộc tập kết thúc không ? */
State MinDFA;/* Automat tối thiểu chứa từ điển */
/* cần xây dựng DFA có số trạng thái là tối thiểu */ Hashtable Register; /* tập chứa các nút của minDFA */ State q0 MinDFA; /* trạng thái ban đầu của DFA */
A4.1.ThuậttoánxâydựngAutomattốithiểu Để tạo một Automat có kích thước tối thiểu, có thể tiến hành biến đổi Automatđã xây dựng Đối với các từ điển lớn, nếu xây dựng Automat dạng cây hậu tố nhưHình A4.1 chiếm khá nhiều bộ nhớ, nếu thực hiện rút gọn Automat dựa vào cây hậutố sẽ chi phí rất nhiều thời gian Do vậy, ta tiến hành xây dựng trực tiếp Automat tốithiểu mà nhiều tác giả đã nghiên cứu như: Mohri, Mihov, Watson, Hopcroft, Daciuk,Ciura,Deorowicz,
ThuậttoánA4.1.ThuậttoánxâydựngAutomattốithiểutheo[93]. voidreplace_or_register(state){ /* thựchiệntối thiểu*/
1) child last_child(state);/*nútcon(cuối)củastate*/
2) Ifhas_children(child) a) replace_or_register(child); /*gọi đệquy */
3t2)delete(child);/ * tốithiểu=xoánúttg/đương*/
While (i length(W)) && (q NULL) Do { WordPrefix WordPrefix + W[i]; b) q d) *(q,W[i]); c) i i + 1;
}/* trả về tiền tố chung của từ W với Automat */
Trongđó: Đánh giá độ phức tạp thuật toán A4.1:Từ điển đã sắp xếp cómtừ, nên vònglặp chính thực hiệnmlần Hàmcommon_prefixthực hiện O(|w|) lần, với |w| là độ dàicực đại của 1 từ Hàmreplace_or_registerthực hiện đệ quy tối đa |w| lần cho mỗi từ.Trong mỗi lần gọi đệ quy, có một thanh ghi Register lưu giữ khoá theo thứ tự từ điểnđể tìm kiếm và có thể có 1 phép thêm vào Thời gian tìm kiếm một nút trên thanh ghinàyl à O ( l o gn),v ớ in l às ố n ú t t r ạ n g t h á i c ủ a A u t o m a t t ố i t h i ể u V i ệ c s o s á n h s ự tương đương giữa hai nút trạng thái (bước 3 của hàmreplace_or_register) theo sốcungralà|
|,vớilàbảngchữcáicựcđạichấpnhậnđượccủaautomattốithiểu(với || Index)Or(i>Length(q.Alphabet); c) If(q.number[i]>Index)i i–1; d) Word Word&q.Alphabet[i];
Tất cả các cung ra của Automat tối thiểu ban đầu được khởi tạo với trọng sốIndexlà0.ThuậttoánnàycóđộphứctạpO(N),trongđóNlàkíchthướctừđiển. Với Automat tối thiểu có trọng số như trên có thể chuyển đổi một từ thành chỉ số vàngượclại.MinhhoạgántrọngsốtrongHìnhA4.3.
Hình A4.3 Gán trọng số trên các cung của Automat tối thiểuThuậttoánA4.4.Thuậttoánmãhoátừsangchỉsố:WordToIndex. intWordToIndex(stringw){
4) Whilei length(w){ a) If( d) (q, w[i])==NULL)Return-1;/*ngoàiTĐ*/ b) IndexIndex+q.Number[w[i]]; c)q q= d) (q, w[i]); d)i i+ 1;
} 5)IfisFinal(q)ReturnIndex/*từcó trongtừđiển*/ElseR e t u r n -1; /
Mọithắc_mắcxinliên_hệVi_Thảo,email:huynhvithao@tuoitre.com. vn.
Chân_thànhcảm_ơncácbạn. e) Index Index-q.Number[i]; f) qd)(q, q.Alphabet[i]);Until(Index=0)Or( q=NULL);
4) While(qNULL)&&(notisFinal(q)){ a) Word W o r d &q^.Alphabet[1]; b) q q ^ C h i l d [ q ^ A l p h a b e t [ 1 ] ] ; }
Kích thước bảng chữ cái || là hữu hạn, nên độ phức tạp là O(||) O(1).HoặccóthểdùngtừđiểnsắpxếpDICđểlấytừtheochỉsốIndex. stringIndexToWord(intIndex)
MINHHOẠKẾTQUẢTHỐNGKÊTỪCÁCTÀINGUYÊN
Vídụ:TừđiểnVCLvàkhongữliệuV i e t T r e e B a n k s ử d ụ n g b ả n g m ã Uni codedựngsẵntheochuẩn TCVN6909:2001 Tuy nhiêncả haitài nguyênnàyc ómộtsốchỗvẫnsửdụngbảngmãUnicodetổhợp.(155lỗi)
Ví dụ: Từ điển VCL và kho VietTreeBank (kho 70.000 câu) còn nhiều lỗi chínhtả.ĐặcbiệtlàkhongữliệuVietTreeBankcónhiềulỗichưathốngnhấtcác hđánhdấu thanh trên các âm tiết (tiếng) có các tổ hợp nguyên âm: "oa", "oe", "uy" theochuẩnchính tả hiện hành. (7.801lỗi)
Vídụ:KhoVietTreeBank(kho70.000câu)cóquánhiềulỗitáchcâukhôngđúngdokhông cóquytắcphântáchgiữasố,kítựvàdấucâu.
Mọithắc_mắcxinliên_hệVi_Thảo,email:huynhvithao@tuoitre.com.vn.Chân_thànhcảm_ ơncácbạn.
TP.HCM:từ1-7,giánướctănglên2.700-8.000đồng/m3
TP.HCM:từ1-7,giánướctănglên2.700-8.000đồng/m
+Lỗithựcthể:VấnđềtáchthựcthểngàythángkhôngthốngnhấttrongcáckhongữliệucủaV ietTreeBank(SP73)[10]:giữakho70.000câuđãtáchtừ(SP731);kho
10.000câuđãtáchtừvàgánnhãntừloại(SP732);vàkho10000câuđãtáchtừ,gánnhãntừloạivàg ánnhãncúpháp(SP733).
Ví dụ: file9778.segthuộc VietTreeBank (70.000 câu) có hai dạng khác nhau vềngàythángnăm:" n g à y 20-11"v à " n g à y _ 2 0 _ - _ 1 1 _ - _ 2 0 0 3 "
Trong SP731, đa số thực thể ngày tháng năm được ghép lại, chẳng hạn:2004_/_01_/_15,20_-_1_-_1975,18-1-2003 (trong file
16424.seg)Ngày_12_tháng_4_năm_2004 (trongfile28422.seg) ngày_23_-_1_-_2003 (trongfile11119.seg) tháng_11_-_2003 (trongfile10155.seg) năm_2006 (trong file
2-10-1971 (trongfile82342.seg.pos) ngày11-9-2005 (trongfile100276.seg.pos) tháng3-2005 (trongfile100649.seg.pos) năm2005 (trong file
30-4-1975 (trongfile109898.van.prd) ngày28-4-1969 (trongfile90324.prd,90324.raw) tháng5-2004 (trongfile90483.prd,90483.raw) năm1967 (trongfile90324.prd,90324.raw)
CácthựcthểngàythángcủakhoSP731làkhácsovớiSP732vàSP733,dovậy,khoSP731cầ nđượcsửalạichothốngnhấtvớiSP732vàSP733.
(SửdụngtừđiểnVCL31.158từvựng và từđiểnVSD7015âmtiết)
Mụcđíchthốngkênhằm chọncáckí tựđặcbiệtítxuấthiệnlàm kíhiệuchobàitoántáchtừhaygánnhãntừloại.(KếtquảtừBảngB3.1:"_"và"|").
TT Kí hiệu SP731 SP732 rawCorpus
Thực thể số bằng chữ 107 0,09 36 0,33
Anh, Bà, Bác, Bạn, Bầu, Bé, Cả, Cai, Cái, Cậu, Cha, Cháu, Chị,Chồng, Chú, Chúa, Cô, Cố, Con, Cu, Cụ, Dì, Dượng, Em, Già,Họ,L ã o , M á , M ẹ , M ợ , N g à i , Ô n g , S o á i , T ê n , T h ằ n g , T h ầ y , Thím,Tổng,Tướng,Vợ,Vua
Bụng,C ằ m , C h â n , C ổ , D a , Đ ầ u , Đ í t , Đ ù i , G a n , H ô n g , L ư n g , Lưỡi,Má,Mắt,Mật,Mặt,Miệng,Mồm,Mông,Mũi,Ngực,Óc, Phổi,Răng,Râu,Ruột,Tai,Tay,Thận,Tim,Tóc,Vai,Xương
Ao, Ấp, Bãi, Bản, Bang, Bến, Biển, Bờ, Bót, Buôn, Cầu, Chợ,Chùa, Cồn, Cửa, Dải, Dinh, Đảo, Đầm, Đập, Đền, Đình, Đỉnh,Đồi, Đồn, Đường, Hẻm, Hồ, Huyện, Kênh, Làng, Lao, Lăng,Miền,Mỏ,Ngách,Ngõ,Ngọn,Núi,Nước,Phía,Phố,Phủ,Phườ ng,Quận,Quê,Rạch,Rừng,Sân,Sông,Suối,Tháp,Thôn,
Tỉnh,Vịnh,Vườn,Xã,Xóm
Ban,B ă n g , B á o , B ộ , C ụ c , C ụ m , Đ à i , Đ ả n g , Đ ạ o , Đ o à n , Đ ộ i , Hãng,Hạt,Hội,Kho,Khoa,Khu,Lớp,Nha,Nhóm,Phái, Phòng,Sở,Tổ,Trại,Trạm,Trường,Viện,Vụ
Chỉ vật, sự việc,hiệntượng
Bảng, Bệnh, Báo, Bò, Bọn, Bún, Cá, Cái, Cặp, Cây, Chiếc,Chim, Chó, Chủ, Chuột, Con, Cơm, Cục, Cúp, Cừu, Dê, Đêm,Đôi, Đống, Đợt, Gà, Gạo, Gấu, Giải, Giày, Giầy, Giọng, Heo,Hổ, Hôm, Hồn, Kịch, Kiểu, Lễ, Loại, Lời, Lợn, Lúa, Lừa, Luật,Mèo, Mì, Môn, Muỗi, Mỳ, Năm, Nền, Nếp, Ngành, Ngày, Nghề,Ngựa, Người, Nhà, Nơi, Nước, Phim, Phở, Quĩ, Quỹ, Rượu, Số,Sổ,T ấ m , T à u , T ế t , T h á n g , T h u ố c , T i ế n g , T ờ , T o à , T r à , T r ậ n ,
Trâu,Tụi,Tuồng,Tương,Việc,Vịt,Voi,Xe
Bên, Biết, Bỏ, Bởi, Bỗng, Cả, Các, Cạnh, Chắc, Chính, Chờ,Chống, Chúc, Có, Còn, Của, Cùng, Dẫn, Dắt, Do, Dù, Dưới,Đánh, Đá, Đấm, Đặt, Đẩy, Để, Đến, Đi, Đợi, Đưa, Được, Gần,Gặp, Giờ, Giữa, Gọi, Hay, Hiện, Hoặc, Hồi, Hỏi, Kéo, Khách,Khi, Là, Lên, Lôi, Lúc, Mà, Mời, Mong, Một, Nay, Nếu, Ngay,Nghe,N g o à i , N h i ề u , N h ì n , N h ớ , N h ờ , N h ư , N h ư n g , N h ữ n g , Nói, Ở, Ra, Riêng, Rồi, Rời, Sang, Sau, Tại, Tận, Tặng, Tay,Thấy,Theo,Thư,Thưa,Thương,Tới,Trên,Trong,Trước, Từ,
Tuyển,Và,Vào,Về,Vì,Với,Vượt,Xin,Xuống
Anh_Sơn, Ba_Bể, Ba_Chẽ, Ba_Đình, Ba_Tri, Ba_Tơ, Ba_Vì,Bà_Bướm,Bà_Chúa,Bà_Chúa_Kho,Bà_Chúa_Xứ,Bà_Đe n,Bà_Huyện_Thanh_Quan,Bà_Quẹo,Bà_Rịa_Vũng_Tàu,Bà_Rịa,B à _ T r i ệ u , Bà_Trưng,Bác_Ái,Bác_Hồ,Bác_Tôn, Bố_Trạch,Cai_Lậy,Chú_Ía,Cô_Tô,Cụ_Hồ
Bãi_Cháy,Bãi_Dâu,Bãi_Lữ,Bản_Đôn,Bến_Cát,Bến_Cầu,Bến_D ược, Bến_Lức, Bến_Nghé, Bến_Thuỷ,
Bến_Tre,Biển_Chết,Biển_Đen,Biển_Đông, Buôn_Đôn, Buôn_Hồ, Buôn_Ma_Thuột,Cầu_Giấy, Cầu_Kè, Cầu_Kho, Cầu_Kiệu,Cầu_Muối,
Cầu_Ngang,Cầu_Ông_Lãnh,Chợ_Cầu,Chợ_Đồn,Chợ_Gạo,Chợ_Lách,Chợ_
Mới,Cồn_Cỏ,Đầm_Dơi, Đầm_Hà, Đầm_Vạc, Đất_Đỏ,Mỏ_Cày,Núi_Thành,Rạch_Giá,Sông_Cầu,Sông_Công, Sông_Hinh,S ô n g _ L ô , S ô n g _ M ã , T h á p _ C h à m , T h á p _ M ư ờ i ,Xóm_Chiếu,Xóm_Củi
Ban_Tích, Đài_Bắc, Đài_Loan, Hội_An,
Trạm_Tấu,Trường_Sa, Trường_Sơn_Đông, Trường_Sơn_Tây, Trường_Sơn,Vụ_Bản
Từ tố chỉ vật, sựviệc,hiệntượng
Cái_Bè,Cái_Nước, Cái_Răng, Cờ_Đỏ,
Con_Cuông,Củ_Chi,Cửa_Hội, Cửa_Lò, Cửa_Tùng, Cửa_Việt, Đống_Đa, Gò_Công,Gò_Dầu, Gò_Quao, Gò_Vấp, Hòn_Đất, Hòn_Khoai,
Nhà_Bè,Trà_Bồng,Trà_Cổ,Trà_Cú,Trà_Lĩnh,Trà_Nóc,Trà_Ôn, Trà_Vinh,Vũng_Liêm,Vũng_Tàu,Vũng_Thơm
Bàn_Cờ, Bảo_Lâm, Bảo_Lộc, Bảo_Thắng, Bảo_Yên, Các_Mác,Cần_Đước,Cần_Giờ,Cần_Giuộc,Chà_Và,Hai_Bà_Trưng, Mê_Linh,N h ư _ A n h , N h ư _ H ằ n g , N h ư _ L a n , N h ư _
M a i , Như_Quỳnh,Như_Thanh,Như_Xuân,Từ_Liêm,Từ_Sơn
Luận án thực hiện sưu tầm danh sách họ và tên của các thí sinh thi vào haitrường đại học của tất cả các tỉnh thành trong năm 2013, nhằm thống kê phân bố tỉ lệhọngườiViệtvàlọcradanhsáchhọngườiViệt.
Tổng số thí sinh trong danh sách:
TênHọ Sốlg TênHọ Sốlg TênHọ Sốlg TênHọ Sốlg TênHọ Sốlg TênHọ Sốlg
7 Hứa 25 Nguỵ 6 Quàng 3 Bê 1 Lỡ 1
Trần 4497 Kim 23 Phù 6 Tân 3 Bo 1 Lôi 1
Lê 4002 Lữ 23 Sái 6 Thiên 3 Cái 1 Lồng 1
Phạm 3311 Phương 23 Sử 6 Vàng 3 Cảnh 1 Lư 1
Vũ 1760 Từ 23 Tào 6 Viên 3 Cát 1 Luân 1
Hoàng 1458 Giáp 22 Tiêu 6 Bàng 2 Cầm 1 Mại 1 Đỗ 1401 Lường 20 Trầm 6 Báo 2 Cần 1 Man 1
Bùi 1289 Cù 19 Trượng 6 Cam 2 Chảo 1 Mao 1
Phan 1039 Khổng 19 Bành 5 Chương 2 Chẩu 1 Miêu 1
Ngô 1002 Khúc 19 Cung 5 Diêm 2 Chềnh 1 Miểu 1 Đặng 999 Y 18 Đình 5 Du 2 Chiêm 1 Mỗ 1
Võ 907 Lăng 17 Ksor 5 Đại 2 Chinh 1 Mộng 1
Huỳnh 695 Lục 17 Mẫn 5 Ê 2 Chìu 1 Mùng 1 Đinh 685 Vy 17 Quan 5 Hữu 2 Chuôn g 1 Muộn 1
Dương 674 Thạch 16 Quang 5 Kha 2 Chuyê n 1 Nại 1
Hồ 646 An 15 Ung 5 Khang 2 Coọc 1 Ngàn 1
Trương 643 Ma 15 Uông 5 Khâu 2 Cố 1 Ngần 1 Đào 595 Nhữ 15 Ứng 5 Kheo 2 Cồ 1 Ngũ 1
Trịnh 504 H 14 Vân 5 Khoa 2 Cổ 1 Như 1 Đoàn 503 Thiều 14 Vòng 5 Kỳ 2 Diêu 1 Ni 1
Hà 438 Âu 13 Bàn 4 Lành 2 Dịp 1 Phẩm 1
Mai 438 Mã 13 Bồ 4 Lao 2 Dùng 1 Phu 1
Lương 364 Quảng 13 Chamalé a 4 Lèo 2 Duy 1 Phúc 1
Cao 342 Chử 12 Định 4 Lều 2 Đảo 1 Quế 1
Lưu 311 Long 12 Đới 4 Liên 2 Đăng 1 Quyền 1
Phùng 294 Quản 12 Giàng 4 Liêu 2 Đầu 1 Roãn 1
Tạ 237 Lò 11 Hồng 4 Liễu 2 Địch 1 Sần 1
Chu 222 Mang 11 Lô 4 Lộ 2 Điện 1 Sin 1
Vương 145 Bế 10 Luyện 4 Mạch 2 Điệp 1 Sìn 1
Tô 136 Dư 10 Mầu 4 Mè 2 Điêu 1 Sô 1 Đàm 121 Lỗ 10 Ngân 4 Mùi 2 Đồ 1 Sơn 1
Lý 112 Danh 9 Ngọc 4 Não 2 Đôn 1 Sư 1
Lâm 110 H' 9 Ôn 4 Ngư 2 Đông 1 Tanh 1
Thái 104 Khương 9 Phú 4 Nhan 2 Đức 1 Tẩy 1
Kiều 102 Bá 8 Sầm 4 Phó 2 Giả 1 Thạc 1
Lại 93 Chung 8 Sú 4 Pinăng 2 Giao 1 Thập 1
Tống 80 Ngọ 8 Sùng 4 Sa 2 Giềng 1 Thịnh 1
Nông 78 Nguyên 8 Thành 4 Tài 2 Hách 1 Thuận 1
Văn 73 Trang 8 Thị 4 Tằng 2 Hảng 1 Thung 1
Triệu 66 Tưởng 8 Trình 4 Thẩm 2 Hành 1 Thượng 1 Đồng 64 Công 7 Tường 4 Thang 2 Hắc 1 Thuyên 1
Châu 61 Hán 7 Ca 3 Thế 2 Hiền 1 Tính 1
Lã 59 Hàn 7 Cà 3 Thiệu 2 Hình 1 Toàn 1
Quách 58 Hàng 7 Chế 3 Thới 2 Hỗ 1 Trác 1
Nghiêm 53 Linh 7 Chúc 3 Thòng 2 Hờ 1 Trọng 1
Vi 53 Nhâm 7 Đan 3 Tiết 2 Hoành 1 Trung 1
Thân 52 Trà 7 Đàng 3 Tòng 2 Hy 1 Tuấn 1 Đậu 45 Biện 6 Đạt 3 Và 2 Hỷ 1 Vạn 1
Tăng 45 Cáp 6 Điểu 3 Văng 2 Ích 1 Viết 1
Phí 42 Đạo 6 Giản 3 Vì 2 Ka 1 Voòng 1
Khuất 39 Đổng 6 Hùng 3 Vừ 2 Khắc 1 Xiêm 1
Bạch 36 Đường 6 K' 3 Yên 2 Kiềng 1 Xíu 1
Tôn 33 Hạ 6 Khà 3 A 1 Kống 1 Xồng 1
Diệp 30 Hoa 6 Khiếu 3 Alê 1 Kpă 1 Ya 1
Ninh 30 Katơr 6 Lai 3 Anh 1 Kỹ 1
Giang 29 Lầu 6 Lượng 3 Ân 1 Làu 1
Doãn 28 Lộc 6 Mấu 3 Bạc 1 Lầm 1
La 28 Lù 6 Nay 3 Dỉ 1 Li 1
Cấn 27 Mạnh 6 Ông 3 Bảo 1 Liêng 1
Mạc 26 Mông 6 Pi 3 Bằng 1 Liểu 1
Từ bảng B5.3, ta có thể vẽbiểu đồ tỉ lệ họ người Việt nhưHìnhB5.1.
Biểu đồ Hình B5.1 cho tathấy, họ Nguyễn chiếm khoảng1/3 tổng số, kế đến là họ
HìnhB5.1.Biểu đồphânbố tỉlệtên họngười
PHÉPĐOĐỘTƯƠNGTỰNGỮNGHĨADÙNGTỪĐIỂNVCL
Độ tương tự ngữ nghĩa (semantic similarity) giữa các từ, các câu, hay các vănbảnđ ó n g m ộ t v a i t r ò n g à y c à n g q u a n t r ọ n g t r o n g n g h i ê n c ứ u x ử l ý n g ô n n g ữ t ự nhiên Đối với tiếng Anh, đã có nhiều nghiên cứu thực hiện dựa trên kho ngữ liệu(Corpus), cây ngữ nghĩa (Semantic Tree) và mạng từ (WordNet) Tuy nhiên đối vớitiếng Việt thì còn khá mới mẻ, đặc biệt là cây ngữ nghĩa và mạng từ tiếng Việt chođếnnayvẫnchưaxâydựngxong.Dovậy,tiếpcậndựatrênđịnhnghĩacủatừtrongtừđ iểnVCLlàmớimẻcầncónhữngnghiêncứuvàthửnghiệm.
Vấn đề là làm thế nào để đo sự tương tự (sự giống nhau, hay sự tương đồng)giữa hai từ, hai câu, hoặc hai văn bản Độ tương tự là một đại lượng phản ánh cườngđộ của mối quan hệ giữa hai đối tượng hoặc hai đặc trưng (ở đây là hai từ, hai câuhoặc hai văn bản) và giá trị của nó trong đoạn [-1,1] hoặc [0,1] Ta có thể coi độtươngtựnhưmộthàmtínhđiểm(scorefunction).
Hiện nay có hai phương pháp điển hình để đo độ tương tự của hai từ, hai câuhoặc hai văn bản là phương pháp thống kê và phương pháp xử lý ngôn ngữ tự nhiên.Với phương pháp thống kê, có một số phương pháp sử dụng các độ đo dựa vào tầnsuất xuất hiện của từ trong câu, nổi bật là phương pháp sử dụng độ tương tự Cosin.Phươngphápnàyxửlýnhanh,tốnítchiphítuynhiênvẫnchưa đảmbảođộchí nhxác cao về mặt ngữ nghĩa Còn các phương pháp sử dụng xử lý ngôn ngữ tự nhiên,mộtsốcáchtiếpcậnđặctrưngđượcđưaralàsửdụngphântíchcấutrúcngữpháp,sử dụng mạng ngữ nghĩa đối với từ, như sử dụng Wordnet Phương pháp xử lý ngônngữ tự nhiên xử lý chậm hơn, tốn nhiều chi phí hơn tuy nhiên khi xét về mặt ngữnghĩathìchokếtquảcaohơnsovới phươngphápthốngkê.
Hiện nay, từ điển VCL (Vietnamese Computational Lexicon)[10](dùng cho xửlý ngôn ngữ tiếng Việt trên máy tính) có 41.734 mục nghĩa với 31.158 từ khác nhau,gồm nhiều thông tin về cú pháp và ngữ nghĩa như: từ loại, tiểu từ loại, lớp ngữ nghĩa,đồng nghĩa, trái nghĩa, định nghĩa của từ, Đây là cơ sở để tác giả luận án đưa raphương pháp đo độ tương tự ngữ nghĩa giữa hai từ dựa trên định nghĩa của nó Vàđây cũng là một tiếp cận mới trong việc đo độ tương tự ngữ nghĩa giữa hai từ tiếngViệt mà không dùng thống kê, không dùng mạng từ WordNet, và cũng không dùngcây ngữ nghĩa như các nghiên cứu khác đã tiếp cận Về mặt bản chất, đo độ tương tựngữ nghĩa giữa hai từ thông qua hai định nghĩa trong từ điển, là đo độ tương tự giữahai văn bản Trong nghiên cứu ở đây sẽ trình bày tóm tắt một số cách đo độ tương tựngữnghĩagiữahaivănbản.
Dùng một số thuật toán so khớp chuỗi xấp xỉ.Cho2vănbảnX,Ylà2dãytừtiếngViệt:
Tacóthểápdụngmộtsốcôngthứctínhkhoảngcáchgiữa2vănbảnX,Ytrêncơsởâmtiế tđểtínhđộtươngtựcủachúng. a ĐộtươngtựdựavàokhoảngcáchhiệuchỉnhED(EditDistance)
Vídụ:x ="conchócắnconmèo" =>X=(con,chó,cắn,con,mèo) y = "con mèo cắn con chuột" =>Y= (con, mèo, cắn, con, chuột)Ápdụngcôngthức(C.1)đểtính,tacó:ED(X,Y)=2,dovậy:
Với X = (con, chó, cắn, con, mèo) và Y = (con, mèo, cắn, con, chuột)Tacó:L C S(X,Y)=(con,cắn,con),nên|LCS(X,Y)|=3,dovậy:
0.6 55 Tương tự áp dụng với các độ đo khoảng cách còn lại như: HD (HammingDistance), DLD (Damerau–Levenshtein Distance) Ngoài ra, có thể dùng các độ đokhoảng cách JW (Jaro–Winkler distance), khoảng cách Trigram (Trigram Distance),hayRatcliff/Obershelpđểtínhđộtươngtựgiữa haivăn bản.
Ví dụ:x = "con chó cắn con mèo"vày = "con mèo cắn con chuột"Tacó:|X|=5; |Y|=5;| XY|=4;| XY|=6
Vídụ: x="conchócắn conmèo" =>Cx=(con,chó,cắn,mèo) y="conmèocắnconchuột" =>Cy= (con, mèo, cắn, chuột)GọiCxy=CxCy=(con,chó,cắn,mèo,chuột)làdãytừchung.
Sau khi sắp xếp lại, ta có:Cxy= (cắn, chó, chuột, con, mèo)Theotầnsuấtxuấthiện,thì:
X=(cắn:1,chó:1,chuột:0,con:2,mèo:1) x=(1,1,0,2,1)
Y=(cắn:1,chó:0,chuột:1,con:2,mèo:1) y=(1,0,1,2,1)
01 Function FMM(string S, State MinDFA) {
/* tách ra từng âm tiết */ for j k + 1 to n { w w + "aăâeêioôơuưy"; "aăâeêioôơuưy"; + a[j]; if (InDict(w.ToLower, MinDFA)) { q(i) w.replace("aăâeêioôơuưy"; "aăâeêioôơuưy";,"aăâeêioôơuưy";_"aăâeêioôơuưy";); i j;
/* dùng MinDFA */ /* là từ dài nhất */
MỘTSỐTHUẬTTOÁNSOKHỚPCỰCĐẠI
Thực hiện so khớp cực đại với hướng tiến từ trái sang phải theo thứ tự của cácâm tiết trong dãy vào Có hai tiếp cận, một là quét toàn bộ dãy vào so sánh với từđiển, hai là chọn cửa sổ âm tiết để so sánh với từ điển Tiếp cận thứ hai, giới hạn kíchthước cửa sổ âm tiết, làm cho thuật toán nhanh hơn, tuy nhiên có thể bỏ sót một số từcókíchthướcdàihơncửasổâmtiết.
20 va SplitToArray(q[i],"aăâeêioôơuưy";_"aăâeêioôơuưy";);/*độphứctạp=count(va)*/
Dãy vào gồm cónâm tiết Dòng 02, hàmSplitToArray(S,"aăâeêioôơuưy"; "aăâeêioôơuưy";)tách dãyvàoSthành từng âm tiết, cần thời gian là O(n) Từ dòng 04 đến 16, gồm hai vòng lặplồng nhau đều duyệtnâm tiết, cần thời gian tối đa là O(n 2 ) Từ dòng 19 đến dòng 23là xuất kết quả tách từ, cần thời gian tối đa là O(n) Như vậy, độ phức tạp chung củathuật toán D1.1 là O(n 2 ) Nếu sử dụng tìm kiếm nhị phân trong từ điển cóNtừ (tạidòng 10) thì sẽ tốn thêm một hệ số thời gian là O(log2 N), khi đó, độ phức tạp củathuậttoán sẽlàO(n 2 log2 N).
Ngược lại với FMM, phương pháp BMM thực hiện so khớp cực đại theo hướnglùi từ phải qua trái theo thứ tự của các âm tiết trong dãy vào Tương tự như FMM,BMM cũng có hai tiếp cận là quét toàn bộ hay dựa vào cửa sổ âm tiết để so sánh vớitừđiển,vàcũngcóưunhượcđiểmtương tựvớiFMM.
2 a S p l i t T o A r r a y ( S , "aăâeêioôơuưy"; "aăâeêioôơuưy";);/*tách ratừngâm tiết*/
09 if(InDict(w.ToLower, MinDFA)) /*dùngMinDFA*/
10 q(i) w.replace("aăâeêioôơuưy"; "aăâeêioôơuưy";,"aăâeêioôơuưy";_"aăâeêioôơuưy";); /*là từdài nhất*/
18 19 va SplitToArray(q[i],"aăâeêioôơuưy";_"aăâeêioôơuưy";);/*độ phức tạp = count(va)*/ outS q[i] + "aăâeêioôơuưy"; "aăâeêioôơuưy"; + outS; i i - count(va);
01 Function WFMM(string S, State MinDFA) {
/* tách ra từng âm tiết */
/* từ trái qua phải: 1 => n */ k i; winsize if((k+3 n); return outS;
TươngtựnhưthuậttoánD1.1,thuậttoánD1.2cóđộphứctạplàO(n 2 ),vớinlàsốlượngâ mtiếttrongdãyvào.
+Đầuralàmtừ: S=w 1 w 2 w 3 w m (từghépđượcnốibằng"_") ĐộphứctạpcủathuậttoánD2.1làO(n),nlàsốâmtiếttrongdãyvào.
01 TenRieng "aăâeêioôơuưy";"aăâeêioôơuưy";; 02 for i 1 to n {
10 if isProper(w[i]) { if (TenRieng == "aăâeêioôơuưy";"aăâeêioôơuưy";) { TenRieng w[i]; id i;
}else TenRieng TenRieng + "aăâeêioôơuưy";_"aăâeêioôơuưy"; + w[i];
}else { if (TenRieng != "aăâeêioôơuưy";"aăâeêioôơuưy";) {
02 a S p l i t T o A r r a y ( S , "aăâeêioôơuưy"; "aăâeêioôơuưy";);/*tách ratừngâm tiết*/
09 if(InDict(w.ToLower,MinDFA)) /*dùngMinDFA*/
10 q(i) w.replace("aăâeêioôơuưy";"aăâeêioôơuưy";,"aăâeêioôơuưy";_"aăâeêioôơuưy";); /*là từdài nhất*/
18 vaSplitToArray(q[i],"aăâeêioôơuưy";_"aăâeêioôơuưy";);/*độphứctạp=count(va)*/
THUẬTTOÁNNHẬNDIỆNVÀKHỬNHẬPNHẰNGTÊNRIÊNG
16 17 } w[id] TenRieng; for j id + 1 to i – 1 w[j] "aăâeêioôơuưy";"aăâeêioôơuưy";; TenRieng "aăâeêioôơuưy";"aăâeêioôơuưy";;
} } if (TenRieng != "aăâeêioôơuưy";"aăâeêioôơuưy";) { w[id] TenRieng; for j id + 1 to i – 1 21w[j] "aăâeêioôơuưy";"aăâeêioôơuưy";;
22 } outS w[1]; for i 2 to n do { 25if (w[i] != "aăâeêioôơuưy";"aăâeêioôơuưy";)
26outS outS + "aăâeêioôơuưy"; "aăâeêioôơuưy"; + w[i]; 27 } ĐộphứctạpthuậttoánlàO(n),vớinlàsốâmtiếttrongdãyvào.
23 for i 2 to n do {24 if(w[i]!= "aăâeêioôơuưy";"aăâeêioôơuưy";)
25 outSoutS + "aăâeêioôơuưy"; "aăâeêioôơuưy"; + w[i];26} ĐộphứctạpthuậttoánlàO(n),vớinlàsốâmtiếttrongdãyvào.
20 if(a[id]ListSpecialPN){ v SplitToArray(a[id],"aăâeêioôơuưy";_"aăâeêioôơuưy";); if count(v) ≥ 2) && (v[1] ListPrePN) {a[id] v[1] + "aăâeêioôơuưy"; "aăâeêioôơuưy"; + v[2]; /* tách
*/forj 3 to count(v){ a[id] a[id]+"aăâeêioôơuưy";_"aăâeêioôơuưy";+ v[j];
34 forj id+1toi–1{a[j] "aăâeêioôơuưy";"aăâeêioôơuưy";;
{a[id]TenRieng; if(a[id] ListSpecialPN){ v SplitToArray(a[id],"aăâeêioôơuưy";_"aăâeêioôơuưy";); if count(v) ≥ 2) && (v[1]ListPrePN) {a[id]v[1]+"aăâeêioôơuưy";"aăâeêioôơuưy";+v[2];/*tách*/ forj 3 tocount(v){
02 ww(w[i]&"aăâeêioôơuưy";_"aăâeêioôơuưy";&w[i+1]).replace("aăâeêioôơuưy";_"aăâeêioôơuưy";,"aăâeêioôơuưy";"aăâeêioôơuưy";);03 ifWordToIndex(lower(ww),MinDFA) ≥0{
7 pw SplitToArray(w[i],"aăâeêioôơuưy";_"aăâeêioôơuưy";);08 ww w[i+1].replace("aăâeêioôơuưy";_"aăâeêioôơuưy";,"aăâeêioôơuưy";"aăâeêioôơuưy";);09 jpos 0;
11 wwpw[count(pw)-j+1] +"aăâeêioôơuưy";"aăâeêioôơuưy";+ww;
12 if(WordToIndex(lower(ww),MinDFA)≥0){
18 w[i+1] wpos.replace("aăâeêioôơuưy";"aăâeêioôơuưy";,"aăâeêioôơuưy";_"aăâeêioôơuưy";);
20 forj 2tocount(pw)–jpos{21 w[i] w[i] + "aăâeêioôơuưy";_"aăâeêioôơuưy"; + pw[j];22 }
39 forjid+1toi–1{40 a[j]"aăâeêioôơuưy";"aăâeêioôơuưy";;
44 fori 2tondo{45 if(a[i] !="aăâeêioôơuưy";"aăâeêioôơuưy";)
46 outS outS+"aăâeêioôơuưy";"aăâeêioôơuưy";+a[i];47} ĐộphứctạpcủathuậttoánnàylàO(n),nlàsốâmtiếttrongdãyvào.
Sđãquatáchtừ(mđơnvị):w[1],w[2],w[3], ,w[m].+Đầura:outS,sửalỗiw[i],w[i+1]bịnhậpnhằngtênriêngvớitừhậutố.
25 26 if ("aăâeêioôơuưy";_"aăâeêioôơuưy"; w[i]) { swi 0; if ("aăâeêioôơuưy";_"aăâeêioôơuưy"; w[i+1]) {
/* là tên riêng */ sw[1] w[i+1]; swi swi + 1; if ("aăâeêioôơuưy";_"aăâeêioôơuưy"; w[i+2]) { sw[2] w[i+2]; swi swi + 1; if ("aăâeêioôơuưy";_"aăâeêioôơuưy"; w[i+3]) { sw[3] w[i+3]; swi swi + 1;
} if (swi > 0) { pw SplitToArray(w[i],"aăâeêioôơuưy";_"aăâeêioôơuưy";); jpos 0; kpos 0; w1 pw[count(pw)]; j 1;
Repeat w2 sw[1]; k 1; ww w1 + "aăâeêioôơuưy"; "aăâeêioôơuưy"; + w2;
Repeat if (WordToIndex(lower(ww),MinDFA) ≥ 0) { kpos k; jpos j; wpos ww; prew w1;
27 for i2 to n do {28 if(w[i] !="aăâeêioôơuưy";"aăâeêioôơuưy";)
+WordToIndex(w,MinDFA)≥0 : làmãcủatừwtrongtừđiển. +SplitToArray(w,"_"):táchdãy wbởidấu"_"ramảngcácđơnvị. Độ phức tạp của SplitToArray là O(1), của WordToIndex là O(1) (xem thuậttoán A4.4, Phụ lục A4) Vòng lặp ngoài cùng (dòng 01) duyệt số từ trong câu (m),trong đó, có hai vòng lặp con (dòng 10 và 20) không lồng nhau, mỗi vòng duyệt sốâm tiết trong một từ (w[i]) Do vậy, thuật toán đã duyệt toàn bộ số âm tiết trong câu,nênđộphứctạpcủathuậttoánsẽlàO(n),vớinlàsốâmtiếttrongdãyvào.
Sđãquathuậttoán3.3(mđơnvị):w[1],w[2],w[3], ,w[m].+Đầura:outS,sửalỗiw[i],w[i+1]bịnhậpnhằngtênriêngvớitừhậutố.
52 } w2 w2 + "aăâeêioôơuưy"; "aăâeêioôơuưy"; + sw[k]; ww w1 + "aăâeêioôơuưy"; "aăâeêioôơuưy"; + w2;
Until (k > swi) or (count(ww) > 4); j j + 1; if (j count(pw)) or (count(w1) > 3); if (wpos != "aăâeêioôơuưy";"aăâeêioôơuưy";) { w[i+1] wpos.Replace("aăâeêioôơuưy"; "aăâeêioôơuưy";, "aăâeêioôơuưy";_"aăâeêioôơuưy";); for k 2 to kpos { w[i+k] "aăâeêioôơuưy";"aăâeêioôơuưy";;
} if (count(prew) == count(pw)) { w[i] "aăâeêioôơuưy";"aăâeêioôơuưy";;
}else { w[i] pw[1]; for j 2 to count(pw) – jpos { w[i] w[i] + "aăâeêioôơuưy";_"aăâeêioôơuưy"; + pw[j];
} } outS w[1]; for i 2 to n do { 55if (w[i] != "aăâeêioôơuưy";"aăâeêioôơuưy";)
Ta biết rằng độ phức tạp của hàmSplitToArraylà O(1), và độ phức tạp của hàmWordToIndexđều là O(1) (xem thuật toán A4.4, Phụ lục A4) Vòng lặp ngoài cùng(dòng 01) duyệt số đơn vị âm tiết/tên riêng trong câu (m), trong đó, hai vòng lặp conlồngnhau(dòng17và20)sửdụngtốiđa3x4lầnduyệtâmtiếtkhicótênriêngvà dãy hậu tố, và hai vòng lặp con (dòng 37 và 44) duyệt lại từ w[i] theo âm tiết.
THUẬTTOÁNTÌMTHAMSỐHỌCTỐIƯU
HìnhF1.1.SựhộitụcủathuậttoánEMđếnmộtgiátrịcựcđạicụcbộ( EM ),khivectortha msốđượckhởitạomộtgiátrịngẫunhiênbanđầu( 0 ).
Một thuật toán tìm kiếm heuristic thích nghi với tên gọi là thuật toán di truyềnGA,đượcđưaradựatrêncácýtưởngtiếnhóacủachọnlọctựnhiênvàditru yềndựa trên nhiễm sắc thể (chromosomes) Về cơ bản, một số tập tham số ngẫu nhiênđược áp dụng cho một thuật toán và giá trị tối ưu được tính toán cho mỗi thuật toán.Các tập tốt nhất được pha trộn với nhau, sử dụng sự kết hợp với nhau của các phépchọn lọc (selection), lai ghép (crossover) và đột biến (mutate) Và các tập mới đượcápdụngvớithuậttoánchođếnkhithuđượcgiátrịthamsốtốiưu. cha mẹ
Giải thuật di truyền dựa trên học thuyết chọn lọc tự nhiên (học thuyết tiến hoá)và nó cho phép đạt được những điểm lân cận cực trị toàn cục Tuy nhiên, nếu điểmxuất phát của quá trình tìm kiếm nằm trong vùng của cực trị toàn cục thì thuật toánEM lại cho phép đạt được kết quả tốt Vì vậy, trong một số bài toán, có thể kết hợpthuậttoánEMvớigiảithuật ditruyềnGA[146]đểđạtđượckếtquảmongmuốn.
Bước 2 Thực hiện EM với 0 cho đến khi nó hội tụ đến EM ;Bước
3 Thực hiện GA để tìm GA sao cho:L( GA )
≥L( EM );Bước4.ThựchiệnEMvới GA chođếnkhinóhộitụđến GAE
M ;Bước5.Nếu| EM – GAEM |>thì Đặt EM = GAEM ;QuaylạiBước3;Bước6 Xuất GAEM