« Home « Kết quả tìm kiếm

XÂY DỰNG MÔ HÌNH NGÔN NGỮ CHO TIẾNG VIỆT


Tóm tắt Xem thử

- XÂY DỰNG MÔ HÌNH NGÔN NGỮ CHO TIẾNG VIỆT.
- XÂY DỰNG MÔ HÌNH NGÔN NGỮ CHO TIẾNG VIỆT KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Khoa học máy tính Cán bộ hướng dẫn: Tiến sĩ Lê Anh Cường.
- Mô hình ngôn ngữ là một bộ phận quan trọng của lĩnh vực xử lý ngôn ngữ tự nhiên.
- Có rất nhiều lĩnh vực trong xử lý ngôn ngữ tự nhiên sử dụng mô hình ngôn ngữ như: kiểm lỗi chính tả, dịch máy hay phân đoạn từ.
- Trong luận văn này này, chúng tôi sử dụng chủ yếu bộ công cụ mã nguồn mở SRILIM để xây dựng mô hình ngôn ngữ cho tiếng Việt, sau đó áp dụng mô hình ngôn ngữ đã tạo ra để tính toán độ hỗn loạn thông tin của văn bản và dịch máy thống kê.
- Kết quả có được sẽ là cơ sở chính để chúng tôi chỉ ra phương pháp làm mịn nào là tốt nhất khi sử dụng trong việc xây dựng mô hình ngôn ngữ tiếng Việt.
- Mô hình ngôn ngữ Ngram:.
- Khó khăn khi xây dựng mô hình ngôn ngữ N-gram.
- Kích thước bộ nhớ của mô hình ngôn ngữ.
- Ứng dụng của mô hình ngôn ngữ trong mô hình dịch máy thống kê:.
- Mô hình dịch:.
- Bộ công cụ xây dựng mô hình ngôn ngữ - SRILM:.
- Bộ công cụ xây dựng mô hình dịch máy thống kê – MOSES:.
- Áp dụng vào mô hình dịch máy thống kê:.
- 41Bảng 4‑9: điểm BLEU của bản dịch máy với mô hình ngôn ngữ sử dụng dữ liệu huấn luyện có kích thước nhỏ (50Mb).
- 25Hình 3‑7: mô hình dịch dựa trên cây cú pháp.
- Mặc dù con người có thể dễ dàng hiểu và học các ngôn ngữ tự nhiên.
- Các phương pháp xử lý ngôn ngữ tự nhiên dựa trên thống kê không nhắm tới việc con người tự xây dựng mô hình ngữ pháp mà lập chương trình cho máy tính có thể “học” nhờ vào việc thống kê các từ và cụm từ có trong các văn bản.
- Cốt lõi nhất của các phương pháp xử lý ngôn ngữ tự nhiên dựa trên thống kê chính là việc xây dựng mô hình ngôn ngữ..
- Mô hình ngôn ngữ là một phân bố xác suất trên các tập văn bản [2][10].
- Nói đơn giản, mô hình ngôn ngữ có thể cho biết xác suất một câu (hoặc cụm từ) thuộc một ngôn ngữ là bao nhiêu.
- Ví dụ: khi áp dụng mô hình ngôn ngữ cho tiếng Việt: P[“hôm qua là thứ năm.
- 0 Mô hình ngôn ngữ được áp dụng trong rất nhiều lĩnh vực của xử lý ngôn ngữ tự nhiên như: kiểm lỗi chính tả, dịch máy hay phân đoạn từ.
- Chính vì vậy, nghiên cứu mô hình ngôn ngữ chính là tiền đề để nghiên cứu các lĩnh vực tiếp theo.
- Mô hình ngôn ngữ có nhiều hướng tiếp cận, nhưng chủ yếu được xây dựng theo mô hình Ngram.
- Về thực nghiệm, luận văn có sử dụng bộ công cụ SRILM để xây dựng mô hình ngôn ngữ cho tiếng Việt với các phương pháp làm mịn khác nhau.
- Bằng việc áp dụng các mô hình ngôn ngữ khác nhau đó vào dịch máy thống kê, chúng tôi đã chỉ ra được phương pháp làm mịn nào là tốt nhất khi áp dụng cho mô hình ngôn ngữ.
- 1.3 Cấu trúc của luận văn: Luận văn có cấu trúc như sau: Chương 2 xem xét các vấn đề liên quan đến mô hình ngôn ngữ Ngram, các sự cố gặp phải và cách khắc phục.
- Chương 3 đề cập đến lý thuyết mô hình dịch máy thống kê.
- Chương 2 Mô hình ngôn ngữ Ngram: 2.1 Khái quát:.
- Nhiệm vụ của mô hình ngôn ngữ là cho biết xác suất của một câu weq \l(\o\ac( ,1))weq \l(\o\ac( ,2))...weq \l(\o\ac( ,m)) là bao nhiêu.
- Theo công thức này, mô hình ngôn ngữ cần phải có một lượng bộ nhớ vô cùng lớn để có thể lưu hết xác suất của tất cả các chuỗi độ dài nhỏ hơn m.
- Rõ ràng, điều này là không thể khi m là độ dài của các văn bản ngôn ngữ tự nhiên (m có thể tiến tới vô cùng).
- Với công thức này, ta có thể xây dựng mô hình ngôn ngữ dựa trên việc thống kê các cụm có ít hơn n+1 từ.
- Mô hình ngôn ngữ này gọi là mô hình ngôn ngữ N-gram..
- 2.3 Khó khăn khi xây dựng mô hình ngôn ngữ N-gram 2.3.1 Phân bố không đều:.
- 2.3.2 Kích thước bộ nhớ của mô hình ngôn ngữ Khi kích thước tập văn bản huấn luyện lớn, số lượng các cụm Ngram và kích thước của mô hình ngôn ngữ cũng rất lớn.
- Nó không những gây khó khăn trong việc lưu trữ mà còn làm tốc độ xử lý của mô hình ngôn ngữ giảm xuống do bộ nhớ của máy tính là hạn chế.
- Để xây dựng mô hình ngôn ngữ hiệu quả, chúng ta phải giảm kích thước của mô hình ngôn ngữ mà vẫn đảm bảo độ chính xác.
- Có vài kỹ thuật giúp lựa chọn được những tham số này, tùy theo tập huấn luyện và mô hình ngôn ngữ.
- Việc chọn hằng số không chính xác, sẽ làm ảnh hưởng lớn đến độ chính xác của cả mô hình ngôn ngữ.
- Mô hình nội suy: Peq \l(\o\ac( ,IKN))(weq \l(\o\ac( ,i))|weq \l(\o\ac( ,i-n+1))..weq \l(\o\ac( ,i-1.
- 2.5 Kỹ thuật làm giảm kích thước dữ liệu: Các kỹ thuật này làm giảm kích thước của mô hình ngôn ngữ.
- Pruning (loại bỏ): làm giảm số lượng các cụm Ngram trong mô hình ngôn ngữ bằng cách loại bỏ các cụm Ngram không quan trọng · Quantization (lượng tử hóa): thay đổi cấu trúc thông tin của mỗi cụm Ngram trong mô hình ngôn ngữ.
- Compression (nén): nén cấu trúc dữ liệu sử dụng trong việc lưu trữ các cụm Ngram trong mô hình ngôn ngữ 2.5.1 Loại bỏ (pruning): Số lượng các cụm Ngram xuất hiện vài lần trong tập huấn luyện thường là lớn so với tổng số các cụm Ngram.
- [10] Những cụm Ngram này thường rất ít sử dụng trong thực tế, do đó việc tồn tại của chúng có thể làm ảnh hưởng đến độ chính xác của mô hình ngôn ngữ.
- 2.5.1.1 Cắt bỏ (cut-off): Phương pháp này là phương pháp thông dụng, thường được sử dụng để làm giảm kích thước mô hình ngôn ngữ.
- Phương pháp cut-off hoạt động như sau: Nếu cụm Ngram xuất hiện ít hơn k lần trong tập văn bản huấn luyện thì cụm Ngram đó sẽ bị loại bỏ ra khỏi mô hình ngôn ngữ.
- Nhưng ngược lại, nếu k quá nhỏ, thì kích thước của mô hình ngôn ngữ cũng giảm không đáng kể.
- Chọn k theo phương pháp chạy thử nhiều lần nghĩa là ta dùng phương pháp cut-off cho mô hình ngôn ngữ với nhiều giá trị k khác nhau rồi đánh giá độ hỗn loạn thông tin(perplexity) của tập văn bản đầu vào sau khi sử dụng phương pháp cut-off.
- Sau khi có kết quả, ta sẽ chọn tham số k sao cho mô hình ngôn ngữ là hiệu quả nhất (độ hỗn loạn thông tin của tập văn bản huấn luyện và kích thước mô hình ngôn ngữ đều thấp).
- Tuy nhiên, để đạt được một mô hình ngôn ngữ hiệu quả thì đây là một phương pháp tốt.
- Phương pháp này tuy nhanh hơn nhưng độ chính xác không cao bằng phương pháp thứ nhất đã đề cập ở trên 2.5.1.2 Sự khác biệt trọng số (Weighted difference): Phương pháp cut-off chỉ quan tâm đến việc loại bỏ các cụm Ngram có tần số thấp, trong khi phương pháp weighted difference(sự khác biệt trọng số) thì quan tâm đến nhiều thông tin trong mô hình ngôn ngữ hơn như mối quan hệ giữa các cụm Ngram, xác suất của từng cụm Ngram.
- Nếu w.d.factor nhỏ hơn một ngưỡng nhất định, thì cụm Ngram đó sẽ bị loại bỏ khỏi mô hình ngôn ngữ.
- Trong thực tế, phương pháp này mất nhiều thời gian hơn phương pháp cut-off do phải tính toán hệ số w.d.factor cho tất cả các cụm Ngram trong mô hình ngôn ngữ.
- 2.5.2 Đồng hóa (Quantization): Thuật toán quantization (đồng hóa) làm giảm số lượng bit dùng để lưu trữ các biến trong mô hình ngôn ngữ.
- Sau đó, thay thế tần số của các cụm Ngram trong mô hình ngôn ngữ bằng chỉ số của tần số trong bảng.
- b, tức là kích thước mô hình ngôn ngữ đã giảm so với cách lưu trữ ban đầu.
- Sau bước này, chúng ta sẽ thu được một bảng tần số với ít giá trị hơn, cũng tức là đã làm giảm kích thước của mô hình ngôn ngữ đi một lần nữa..
- 2.5.3 Nén (Compression): Mô hình ngôn ngữ nào cũng có một cấu trúc dữ liệu.
- Do đó nếu cấu trúc dữ liệu đó được nén lại bằng các thuật toán nén, thì kích thước của mô hình ngôn ngữ tất nhiên là giảm.
- Tuy nhiên, khi một mô hình ngôn ngữ bị nén, thì độ chính xác và tốc độ của mô hình ngôn ngữ đều giảm (do phải giải nén, hoặc bị mất dữ liệu do thuật toán nén chưa tốt) [10] Do không hiệu quả nên kỹ thuật này hiện nay không còn phổ biến như hai kỹ thuật trên, tuy vẫn được sử dụng bởi Microsoft (trong modul kiểm lỗi chính tả của Microsoft Office 2007).
- 2.6 Độ đo: Để xây dựng được một hình ngôn ngữ hiệu quả, chúng ta phải có cách để đánh giá chúng.
- Dưới đây là một số phương pháp phổ biến để đánh giá một mô hình ngôn ngữ.
- trong ngôn ngữ L.
- Định lý Shannon-McMillan-Breiman đã chỉ ra rằng nếu ngôn ngữ ổn định (chứa các câu gồm các từ với cấu trúc thông dụng) thì công thức trên có thể biến đổi thành: H(L.
- Do vậy, khi tính H(L) của các mô hình ngôn ngữ khác nhau trên ngôn ngữ L, mô hình nào cho H(L) nhỏ hơn thì mô hình ngôn ngữ đó thể hiện chính xác ngôn ngữ L hơn..
- Độ hỗn loạn thông tin (perplexity) cũng được dùng làm thước đo để đánh giá độ chính xác của một mô hình ngôn ngữ.
- Độ hỗn loạn thông tin của một mô hình ngôn ngữ nói chung, có thể hiểu đơn giản là số lựa chọn từ trung bình mà mô hình ngôn ngữ phải đưa ra quyết định.
- Như vậy, độ hỗn loạn thông tin càng thấp, thì độ chính xác của mô hình ngôn ngữ càng cao.
- 2.6.3 Error rate – Tỉ lệ lỗi: Người ta thường sử dụng độ đo entropy và perplexity để so sánh độ chính xác của các mô hình ngôn ngữ khi xây dựng một mô hình ngôn ngữ tổng quát.
- Trong các bài toán cụ thể, người ta sử dụng tỉ lệ lỗi để so sánh độ chính xác của các mô hình ngôn ngữ [10].
- Việc sử dụng tỉ lệ lỗi để đánh giá đưa lại kết quả chính xác nhất khi muốn chọn lựa mô hình ngôn ngữ phù hợp để giải quyết bài toán cụ thể.
- Chương 3 Ứng dụng của mô hình ngôn ngữ trong mô hình dịch máy thống kê:.
- Các luật này dựa trên từ vựng hoặc cú pháp của ngôn ngữ.
- Chính vì vậy, dịch máy thống kê có tính khả chuyển cao áp dụng được cho bất kỳ cặp ngôn ngữ nào..
- 3.2.2 Nguyên lý và các thành phần: Cho trước câu ngôn ngữ nguồn f, mục tiêu của mô hình dịch máy là tìm ra câu e của ngôn ngữ đích sao cho xác suất P(e|f) là cao nhất.
- Trong đó P(f|e) là xác suất câu ngôn ngữ nguồn là bản dịch của câu ngôn ngữ đích, còn P(e) là xác suất xuất hiện câu e trông ngôn ngữ.
- Để mô hình dịch là chính xác, thì công việc tiếp theo là phải tìm ra tất cả các câu e* có thể có trong ngôn ngữ đích từ câu ngôn ngữ nguồn f.
- Mô hình ngôn ngữ: Tính toán được xác suất của câu ngôn ngữ nguồn.
- Thành phần này chính là mô hình ngôn ngữ đã được mô tả ở phần 2 của luận văn · Mô hình dịch: Cho biết xác suất của câu ngôn ngữ nguồn là bản dịch từ câu ngôn ngữ đích.
- Bộ giải mã: Tìm kiếm tất cả các câu ngôn ngữ đích e có thể có từ câu ngôn ngữ nguồn f.
- Hình 3‑1: mô hình dịch máy thống kê từ tiếng Anh sang tiếng Việt Mô hình dịch của mô hình ngôn ngữ đã được trình bày ở chương 2 của luận văn.
- 3.2.3 Mô hình dịch:.
- Mô hình dịch có 3 hướng tiếp cận chính:.
- Mô hình dịch dựa trên từ (word-based).
- Mô hình dịch dựa trên cụm từ (phrase-based).
- Mô hình dịch dựa trên cú pháp (syntax-based).
- Tuy nhiên, để cho đơn giản, mô hình dịch máy dựa trên từ (word-based) đưa ra một giả định: mỗi từ của ngôn ngữ đích chỉ tương ứng với một từ của ngôn ngữ nguồn.
- Nếu áp dụng giả định này, chúng ta có thể biểu diễn một sự tương ứng từ bằng chỉ số của các từ trong ngôn ngữ nguồn tương ứng với từ trong ngôn ngữ đích.
- 3.2.3.2 Mô hình dịch dựa trên từ (Word-based): Mô hình dịch dựa trên từ là thế hệ đầu tiên của mô hình dịch máy thống kê và được nghiên cứu và phát triển bởi IBM[2].
- Cụ thể hơn, giả sử câu ngôn ngữ nguồn là eeq \l(\o\ac( ,1))eeq \l(\o\ac( ,2))...eeq \l(\o\ac( ,n)) và câu ngôn ngữ đích là feq \l(\o\ac( ,1))feq \l(\o\ac( ,2))...feq \l(\o\ac( ,m.
- Do đó, một sự tương ứng giữa các từ của câu ngôn ngữ nguồn và câu ngôn ngữ đích có thể biểu diễn bằng một dãy m số: {aeq \l(\o\ac( ,1.
- 3.2.3.3 Mô hình dịch dựa trên cụm từ (Phrase-based):.
- Với mô hình dịch này, một câu ngôn ngữ nguồn e được tách thành các cụm từ ,1))eq \x\to(\a(,e)).
- sau đó các cụm này được dịch ra thành các cụm thuộc ngôn ngữ đích ,i))eq \x\to(\a(,f)).
- Với mô hình dịch này, một câu ngôn ngữ nguồn e sẽ được phân tích thành cây cú pháp[8].
- Cây cú pháp này sẽ được sắp xếp lại để phù hợp với cú pháp của câu ngôn ngữ đích.
- Hình 3‑7: mô hình dịch dựa trên cây cú pháp.
- Câu ngôn ngữ đích e tốt nhất chính là câu làm cho giá trị P(f|e)*P(e) là lớn nhất[2]