1. Trang chủ
  2. » Luận Văn - Báo Cáo

Một số cải tiến giải thuật earley cho việc phân tích cú pháp trong xử lý ngôn ngữ tự nhiên

9 16 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Bài báo trình bày giải thuật Earley cải tiến nhằm loại bỏ hoàn toàn việc phải duyệt qua các luật sinh dư thừa. Đồng thời, chúng tôi sẽ bàn tới hướng giải quyết hiện tượng bùng nổ tổ hợp dựa trên cải tiến trong. Mời các bạn cùng tham khảo.

TẠP CHÍ KHOA HỌC, Đại học Huế, Số 25, 2004 MỘT SỐ CẢI TIẾN GIẢI THUẬT EARLEY CHO VIỆC PHÂN TÍCH CÚ PHÁP TRONG XỬ LÝ NGƠN NGỮ TỰ NHIÊN Nguyễn Gia Định, Trần Thanh Lương, Lê Viết Mẫn Trường Đại học Khoa học, Đại học Huế Mở đầu Giải thuật Earley [1, 2] số giải thuật sử dụng để phân tích cú pháp xử lý ngơn ngữ tự nhiên Nó giải thuật tổng qt, phân tích văn phạm phi ngữ cảnh Nhưng giải thuật nhiều hạn chế cần khắc phục Đầu tiên, Kilbury [3] nhận xét giải thuật Earley không hiệu xử lý ngôn ngữ tự nhiên Vì phải duyệt qua q nhiều luật sinh khơng cần thiết (trong gọi luật dư thừa) giai đoạn đoán nhận (predict) Đối với văn phạm lớn, điều làm giảm đáng kể tiến độ xử lý Mặt khác, giải thuật Earley xử lý ngơn ngữ tự nhiên cịn gặp phải tượng bùng nổ tổ hợp, muốn phân tích câu ngơn ngữ tự nhiên phân tích phải kiểm tra từ vài chuỗi đến hàng chục, hàng trăm chuỗi từ loại khác Tác giả Phan Thị Tươi nêu lên vấn đề [6] đồng thời nêu lên hướng giải cho giải thuật Earley Chart Nhưng cải tiến cho giải thuật Earley [6] hiệu trường hợp câu nhập vào Còn câu nhập vào sai giải thuật khơng hiệu Với điều trên, này, chúng tơi trình bày giải thuật Earley cải tiến nhằm loại bỏ hoàn toàn việc phải duyệt qua luật sinh dư thừa Đồng thời, bàn tới hướng giải tượng bùng nổ tổ hợp dựa cải tiến [6] Bài báo tổ chức sau: Phần – Chúng tơi trình bày giải thuật Earley Phần bao gồm nhận xét ví dụ cho giải thuật Earley Phần – Chúng tơi nói đến luật dư thừa mà giải thuật Earley phải duyệt qua giải thuật Earley cải tiến Đồng thời, đưa đề nghị dạng luật sinh để hỗ trợ tăng tốc độ tiến trình xử lý Phần – Chúng bàn tượng bùng nổ tổ hợp, phương pháp giải [6] cuối đề phương pháp giải trường hợp câu nhập sai mà phương pháp [6] thiếu Phần – Chúng thực giả mã cho giải thuật Earley cải tiến 43 Giải thuật Earley: Cho G=(V, W, S, P) văn phạm phi ngữ cảnh, w=a 1…an  W* Khi đó, A luật có chấm A  P Giải thuật Earley biểu diễn thông qua việc xây dựng bảng chứa tập luật có chấm Người ta xây dựng bảng Earley với cột Ii (i=0 n), cột I0 nhận giá trị khởi tạo, n độ dài chuỗi từ loại nhập Mỗi ô có giá trị: giá trị gốc để biết luật phát sinh từ cột nào, luật có chấm Ví dụ: Giá trị gốc Luật có chấm SCN VN VNĐT DT 2.1 Giải thuật: Giải thuật bao gồm ba bước (tại cột Ii): (1) Đoán nhận (Predict): Đối với luật có ký tự khơng kết thúc bên phải dấu chấm, ta thêm luật mà ký tự khơng kết thúc vế trái luật với giá trị gốc i Điều có nghĩa là, với [AB, j] Ii ta thêm [B, i] vào Ii BP (2) Duyệt (Scan): Đối với luật mà ký tự kết thúc bên phải dấu chấm, luật chuyển sang cột Ii+1 với dấu chấm dịch sau ký tự kết thúc Điều có nghĩa là, với [Aa, j] đổi thành [Aa, i] cột Ii+1 (3) Hồn thiện (Complete): Khi có luật [A, j] chép đổi [BA, k] cột Ij thành [BA, k] cột Ii 2.2 Nhận xét: a Đây dạng phân tích từ xuống bắt đầu với việc đoán nhận Nếu thay đổi thứ tự trên, có kiểu phân tích từ lên b Thơng thường, phân tích từ xuống có vấn đề với đệ qui trái, thuật toán Earley giải cách: Mỗi luật giống xuất lần cột; nghĩa là, bước thực thuật tốn, trước thêm luật vào bảng phải kiểm tra xem có trùng với luật có cột cần thêm vào khơng Nếu khơng thêm vào, ngược lại khơng thêm vào c Chuỗi từ loại sai cú pháp ta duyệt qua hết luật I i mà Ii+1 rỗng chưa thể kết thúc bảng hợp lệ d Chuỗi từ loại cú pháp kết thúc chuỗi từ loại mà ta có luật khởi tạo cột cuối Nói chung, chuỗi điểm kết thúc chuỗi nhập, mà dấu chấm di chuyển sau ký tự bắt đầu S e Với việc sử dụng giá trị đốn nhận trước ta giúp tránh dư thừa Ví dụ, ta có luật VN  VN BN vị trí kết thúc chuỗi nhập Thơng thường, ta đốn nhận BN, trường hợp không nên, ta nên làm từ chuỗi nhập 44 Mặt khác, giá trị đoán nhận trước gây phức tạp, tăng số lượng luật lưu trữ f Độ phức tạp thời gian thuật toán O(n 3), với n độ dài chuỗi nhập (bằng số lượng cột bảng giảm 1) 2.3 Ví dụ: Cho văn phạm G với luật sinh sau: S  CN VN CN  DL DT CN  DT VN  ĐT CN VN  VN BN BN  GT CN DT  mẹ DT  DT  chân DL  ĐT  rửa GT  cho Chú thích: CN – Chủ ngữ VN – Vị ngữ DT – Danh từ DL – Danh từ loại ĐT – Động từ BN – Bổ ngữ GT – Giới từ chuỗi nhập là: mẹ rửa chân cho Với thuật tốn Earley trình bày ta có bảng sau: ROOT S DT mẹ ĐT rửa DL DT chân GT cho DT S CN VN CN DT VN ĐT CN CN DL CN DL DT BN GT CN CN DT .DT CN DL DT S CN VN CN DL DT DT mẹ VN ĐT CN CN DL DT BN GT CN CN DT VN ĐT CN CN DT DT S CN VN CN DT VN VN BN DL VN VN BN DL DT chân VN VN BN DL S CN VN DT mẹ ĐT rửa DT mẹ ROOT S DT mẹ ROOT S DT DT BN GT CN DT DT chân DT Chân GT cho DT chân Giải vấn đề luật dư thừa giải thuật Earley: Với giải thuật nêu trên, ta nhận thấy có nhiều luật dư thừa lưu trữ bảng Earley Như đồng nghĩa với việc phải duyệt qua nhiều luật dư thừa Kilbury nhận xét [3] Qua nghiên cứu, chúng tơi nhận thấy luật dư thừa có dạng sau: 45 - Thứ nhất, luật có kí tự kết thúc vế trái mà khơng khớp với giá trị đốn nhận - Thứ hai, luật khơng dẫn đến đệ qui trái 3.1 Dạng luật sinh: Để giải triệt để vấn đề này, thực lập luật sinh với dạng riêng Tất luật sinh thuộc vào hai dạng sau: - A,   V* , - Aa, a  W Dạng luật phù hợp với văn phạm phi ngữ cảnh Với luật sinh thuộc vào hai dạng luật dư thừa là: - Luật có vế phải ký tự kết thúc (Aa) - Luật có vế phải ký tự không kết thúc mà không dẫn đến đệ qui trái (AB) 3.2 Giải thuật cải tiến: Với dạng luật trên, giải thuật cải tiến lại hai bước sau: (1) Đoán nhận: Với [AB, j] Ii, - Lấy luật từ điển luật sinh - Duyệt qua luật dạng Ba, khớp với giá trị đốn nhận đưa luật khớp với luật dạng BB vào bảng Earley Ngược lại khơng so khớp với giá trị đốn nhận đưa tồn luật dạng B vào bảng Earley (2) Hoàn thiện: Như giải thuật Earley cũ Giải thuật cải tiến hai bước, bước quét bỏ dạng luật sinh giai đoạn đoán nhận giải bước Giải thuật cải tiến giải vấn đề luật dư thừa, khơng cịn phải duyệt qua luật khơng cần thiết phân tích cú pháp Như thế, cải thiện tốc độ tiến trình xử lý nhiều Ngồi ra, cịn giảm không gian lưu trữ Nhưng giải thuật cải tiến có độ phức tạp thời gian O(n3) Vì giải thuật thay đổi nội dung bên cấu trúc giải thuật Earley chưa thay đổi cấu trúc giải thuật nên độ phức tạp thời gian cũ 3.3 Ví dụ: Với ví dụ phần 2.3, có bảng sau: ROOT S DT mẹ ĐT rửa DL DT chân GT cho DT S CN VN CN DT VN ĐT CN CN DL DT CN DL DT BN GT CN CN DT CN DL DT S CN VN CN DL DT DT chân VN ĐT CN CN DL DT BN GT CN CN DT VN ĐT CN CN DT S CN VN CN DT VN VN BN DT mẹ VN VN BN DL VN VN BN DT S CN VN ĐT rửa ROOT S BN GT CN GT cho 46 ROOT S 4 Giải vấn đề bùng nổ tổ hợp: Hiện tượng bùng nổ tổ hợp xảy từ thuộc vào nhiều từ loại khác Nhưng đặc điểm dễ nhận thấy tổ hợp từ loại sinh từ câu ln có đoạn từ loại giống tổ hợp từ loại Ví dụ: (Vídụ lấy [6]) Đoạn câu cần phân tích: biên chế hưởng lương từ ngân sách Có 12 chuỗi từ loại xuất sau: A11 N22 L10 V43 N23 F10 N23 N50 A11 N22 L10 V43 N23 F11 N23 N50 A11 V40 L10 V43 N23 F10 N23 N50 A11 V40 L10 V43 N23 F11 N23 N50 F10 N22 L10 V43 N23 F10 N23 N50 F10 N22 L10 V43 N23 F11 N23 N50 F10 V40 L10 V43 N23 F23 N23 N50 F10 V40 L10 V43 N23 F10 N23 N50 F11 N22 L10 V43 N23 F10 N23 N50 F11 N22 L10 V43 N23 F11 N23 N50 F10 V40 L10 V43 N23 F10 N23 N50 F10 V40 L10 V43 N23 F11 N23 N50 Dựa vào đặc điểm này, Phan Thị Tươi [6] nêu phương pháp để tăng tốc độ phân tích cú pháp sau: Nếu phân tích thất bại kiểm tra chuỗi, so trùng chuỗi cịn lại với đoạn vừa kiểm tra thành công tiếp tục quy trình phân tích vị trí chuỗi khác có chuỗi dài trùng với đoạn phân tích Q trình lặp lại phân tích duyệt qua hết chuỗi Lúc đó, câu nhập xác nhận cú pháp Ngược lại đến chuỗi cuối mà khơng phân tích thành cơng phân tích kết luận câu nhập vào khơng cú pháp Đây phương pháp hay, giúp ta tránh phải phân tích lại phân tích Nhưng phương pháp lại hiệu trường hợp câu nhập vào đúng, trường hợp câu nhập vào sai khơng hiệu Qua nghiên cứu, chúng tơi cịn nhận thấy cịn có tượng trùng phần (chỉ phần ngắn đoạn kiểm tra thành công) bên cạnh tượng trùng đoạn nói Điều cho thấy giảm thêm số bước phân tích Thừa kế từ phương pháp [6] bổ sung điều phát hiện, đưa phương pháp sau: Ta xếp chuỗi tổ hợp từ loại theo thứ tự Như thế, chuỗi sau chuỗi xét chuỗi có khả trùng đoạn phân tích Khi kiểm tra chuỗi thất bại ta việc so khớp đoạn vừa kiểm tra thành công với chuỗi sau lấy số từ 47 loại so khớp liên tục đầu chuỗi Việc phân tích thực tiếp với chuỗi sau vị trí khơng so khớp Bước giải thuật xếp chuỗi tổ hợp từ loại, thực bước để sử dụng phương pháp [6] Khi xếp, rõ ràng chuỗi từ loại sau chuỗi vừa kiểm tra có xác suất trùng đoạn vừa kiểm tra thành công lớn Như thế, ta việc thực tiếp tục phân tích với chuỗi từ loại tiếp sau Giải thuật cải tiến thừa kế trọn vẹn phương pháp [6], đồng thời cịn thay cơng đoạn tìm kiếm chuỗi trùng khớp bước đơn giản tăng giá trị duyệt tổ hợp chuỗi từ loại lên Đây cải tiến đáng kể Cài đặt: Với cải tiến trên, cài đặt theo giả mã sau: Bảng xây dựng thành mảng hai chiều Mỗi ô record với hai trường Một trường số nguyên nhận giá trị gốc, trường kiểu string nhận luật có chấm Giá trị i, j khai báo tồn cục Vào: tổ hợp chuỗi từ loại, tập luật Ra: số tổ hợp đúng, -1 tất sai Phần chương trình: Function KiemTraKetThucDung:Boolean; Begin Thực hồn thiện đốn nhận cho luật cột cuối Nếu gặp luật ROOT S KiemTraKetThucDung:=True; Ngược lại, KiemTraKetThucDung:=False; End; Function DoanNhan(KKT):Boolean; Begin Lấy luật sinh dạng KKTa If a = giá trị đoán nhận then Đưa luật KKTa so khớp vào bảng cột i Đưa luật KKTa vào bảng cột i+1 với giá trị gốc i Lấy luật dạng KKTKKT đưa vào bảng cột i j:=j+1; DoanNhan:=True; Exit; End if Đưa luật dạng KKT từ điển vào bảng i:=i+1; End; 48 Procedure HoanThien; Begin Lấy vế trái luật giá trị gốc Duyệt qua cột có số giá trị gốc Sao chép luật có dấu chấm trước vế trái luật xét mà không trùng luật giá trị gốc với luật có cột i i:=i+1; End; Procedure KhoiTao; Begin Đưa luật ROOT S vào ô (i=1,j=0) End; Function NSK(SK, WCSet: String):Integer; Begin NSK = 0; tu = Lấy từ loại SK; SK = Xoá từ loại SK; While tu "" Begin p = InStr(1, WCS, tu); //Xác định vị trí từ loại WCS If p = Then NSK = NSK + 1; tu = Lấy từ loại SK; SK = Xoá từ loại SK; WCS = Xoá từ loại WCS Else Break; End; End; End; Function PhanTich:Integer; // số tổ hợp đúng, -1 tất sai Begin Parse = -1 SK = "" For tổ hợp từ loại Begin WCSet=chuỗi từ loại 49 n = NSK(SK, WCSet) If n = Then KhoiTao; i := 1; j := 0; Else SK = Left(SK, n * 3) WCSet = Mid(WCSet, n * + 1) i:=1; j:=n+1; End; Repeat Lấy giá trị đoán nhận trước If giá trị đoán nhận trước giá trị kết thúc chuỗi nhập then If KiemTraKetThucDung then Ghi nhận chuỗi từ loại PhanTich:=j; Exit; Else Ghi nhận chuỗi từ loại kết thúc sai Break; End; Else Duyệt qua cột j Lấy ký tự sau dấu chấm If ký tự sau dấu chấm ký tự không kết thúc then If DoanNhan then break; Else { A} HoanThien; End; Cho đến hết cột j; If hết cột mà tiếp tục sang cột khác then Ghi nhận chuỗi từ loại sai Break; End; End; Until giá trị đoán nhận trước giá trị kết thúc chuỗi nhập; End; End; 50 Kết luận: Qua trình nghiên cứu, đưa giải thuật cải tiến Giải thuật giải hai hạn chế giải thuật Earley luật dư thừa bùng nổ tổ hợp Những cải tiến giúp hồn thiện giải thuật Earley để phân tích cú pháp xử lý ngôn ngữ tự nhiên TÀI LIỆU THAM KHẢO Jay Earley An efficient context-free parsing algorithm, Commun ACM 13, (Feb 1970) 94 - 102 Jay Earley An Efficient Context-Free Parsing Algorithm, PhD Thesis, CarnegieMellon University (1968) J Kilbury Earley - basierte Algorithmen für direktes Parsen mit ID/LPGrammatiken., KIT - Rep 16, Institut für angewandte Informatik, TU Berlin, Berlin (June 1984) Phan Thị Tươi Trợ giúp bắt lỗi tả tiếng Việt tự động máy tính (giai đoạn 1), Đề tài cấp thành phố, Trường Đại học Bách Khoa TPHCM (1998) Phan Thị Tươi Trợ giúp bắt lỗi tả tiếng Việt tự động máy tính (giai đoạn 2), Đề tài cấp thành phố, Trường Đại học Bách Khoa TPHCM (2001) Phan Thị Tươi Cải tiến số giải thuật phân tích cú pháp xử lý ngơn ngữ tự nhiên, Tạp chí Tin học Điều khiến học, T.18, S.3 (2002) 279 - 284 Phan Thị Tươi Trình biên dịch, NXB GD (1996) TĨM TẮT Trong báo này, chúng tơi trình bày số cải tiến giải thuật Earley cho việc phân tích cú pháp nhằm loại bỏ hoàn toàn việc phải duyệt qua luật sinh dư thừa giải tượng bùng nổ tổ hợp dựa kết Phan Thị Tươi SOME MODIFICATIONS OF EARLEY’S ALGORITHM FOR PARSING IN THE NATURAL LANGUAGE PROCESSING Nguyen Gia Dinh, Tran Thanh Luong and Le Viet Man College of Sciences, University of Hue SUMMARY In this paper, we introduce some modifications of Earley’s algorithm for parsing in order to exclude scanning the useless productions and solve the combination explosion appearance in depending on Phan Thi Tuoi’s works 51 ... đưa giải thuật cải tiến Giải thuật giải hai hạn chế giải thuật Earley luật dư thừa bùng nổ tổ hợp Những cải tiến giúp hoàn thiện giải thuật Earley để phân tích cú pháp xử lý ngơn ngữ tự nhiên. .. Thị Tươi Cải tiến số giải thuật phân tích cú pháp xử lý ngơn ngữ tự nhiên, Tạp chí Tin học Điều khiến học, T.18, S.3 (2002) 279 - 284 Phan Thị Tươi Trình biên dịch, NXB GD (1996) TĨM TẮT Trong báo... bày số cải tiến giải thuật Earley cho việc phân tích cú pháp nhằm loại bỏ hoàn toàn việc phải duyệt qua luật sinh dư thừa giải tượng bùng nổ tổ hợp dựa kết Phan Thị Tươi SOME MODIFICATIONS OF EARLEY? ??S

Ngày đăng: 19/05/2021, 22:26

Xem thêm:

w