Đang tải... (xem toàn văn)
Mô hình rút trích cụm từ đặc trưng ngữ nghĩa trong tiếng việt
Mô hình rút trích cm t c trng ng ngha trong ting Vit i PH LC A GII THIU JWPL 1. Tng quan Java-based Wikipedia Library (JWPL) là th vin phn mm c phát trin cho các h thng truy xut thông tin t ngun tài nguyên Wikipedia. JWPL cung cp các chc nng rút trích và tìm kim các tri thc ng ngha cho các ng dng x lý ngôn ng t nhiên vi hiu sut cao và kh nng m rng ln. 2. Kin trúc ca JWPL JWPL hot ng trên c s d liu ã c ti u hóa to ra t c s d liu thô (dumps) ca wikipedia. Thun li ca mô hình kin trúc JWPL (Hình A) là: + X lý hiu qu các tác v x lý ngôn ng t nhiên trên phm vi rng ln. + Cho phép k tha các kt qu tìm kim. + Kh nng tích hp vi các ng dng hng i tng. JWPL CSDL Wikipedia / Wiktionary XML dump Phiên bn Ting Vit CSDL Wikipedia / Wiktionary XML dump Phiên bn Ting Anh CSDL ã ti u hóa CSDL ã ti u hóa ng dng ng dng ng dng Truy xut các i tng Bin i d liu Hình A: Kin trúc h thng ca JWPL Mô hình rút trích cm t c trng ng ngha trong ting Vit ii JWPL c thit k vi giao din lp trình hng i tng tp trung khai thác các i tng chính nh WIKIPEDIA, PAGE và CATEGORY. Trong ó: - i tng WIKIPEDIA: c s dng thit lp các kt ni vi c s d liu và tìm kim các i tng PAGE và CATEGORY. Ngoài vic h tr tìm kim bng t khoá hoc thông qua các giao din truy vn i tng WIKIPEDIA, JWPL còn cung cp c ch lp t ng trên các tác v truy xut các i tng trang và th loi. - i tng PAGE: trang thông tin có th là mt bài vit bình th ng nói v mt khái nim hay mt thc th. Mt trang thông tin c!ng có th là mt trang i hng - trang cha liên kt n trang có tên khác (có th thông dng hn) nói v cùng mt tài. Mt trang thông tin c!ng có th là mt trang nh hng - mt bài vit gii thích v ý ngha ph" bin nht ca thut ng, bên di lit kê các liên kt n các bài vit có ta tng t hoc có khái nim tng t, giúp #nh hng cho ng i $c n úng bài vit mà h$ ang tìm. - i tng CATEGORY: i din cho nhng th loi ca Wikipedia và cho phép truy vn n nhng bài vit có trong th loi ó. Nó còn cung cp cách truy vn n cha m% hoc con ca chúng. - Ngoài ra, JPWL còn cung cp i tng CATEGORYGRAPH – Cây th loi cho phép tìm ra ng d&n ng'n nht gia hai th loi. 3. Cách to CSDL ti u hóa a. Yêu cu ca h thng - H CSDL mysql ( ti xung t http://dev.mysql.com/downloads/) - JDK (ti xung t http://java.sun.com/javase/downloads/index.jsp). - JWPL( ti xung t http://www.ukp.tu-darmstadt.de/software/ - Gii nén tp tin va ti xung thu c th mc có cha các tp tin sau: + JWPLDataMachine.jar. + Languages.txt. + Tables.sql. d. Quá trình chuyn i Bc 1: To mt c s d liu mysql bng lnh: Mô hình rút trích cm t c trng ng ngha trong ting Vit iii [path/file thc thi mysql]-u[user] –p[password] create database [tên database]; Bc 2: a tables.sql vào c s d liu va to bng lnh Import: [file thc thi mysql] -uUSER -p tên c s d liu va to trên < tables.sql Bc 3: Ti xung 3 tp tin (ti #a ch( http://download.wikipedia.org) [LANGCODE]wiki-[DATE]-pages-articles.xml.bz2 [LANGCODE]wiki-[DATE]-pagelinks.sql.gz [LANGCODE]wiki-[DATE]-categorylinks.sql.gz Bc 4: Gii nén 3 tp tin trên và chy lnh sau chuyn "i [file thc thi java] [ngôn ng] [tên _CATEGORY_chính] [tên các thành phn cu to nên category] [th mc cha 3 tp tin trên] Kt qu chy dòng lnh này trên ubuntu 8.0 nh sau: Kt qu thu c th mc cha các tp tin sau: Category.txt category_inlinks.txt category_outlinks.txt category_pages.txt Mô hình rút trích cm t c trng ng ngha trong ting Vit iv MetaData.txt Page.txt page_categories.txt page_inlinks.txt page_outlinks.txt page_redirects.txt PageMapLine.txt Bc 5: a các tp tin va to c vào c s d liu to trên bng lnh import: [path\mysqlimport] –u[USER] –p[pass] --default-character-set=utf8 {tên c s d liu to trên} {txt_file1} {txt_file2} . {txt_file_n} Kt qu thu c c s d liu ã c ti u. Mô hình rút trích cm t c trng ng ngha trong ting Vit v PH LC B GII THIU VN PHM JAPE 1. Tng quan B x lý vn phm JAPE (Java Annotation Patterns Engine) là mt phn ca kin trúc x lý vn bn (GATE), cho phép c t các lut so trùng các m&u và có th xác #nh các hành ng c!ng nh các chuyn "i s) xy ra nu lut so trùng vi mt cm t trong vn bn. Lun án ã iu ch(nh b x lý JAPE nhm iu khin các thông tin liên quan ti Ontology và so trùng các m&u. 2. Vn phm JAPE Vn phm JAPE bao gm mt tp các công on, mi công on bao gm mt tp lut (tp lut ca các m&u hoc tp lut các thao tác thc hin). Các công on c thc thi mt cách tun t và to thành các b chuyn trng thái hu hn cho các chú gii (annotation). Mi lut ca vn phm JAPE bao gm hai phn: phn bên trái và phn bên phi. Phn bên trái ca lut cha mt m&u chú gii. Trong m&u chú gii có th cha các toán hng ca biu thc chính qui (nh *, ?, +). Phn bên phi ca lut là phn thao tác cho chú gii. Mi vn phm c b't u bng mt trong hai tùy ch$n sau: - Control: cho phép xác #nh phng pháp so trùng lut cho vn phm. - Debug: t bng “true” nu vn phm c thc thi trong c ch Appelt (c ch ch$n m&u có chiu dài ln nht trong các m&u c so trùng. Nu tr ng hp hai m&u so trùng có chiu dài bng nhau thì c ch này ch$n m&u c so trùng sm nht) và khi có nhiu kt qu so trùng thì các m&u c so trùng s) c th hin thit b# u ra. Mt ví d minh h$a hai lut n gin trong tr ng hp oán nhn mt t có nhãn là date nh sau: Rule: date1 ( ({Token.kind=="number"})((({SpaceToken})*{Token.string=="-"} Mô hình rút trích cm t c trng ng ngha trong ting Vit vi ({SpaceToken})*|({SpaceToken})*{Token.string=="/"}({SpaceToken})*) {Token.kind=="number"})+ )+ --> date Rule: date2 ( ({Token.string=="ngày"}|{Token.string=="Ngày"}) ({SpaceToken})+ {Token.kind=="number"}({SpaceToken})+ ({Token.string=="tháng"}|{Token.string=="Tháng"})({SpaceToken})+ {Token.kind=="number"}({SpaceToken})+ ({Token.string=="nm"}|{Token.string=="Nm"})({SpaceToken})+ {Token.kind=="number"} ({SpaceToken})+ )+ --> date Trong ó: Token.kind – Loi Token, SpaceToken – Ký t tr'ng, * có ngha là không hoc nhiu, + có ngha là mt hoc nhiu, và | có ngha là Hoc. Vi lut date1 s) oán nhn các dng date nh 1/2/2006, 1-2-2006, …. Và lut date2 s) oán nhn các dng date nh Ngày 2 Tháng 3 Nm 2006, Ngày 03 tháng 03 nm 2006,…. 3. Các tp lut vn phn JAPE dùng trong lun án GATE cung cp mt tp lut vn phm JAPE có s*n trong thành phn có tên g$i là ANNIE, giúp nhn ra và so trùng mt s lp c bn nh Con ng i, Ni chn, T" chc,… Tuy nhiên, tp lut này áp dng cho các thc th có tên ting Anh và da trên thành phn phân lp ting Anh có s*n ca GATE. Vì th, lun án ã c t ba tp lut hoàn toàn mi so vi ANNIE và áp dng cho công on gán nhãn t loi, nhn din cm danh t và xác #nh CTTNN cho câu trong ting Vit. 3.1 Tp lut áp dng cho công on gán nhãn t loi // ChauNguyen 12/09/2006 Phase:postprocess Input: Token SpaceToken Options: control = appelt Mô hình rút trích cm t c trng ng ngha trong ting Vit vii //------- ChauNguyen starts ------ Rule: PP (({Token.string=="Anh"}|{Token.string=="anh"}|{Token.string=="Em"}|{Token.string=="em"}|{Token.string=="Thy"}|{Token.string=="Cháu"}|{Token.string=="cháu"}|{Token.string=="Chú"}|{Token.string=="chú”}|{Token.string=="Thng"}|{Token.string=="thng"}|{Token.string=="Cô"}|{Token.string=="cô"}|{Token.string=="Bác"}|{Token.string=="bác"}|{Token.string=="Thy"}|{Token.string=="thy"})({SpaceToken})+({Token.string=="đó"}|{Token.string=="ấy"}|{Token.string=="kia"}|{Token.string=="ny"}))+ :pp --> { gate.AnnotationSet toNew = (gate.AnnotationSet)bindings.get("pp"); //get the tokens java.util.ArrayList tokens = new java.util.ArrayList(toNew); //define a comparator for annotations by start offset Collections.sort(tokens, new gate.util.OffsetComparator()); String text = ""; Iterator tokIter = tokens.iterator(); while(tokIter.hasNext()) text += (String)((Annotation)tokIter.next()).getFeatures().get("string"); gate.FeatureMap features = Factory.newFeatureMap(); features.put("kind", "word"); features.put("string", text); features.put("length", Integer.toString(text.length())); features.put("orth", "Pp"); annotations.add(toNew.firstNode(), toNew.lastNode(), "vnWord", features); } //------- ChauNguyen end ------ …. + trên trình bày mt lut cho phép gán nhãn t loi Pp cho các t ting Vit trong tp lut c xây dng cho công on gán nhãn t loi. 3.2 Tp lut áp dng cho công on nhn din cm danh t // ChauNguyen 08/08/2007 Phase:postprocess Input: vnWord SpaceToken Options: control = appelt //------- ChauNguyen starts ------ Rule: Kp1 ( ( ({vnWord.POS=="Ng"}|{vnWord.POS=="Nt"}|{vnWord.POS=="Pp"}) :t1 ({SpaceToken})*({vnWord.POS=="Nu"}|{vnWord.POS=="Nn"}) :t2 ({SpaceToken})*({vnWord.POS=="Nu"}|{vnWord.POS=="Nn"}|{vnWord.POS=="Ng"}|{vnWord.POS=="Nt"}) :T1 ({SpaceToken})*({vnWord.POS=="Np"}|{vnWord.POS=="Nc"}|{vnWord.POS=="Na"}) :T2 ({SpaceToken})*({vnWord.POS=="Aa"}|{vnWord.POS=="An"})* :s1 ({SpaceToken})*({vnWord.POS=="Nl"})* :s2 Mô hình rút trích cm t c trng ng ngha trong ting Vit viii ) )+ :Kp1 --> { gate.AnnotationSet toNew = (gate.AnnotationSet)bindings.get("Kp1"); gate.AnnotationSet lannsT1 = (gate.AnnotationSet)bindings.get("T1"); gate.AnnotationSet lannsT2 = (gate.AnnotationSet)bindings.get("T2"); gate.AnnotationSet lannsS1 = (gate.AnnotationSet)bindings.get("s1"); gate.AnnotationSet lannsS2 = (gate.AnnotationSet)bindings.get("s2"); //get the tokens java.util.ArrayList tokens = new java.util.ArrayList(toNew); //define a comparator for annotations by start offset Collections.sort(tokens, new gate.util.OffsetComparator()); String text = ""; Iterator tokIter = tokens.iterator(); while(tokIter.hasNext()) text+=(String)((Annotation)tokIter.next()).getFeatures() .get("string"); gate.FeatureMap features = Factory.newFeatureMap(); features.put("kind", "vnNounPhrase"); features.put("string", text); features.put("length", Integer.toString(text.length())); features.put("orth", "vnNP"); if ((lannsT1 != null) && (lannsT1.size() > 0)) { features.put("T1", lannsT1); } if ((lannsT2 != null) && (lannsT2.size() > 0)) { features.put("T2", lannsT2); } if ((lannsS1 != null) && (lannsS1.size() > 0)) { features.put("S1", lannsS1); } if ((lannsS2 != null) && (lannsS2.size() > 0)) { features.put("S2", lannsS2); } annotations.add(toNew.firstNode(),toNew.lastNode(),"vnNounPhrase", features); } + trên trình bày mt lut cho phép nhn din mt m&u cu trúc cm danh t ting Vit trong tp lut c xây dng cho công on nhn din cm danh t. 3.3 Tp lut áp dng cho công on xác nh CDTTNN Lun án minh h$a mt lut cho phép xác #nh CTTNN trong tr ng hp gia các cm t d tuyn có t ch( quan h nh sau. // ChauNguyen 09/09/2008 Phase:postprocess Input: vnWord vnNounPhrase Options: control = appelt //------- ChauNguyen starts ------ Rule: KNP ( Mô hình rút trích cm t c trng ng ngha trong ting Vit ix ({vnNounPhrase}) : NP1 ({vnWord}) : word ({vnNounPhrase}) : NP2 )+ :KNP --> { gate.AnnotationSet toNew = (gate.AnnotationSet)bindings.get("KNP"); gate.AnnotationSet wordSet = (gate.AnnotationSet)bindings.get("word"); Annotation wordAnnot = (Annotation)wordSet.iterator().next(); String lsWordString = (String)wordAnnot.getFeatures().get(gate.creole.vnPOSTagger.Ont_Constants.msStringFeature); if (lsWordString.equals("c\u00f3") || lsWordString.equals("bao g\u1ed3m") || lsWordString.equals("ch\u1ee9a")) { gate.AnnotationSet keyPhraseSet = (gate.AnnotationSet)bindings.get("NP2"); //get the tokens java.util.ArrayList tokens = new java.util.ArrayList(keyPhraseSet); //define a comparator for annotations by start offset Collections.sort(tokens, new gate.util.OffsetComparator()); String text = ""; Iterator tokIter = tokens.iterator(); while(tokIter.hasNext()) text += (String)((Annotation)tokIter.next()).getFeatures().get("string"); gate.FeatureMap features = Factory.newFeatureMap(); features.put("kind", "vnKeyNounPhrase"); features.put("string", text); features.put("length", Integer.toString(text.length())); features.put("orth", "KeyNP"); annotations.add(keyPhraseSet.firstNode(), keyPhraseSet.lastNode(), "vnKeyNounPhrase", features); } else if (lsWordString.equals("c\u1ee7a") || lsWordString.equals("thu\u1ed9c")) { gate.AnnotationSet keyPhraseSet = (gate.AnnotationSet)bindings.get("NP1"); //get the tokens java.util.ArrayList tokens = new java.util.ArrayList(keyPhraseSet); //define a comparator for annotations by start offset Collections.sort(tokens, new gate.util.OffsetComparator()); String text = ""; Iterator tokIter = tokens.iterator(); while(tokIter.hasNext()) text += (String)((Annotation)tokIter.next()).getFeatures().get("string"); gate.FeatureMap features = Factory.newFeatureMap(); features.put("kind", "vnKeyNounPhrase"); features.put("string", text); features.put("length", Integer.toString(text.length())); Mô hình rút trích cm t c trng ng ngha trong ting Vit x features.put("orth", "KeyNP"); annotations.add(keyPhraseSet.firstNode(), keyPhraseSet.lastNode(), "vnKeyNounPhrase", features); } else if (lsWordString.equals("v\u00e0")|| lsWordString.equals("hay") || lsWordString.equals("ho\u1eb7c")) { gate.AnnotationSet keyPhraseSet1 = (gate.AnnotationSet)bindings.get("NP1"); gate.AnnotationSet keyPhraseSet2 = (gate.AnnotationSet)bindings.get("NP2"); //get the tokens java.util.ArrayList tokens1 = new java.util.ArrayList(keyPhraseSet1); java.util.ArrayList tokens2 = new java.util.ArrayList(keyPhraseSet2); //define a comparator for annotations by start offset Collections.sort(tokens1, new gate.util.OffsetComparator()); Collections.sort(tokens2, new gate.util.OffsetComparator()); String text1 = "", text2 = ""; Iterator tokIter = tokens1.iterator(); while(tokIter.hasNext()) text1 += (String)((Annotation)tokIter.next()).getFeatures().get("string"); tokIter = tokens2.iterator(); while(tokIter.hasNext()) text2 += (String)((Annotation)tokIter.next()).getFeatures().get("string"); gate.FeatureMap features1 = Factory.newFeatureMap(); features1.put("kind", "vnKeyNounPhrase"); features1.put("string", text1); features1.put("length", Integer.toString(text1.length())); features1.put("orth", "KeyNP"); annotations.add(keyPhraseSet1.firstNode(), keyPhraseSet1.lastNode(), "vnKeyNounPhrase", features1); gate.FeatureMap features2 = Factory.newFeatureMap(); features2.put("kind", "vnKeyNounPhrase"); features2.put("string", text2); features2.put("length", Integer.toString(text2.length())); features2.put("orth", "KeyNP"); annotations.add(keyPhraseSet2.firstNode(), keyPhraseSet2.lastNode(), "vnKeyNounPhrase", features2); } } [...]... B”, “sau B” Mô hình rút trích c m t b Quan h t c tr ng ng ngh a trong ti ng Vi t ng tác: “A làm cho B”, “A c n tr B”, “A quy nh B”, “A lo i tr B”, “A là m c ích c a B”, IV Quan h gi a s tình v i chu c nh, quan h gi a m t s tình v i chu c nh có th là: a Quan h #nh v# trong không gian: “A di n ra m t kho ng t B b Quan h #nh v# trong th i gian: “A di n ra n m/th k B” xxxiv n C” Mô hình rút trích c m t... a các nhân v t trong các truy n TMNT là gì? Trong truy n có bao nhiêu Ninja rùa? Ninja rùa n gì? M ng truy n hình cáp nào trình chi u TMNT? xvi Mô hình rút trích c m t 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 c tr ng ng ngh a trong ti ng Vi t... là ngh s, d ng c m trong nh ng n m 70 cho n ca s nào? Ông ã hát trong n m 2000 cho nhãn hi u a nào? Li t kê nh ng bài hát ông ã ghi âm Tên khai sinh c a Meg Ryan là gì? Bà k t hôn v i ai? xxix Mô hình rút trích c m t 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 c tr ng ng ngh a trong ti ng Vi t Bà g p ch ng c a mình khi nào? Meg Ryan óng vai chính trong nh ng b phim nào?... “Siêu nhân” ? Nh ng b phim “Siêu nhân” ã c s n xu t trong nh ng n m nào? xxi Mô hình rút trích c m t 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 c tr ng ng ngh a trong ti ng Vi t N di-n viên nào ã cùng óng vai trong các b phim “Siêu nhân” v i Reeve? Reeve b't... t i Hoa K trong n m 2004? Nhà s n xu t xe h i nào l n u tiên gi i thi u xe hybrid? Xe Prius c gi i thi u vào n m nào? Xe hybrid chi m bao nhiêu ph n tr m trong t"ng s xe c bán t i Hoa K trong n m 2004? Nh ng nhà s n xu t xe h i nào hi n nay ang s n xu t xe hybrid? Michael Brown ang gi ch c v gì tr c khi tr thành ng i ng u c a FEMA? Ai là ng i ti n nhi m c a Brown t i FEMA? xiv Mô hình rút trích c m... xxii Mô hình rút trích c m t 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 c tr ng ng ngh a trong ti ng Vi t Ai là C u th Giá tr# nh t (MVP) c a gi i u? B nh u t y là b nh ung th trong b ph n nào c a c th ? Lo i thu c nào c s d ng ch a tr# b nh a u t y? Hình. .. t trong nh ng b c tranh c a Hoàng t là bao nhiêu? Hoàng t th ng dùng lo i dung môi s n nào? Các ch ph" bi n c a Hoàng t là gì? Hoàng t nào cùng tr ng bày các b c tranh c a mình trong cu c tri n lãm hai hoàng t cùng v i hoàng t Charles t i Luân ôn? Công trình vòng tròn á ã c b't u Anh khi nào? Có kho ng bao nhiêu vòng tròn á ã c phát hi n t i Anh? á Stonehenge c xây d ng khi nào? xxiii Mô hình rút trích. .. phim? Quán bar nào t i Florida ã c th hi n trong b phim? xxiv Mô hình rút trích c m t 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 c tr ng ng ngh a trong ti ng Vi t Máy tính i n t “Deep Blue” có th ch i c trò gì? Ai ã giành chi n th'ng trong tr n u gi a Gary Kasparov và máy... n sách dành cho tr1 em trong n m c a Whitbread n m 2000? Rowling sinh ra thành ph nào? Rowling sinh s ng thành ph nào vào n m 2000? Công ty H.J Heinz có tr s t i thành ph nào? Ai ã tr thành CEO (Giám c i u hành) c a công ty trong n m 1998? Ai là ng i th a h ng c c a công ty ch t trong m t tai n n hàng không? N c s t cà chua n m Heinz c gi i thi u vào n m nào? xxvi Mô hình rút trích c m t 328 329 330... Giáo h i M c môn có bao nhiêu thành viên? Li t kê các quan ch c chính ph c b u c là ng i c a Giáo h i M c môn Tr s c a Giáo h i M c môn c t âu? Có bao nhiêu nhà th ang ho t ng trên toàn th gi i? Núi l a Pinatubo n m trên o nào? Núi l a Pinatubo ã phun trào vào n m nào? Bao nhiêu ng i ã b# ch t? Bao nhiêu ng i ã ph i s tán? Núi l a Pinatubo ã không ho t ng c bao lâu? xxviii Mô hình rút trích c m t 423 . xut các i tng Bin i d liu Hình A: Kin trúc h thng ca JWPL Mô hình rút trích cm t c trng ng ngha trong ting Vit ii JWPL c thit. t't cho ch gì? Mô hình rút trích cm t c trng ng ngha trong ting Vit xviii 335. Toà án c thành lp vào nm nào? 336. Trong nm 1990, bao