Bigram là gì

Hướng dẫn đầy đủ về mô hình ngôn ngữ N-Gram trong Xử lý ngôn ngữ tự nhiên

Tác giả blog: Sachin Dedwal, Mohit Naik, Srushti Paigude, Saiesh Prabhu, Yesh Pareek [VIT, Pune NLP_G 9]

Nguồn: Analytics Vidya

Mô hình Ngôn ngữ là gì?

Một mô hình ngôn ngữ học cách dự đoán xác suất của một chuỗi các từ. Việc sử dụng các kỹ thuật thống kê và xác suất khác nhau để dự đoán xác suất xuất hiện của một chuỗi các từ nhất định trong một cụm từ được gọi là mô hình ngôn ngữ [LM]. Để thiết lập nền tảng cho các dự đoán từ của họ, các mô hình ngôn ngữ đánh giá một lượng lớn dữ liệu văn bản. Chúng được sử dụng trong các ứng dụng xử lý ngôn ngữ tự nhiên [NLP], đặc biệt là những ứng dụng xuất văn bản. Một số ứng dụng này có thể được tìm thấy ở đây. Một số ứng dụng này bao gồm dịch máy và trả lời câu hỏi.

Ở đây mục tiêu của chúng tôi là tính xác suất của câu sử dụng từ

P [w] = P [w1, w2, w3, w4,., Wn]

Vì vậy, xác suất của một từ sắp tới:

P [w5 | w1, w2, w3, w4]

Một mô hình tính toán một trong hai điều này:

P [W] hoặc P [Wn | w1, w2, w3, w4,., Wn-1] được gọi là một mô hình ngôn ngữ.

Để tính toán xác suất này, chúng tôi sẽ sử dụng quy tắc chuỗi

P [A, B] = P [A] P [B | A

Một phiên bản tổng quát hơn sẽ là

P [x1, x2, x, x1, x1,] = P [x1] P [x2 | x1] P [x3 | x1, x2] P [xn | x1,, xn-1]

Hoặc là

P [w1, w2, w3, w4, .. wn] = i P [Wi | w1, w2, w3, w4, .. Wi-1]

Vấn đề với cách tiếp cận này là khi một từ chỉ xuất hiện một lần với dữ liệu vì nó sẽ có xác suất cao hơn hoặc thậm chí không có trong dữ liệu đã lấy. Chúng tôi có thể không bao giờ có đủ dữ liệu để ước tính các giá trị hoặc tính toán xác suất.

Vì vậy, chúng tôi đưa ra một giả định đơn giản, tức là, Giả định Markov

P [w1, w2, w3, w4, .. wn] i P [wi | wi-k wi 1

Mô hình N-gram

Mô hình N-gram là gì?

N-gram là một chuỗi n mục liền nhau từ một mẫu văn bản hoặc bài phát biểu nhất định. Các mục có thể là âm vị, chữ cái, từ hoặc các cặp cơ sở tùy theo ứng dụng. Các n-gram thường được thu thập từ một văn bản hoặc ngữ liệu lời nói.

N- gram là một cách giúp máy móc hiểu một từ trong ngữ cảnh của nó để hiểu rõ hơn về nghĩa của từ đó. Ví dụ: Chúng tôi cần đặt vé sớm so với Chúng tôi cần đọc cuốn sách này sớm. Trước đây book được sử dụng như một động từ và do đó là một hành động. Cuốn sách sau này được sử dụng như một danh từ. N tính bằng n-gram chỉ là số từ bạn muốn xem.

Một mô hình chỉ đơn giản dựa vào tần suất xuất hiện của một từ mà không cần xem các từ trước đó được gọi là unigram . Nếu một mô hình chỉ xem xét từ trước đó để dự đoán từ hiện tại, thì nó được gọi là bigram . Nếu hai từ trước đó được xem xét, thì đó là một mô hình bát quái .

Nguồn: Mô hình N-gram

Ví dụ, đối với câu Con bò nhảy qua bãi cỏ . Nếu N = 2 [được gọi là bigram], thì n-gram sẽ là:

· con bò

· Bò nhảy

· Nhảy qua

· qua

· cỏ

Vì vậy, bạn có 5 n-gam trong trường hợp này. Chúng tôi chuyển từ-> bò sang bò-> nhảy sang nhảy-> qua, v.v., về cơ bản là di chuyển một từ về phía trước để tạo bigram tiếp theo.

Nếu N = 3, n-gam sẽ là:

· Con bò nhảy

· Bò nhảy qua

· Nhảy qua

· Trên bãi cỏ

Vì vậy, bạn có 4 n-gam trong trường hợp này. Khi N = 1 , đây được gọi là unigrams và về cơ bản đây là các từ riêng lẻ trong một câu. Khi N = 2 , đây được gọi là bigram, và khi N = 3, nó được gọi là bát quái . Khi N> 3, điều này thường được gọi là bốn gam hoặc năm gam, v.v.

Vậy chúng ta có thể có bao nhiêu n-gam trong một câu?

Nếu X = số từ trong câu K cho trước thì số n gam của câu k là,

N-gam k = X- [N-1]

Các ứng dụng của mô hình N-gram

N-gram được sử dụng trong nhận dạng giọng nói, nhận dạng ngôn ngữ, biểu diễn văn bản, lọc thông tin, v.v. Tương tự như vậy, các mô hình N-gram được sử dụng trong trí tuệ nhân tạo để cung cấp các câu tự nhiên hơn trong ngôn ngữ đích.
Khi sửa lỗi chính tả, đôi khi việc tra cứu từ điển sẽ không giúp ích được gì. như một ví dụ, trong cụm từ trong khoảng mười lăm thợ mỏ, từ 'minuets' có thể là một từ hợp lệ trong từ điển nhưng nó không chính xác trong ngữ cảnh này. Các mô hình N-gram có thể sửa các lỗi như vậy.
Nói chung, nhiều ứng dụng NLP giống như mô hình N-gram bao gồm gắn thẻ từng phần của giọng nói, tạo lưỡi, tương tự từ, trích xuất tình cảm và nhập văn bản dự đoán.

Đánh giá mô hình N-gram

Cách tốt nhất để đánh giá một mô hình là kiểm tra xem nó được dự đoán tốt như thế nào trong quá trình thử nghiệm ứng dụng end-to-end. Phương pháp này được gọi là đánh giá bên ngoài, nhưng tốn kém thời gian và chi phí. Cách tiếp cận thay thế là xác định một số liệu phù hợp và đánh giá nó bất kể ứng dụng được gọi là đánh giá nội tại. Điều này không đảm bảo hiệu suất của ứng dụng. Tuy nhiên, đây là bước đầu tiên nhanh chóng để xác minh hiệu suất thuật toán. Tính phức tạp: Tính khó hiểu [đôi khi được gọi tắt là PP] của một mô hình ngôn ngữ trong một câu kiểm tra là xác suất nghịch đảo của câu kiểm tra, được chuẩn hóa bởi số lượng từ. Từ mối quan hệ nghịch đảo với xác suất, giảm thiểu sự phức tạp có nghĩa là tối đa hóa xác suất của tập kiểm tra. Sự phức tạp cũng có thể được liên kết với khái niệm entropy trong lý thuyết thông tin. Trong bất kỳ mô hình n-gram nào,điều quan trọng là phải bao gồm các dấu ở đầu và cuối câu. xác suất tổng thể mà tất cả các ngôn ngữ sẽ cộng lại thành một. Tuy nhiên, tất cả các phép tính phải bao gồm các điểm đánh dấu kết thúc nhưng không bao gồm các điểm đánh dấu bắt đầu trong số lượng mã thông báo từ.

Nguồn: Ablimit et al. 2015, trang trình bày 45

Làm mịn

Chúng ta sẽ làm gì với những thuật ngữ có trong vốn từ vựng của chúng ta [và không phải là xa lạ] nhưng lại xuất hiện trong một ngữ cảnh không xác định trong một bài kiểm tra? Chúng ta sẽ phải lấy một chút khối lượng xác suất từ ​​những lần xuất hiện phổ biến hơn và đưa nó cho những sự kiện mà chúng ta chưa từng thấy để cấm một mô hình ngôn ngữ gán xác suất 0 cho những sự kiện không nhìn thấy này. Làm mịn hoặc chiết khấu là thuật ngữ chỉ loại điều chỉnh này.

Làm mịn Laplace

Trước khi chúng tôi chuẩn hóa số lượng bigram thành xác suất, cách tiếp cận đơn giản nhất để làm trơn chúng là thêm một vào tất cả chúng. Tất cả các số đếm trước đây là số 0 bây giờ sẽ có số đếm là một, số đếm của một sẽ có số đếm là hai, v.v. Làm mịn Laplace là tên của thuật toán.

Mặc dù làm mịn Laplace không hoạt động đủ tốt để được sử dụng trong các mô hình n-gram gần đây, nhưng nó cung cấp một sự giới thiệu tuyệt vời cho nhiều khái niệm được tìm thấy trong các thuật toán làm mịn khác.

Số lượng ci được chuẩn hóa bằng tổng số mã thông báo từ N là ước tính khả năng xảy ra tối đa không có răng của xác suất unigram của từ wi:

P [wi] = ci / N

Ngoài ra, chúng ta phải thay đổi mẫu số để tính thêm V quan sát bởi vì có V số hạng trong từ điển và mỗi số hạng đã được tăng lên:

Plaplace [wi] = ci + 1 / N + V

Bằng cách thiết lập số đếm đã điều chỉnh c, có thể dễ dàng xác định kỹ thuật làm mịn tác động đến tử số như thế nào. Bởi vì chúng tôi chỉ đơn giản là sửa đổi tử số và thêm 1, chúng tôi sẽ cần nhân với một hệ số có thể chuẩn hóa để xác định số lượng này.

C * i = ci + 1 * N / N + V

Sau đó, số lượng đã hiệu chỉnh có thể được chuẩn hóa bằng N-từ, mang lại giá trị xác suất.

Thêm-k làm mịn

Một tùy chọn để thêm một lần làm mịn là chuyển một phần nhỏ hơn của khối lượng xác suất từ ​​các sự kiện được quan sát thành các sự kiện chưa biết. Thay vì thêm 1, chúng ta thêm một số phân số k [.5? .05? .01?] Vào mỗi số đếm. Kết quả là, add-k làm mịn là tên của thuật toán.

Việc làm mịn add-k đòi hỏi sự tồn tại của một cơ chế xác định k, ví dụ, cơ chế này có thể được thực hiện bằng cách tối ưu hóa trên devset. Mặc dù thực tế là add-k có lợi cho một số tác vụ [chẳng hạn như phân loại văn bản], nhưng hóa ra nó không tốt trong việc mô hình hóa ngôn ngữ.

Hạn chế và công cụ cho mô hình N-gram

nguồn: Google hình ảnh

Khi một mô hình được đào tạo dựa trên các tác phẩm của Shakespeare, nó sẽ không đưa ra dự đoán chính xác khi áp dụng cho một thể loại khác. Do đó, chúng ta phải đảm bảo rằng ngữ liệu đào tạo giống với ngữ liệu kiểm tra. Giống như nhiều mô hình thống kê, mô hình N-gram phụ thuộc rất nhiều vào kho dữ liệu đào tạo. Kết quả là, các xác suất thường mã hóa thông tin cụ thể về một kho dữ liệu đào tạo. Hơn nữa, hiệu suất của mô hình N-gram dao động khi giá trị của N thay đổi. Một vấn đề đáng chú ý với phương pháp MLE là dữ liệu thưa thớt. Nói cách khác, mỗi N-gam xuất hiện với số lần đáng kể có thể có một ước tính xác suất đáng tin cậy. Tuy nhiên, vì bất kỳ ngữ liệu nào cũng bị hạn chế, nên không thể tránh khỏi một số chuỗi từ tiếng Anh hoàn toàn có thể chấp nhận được sẽ vắng mặt. Kết quả là,bất kỳ ma trận N-gram của ngữ liệu đào tạo nào cũng chắc chắn chứa một số lượng đáng kể các lần xuất hiện của giả định N-gram xác suất bằng không. Trong một nghiên cứu, mô hình bigram hoạt động tốt hơn mô hình unigram trong phân tích tình cảm, nhưng số lượng tính năng tăng lên. Do đó, các chiến lược lựa chọn tính năng tốt được yêu cầu khi mở rộng mô hình N-gram sang tập dữ liệu lớn hơn hoặc chuyển sang N.Mục cảnh khoảng cách dài hơn được các mô hình N-gram nắm bắt kém. Theo nghiên cứu, tăng hiệu suất bị hạn chế sau 6 gam.Các mô hình N-gram bắt được bối cảnh ở khoảng cách xa hơn. Theo nghiên cứu, tăng hiệu suất bị hạn chế sau 6 gam.Các mô hình N-gram bắt được bối cảnh ở khoảng cách xa hơn. Theo nghiên cứu, tăng hiệu suất bị hạn chế sau 6 gam.

Công cụ phần mềm cho N-gram

Nguồn: google hình ảnh

N-gram, tm, tau và RWeka là một vài gói R hữu ích. Phân tích N-gram được hỗ trợ bởi gói gọn gàng. Phương pháp NTLK nltk. utils. ngrams có sẵn trong Python []. nltk.lm là một gói mở rộng hơn. Gói ngram có thể tính toán độ tương tự chuỗi n-gram bên ngoài NLTK. SRILM là một bộ công cụ tiện dụng để phát triển các mô hình ngôn ngữ được viết bằng C ++ và có nguồn miễn phí. Điều này bao gồm tiện ích ngram-f. Điều này bao gồm định dạng ngram-tiện ích, có thể đọc hoặc ghi các mô hình N-gram ở định dạng dự phòng ARPA phổ biến, được thiết kế bởi Doug Paul tại MIT Lincoln Labs. Bạn có thể dùng thử bản demo mô hình dự đoán N-gram được triển khai trong R Shiny trên mạng. Nó dựa trên nghiên cứu của Google Sách. Nó hiển thị cách N-gram kết hợp với một tập hợp các từ. Đưa ra một chuỗi các từ, nó cho thấy số lượng N-gram đã thay đổi như thế nào trong những năm qua.

Video liên quan

Chủ Đề