Bản dịch tự động sơ bộ, chất lượng thấp: có thể còn lỗi và câu chữ chưa tự nhiên. Bản này sẽ được thay bằng bản dịch tốt hơn. Bản gốc →
Thống kê ngôn ngữ
A.PIPERSKI
SỰ PHÁT TRIỂN CỦA MÁY TÍNH đã dẫn đến việc tạo ra các bộ sưu tập lớn các văn bản số hóa bằng các ngôn ngữ khác nhau - cái gọi là ngữ liệu ngôn ngữ. Những tập hợp này có thể được xử lý bằng các phương pháp thống kê toán học. Các mô hình toán học, đôi khi đơn giản nhưng hiệu quả một cách đáng ngạc nhiên, cho phép các nhà ngôn ngữ học tính toán cung cấp cho nhân loại và người dùng cá nhân lời giải bài toán liên quan đến xử lý ngôn ngữ tự nhiên tự động: nhận dạng giọng nói, phát hiện ngôn ngữ văn bản và dịch máy, phân loại văn bản theo chủ đề, trích xuất kiến thức từ văn bản, trích xuất từ khóa, phân tích cảm tính văn bản (tức là tìm hiểu xem nó có chứa đánh giá tích cực hay tiêu cực), phát hiện thư rác, tạo bot trò chuyện, v.v. Hãy xem xét hai bài toán - phát hiện tự động ngôn ngữ văn bản và sửa lỗi chính tả, tốt lời giải trong số đó dựa trên phân tích tần suất của từng chữ cái và từ riêng lẻ, cũng như sự kết hợp của chúng trong văn bản thực. Điều đáng ngạc nhiên là cách tiếp cận này cho phép bạn giải quyết những bài toán này mà không cần có kiến thức về các quy tắc ngữ pháp của ngôn ngữ hoặc ý nghĩa của các văn bản được phân tích. Xác định ngôn ngữ của văn bản. Giả sử rằng máy tính có nhiệm vụ xác định ngôn ngữ mà văn bản sau được viết:
Đối với tất cả những điều đó, toán học là một môn khoa học khắt khe, nó cũng là một đất nước có tính thẩm mỹ.
Cụm từ tiếng Bungari này có nghĩa là “Mặc dù toán học là một môn khoa học chặt chẽ, nhưng nó có
Từ cuốn sách “Thành phần toán học” (M.: Mathematical Etudes, 2019).
DOI: https://doi.org/10.4213/kvant20191102
và khía cạnh thẩm mỹ." Máy tính không nói được ngôn ngữ, nhưng nó có một danh sách các ngôn ngữ, một trong số đó văn bản này phải được gán. Chúng tôi sẽ giả định rằng phạm vi ứng viên không quá rộng: tiếng Anh, tiếng Belarus, tiếng Bungari, tiếng Đức, tiếng Nga, tiếng Ukraina, tiếng Pháp. Ý tưởng đơn giản nhất nảy ra trong đầu là xác định ngôn ngữ theo thứ tự bảng chữ cái. Trong trường hợp của chúng tôi, đây là tiếng Cyrillic, vì vậy chúng tôi có thể loại bỏ ngay tiếng Anh, tiếng Đức và tiếng Pháp. Nhưng phương pháp này sẽ không giải quyết hoàn toàn bài toán, chẳng hạn, nó không đối phó tốt với tiếng Nga và tiếng Bulgaria: bảng chữ cái tiếng Bulgaria là một phần của tiếng Nga (không có chữ cái Ё, ы, е trong tiếng Bulgaria), vì vậy bất kỳ văn bản tiếng Bulgaria nào cũng có thể bị nhầm lẫn với tiếng Nga. Mối quan hệ giữa bảng chữ cái tiếng Nga và tiếng Ukraina phức tạp hơn: tiếng Ukraina không có chữ cái Ъ, nhưng có các chữ cái biểu thị các nguyên âm ª, ², ≢ và phụ âm ¥ Nhưng tất cả các chữ cái của cụm từ này đều có mặt. trong đó Tiếng Belarus không có chữ I (chữ ² được sử dụng thay thế), vì vậy nó không phù hợp. Vì vậy, cách tiếp cận theo bảng chữ cái không đáp ứng được nhiệm vụ: còn lại ba ngôn ngữ ứng cử viên. Sự hiện diện của ngữ liệu cho phép người ta phân tích các ngôn ngữ và tìm ra các đặc điểm phân biệt chúng. Ví dụ, trong mã Morse điện báo,. xuất hiện vào nửa đầu thế kỷ 19, các chữ cái được sử dụng thường xuyên nhất được gán các kết hợp dấu chấm và dấu gạch ngang ngắn hơn. Do đó, các chữ cái phổ biến nhất trong tiếng Anh, E và T, được mã hóa bằng một ký tự duy nhất - tương ứng là dấu chấm và dấu gạch ngang.
10
KVANT 2019/№11
Hàng trên cùng của bố cục bàn phím tiếng Anh tiêu chuẩn, kế thừa từ máy đánh chữ, là QWERTY. Và trong cách bố trí của tiếng Đức, hàng quen thuộc với mắt được thay thế bằng QWERTZ - chữ Y trong tiếng Đức được tìm thấy ít thường xuyên hơn nhiều so với Z và được xếp ở ngoại vi. Một ví dụ khác: trong mật mã, các mật mã đơn giản dựa trên việc thay thế chữ cái sẽ mất ý nghĩa khi đặc điểm tần số của ngôn ngữ được nghiên cứu. Đương nhiên, vào thế kỷ 19, việc tính toán tần số được thực hiện thủ công. Giờ đây, với sự ra đời của ngữ liệu, tần số của các chữ cái hoặc từ có thể được tính toán trên máy tính và dữ liệu này sẽ chính xác và khách quan hơn. Nếu chúng ta đồng ý rằng bảng chữ cái tiếng Nga bao gồm 33 chữ cái và một khoảng trắng, thì hóa ra ký tự phổ biến nhất là khoảng trắng (14,46%), tiếp theo là các nguyên âm O (9,42%), E (7,33%), I (6,72%), A (6,52%) và các phụ âm N (5,83%), T (5,56%) (xem hình). Và các chữ cái ít phổ biến nhất là F (0,27%), Ъ (0,03%) và Ё (0,01%). Tất nhiên, trong mỗi văn bản cụ thể, tần số có thể khác với tần số đã cho, nhưng những sai lệch này sẽ không đáng kể. Nhưng trong tiếng Bulgaria, tần số của các chữ cái sẽ khác nhau. Chữ đầu tiên sau dấu cách là bốn nguyên âm giống như trong
trong tiếng Nga, nhưng theo thứ tự ngược lại: A, I, E, O. Chữ Ъ rất hiếm trong tiếng Nga, nhưng trong tiếng Bulgaria, nó được sử dụng thường xuyên hơn nhiều lần: nó biểu thị một nguyên âm đặc biệt, chẳng hạn như chữ “a” ngắn và thậm chí còn được tìm thấy trong chính từ bulgarski. Chữ cái cuối cùng về tần số là b. Tất cả điều này cho thấy tần suất của các chữ cái thực sự là một đặc điểm riêng của ngôn ngữ. Trong phân tích máy tính (ví dụ: khi xác định một ngôn ngữ), văn bản là một chuỗi các chữ cái. Trong mô hình đơn giản nhất, người ta giả định rằng mỗi chữ cái trong chuỗi này xuất hiện độc lập với các chữ cái trước đó, tức là văn bản được xem như một chuỗi các sự kiện ngẫu nhiên độc lập: sau khi “đọc” một vài chữ cái, người đọc không biết điều gì đang chờ đợi mình tiếp theo. Do tính độc lập nên xác suất gặp một chuỗi chữ cái nhất định trong ngôn ngữ đã chọn bằng tích của xác suất (tần suất) xuất hiện của các chữ cái trong ngôn ngữ này. Biết tần suất các chữ cái của từng ngôn ngữ trong số ba ngôn ngữ ứng cử viên, bạn có thể tìm thấy xác suất xuất hiện của toàn bộ cụm từ (xem bảng). Hóa ra xác suất xuất hiện ngẫu nhiên của cụm từ này trong tiếng Bulgaria lớn hơn 300 lần so với tiếng Nga và trong
11
THỐNG KÊ NGÔN NGỮ
Nhiều hơn 300.000 lần so với tiếng Ukraina. Nếu không có thông tin tiên nghiệm về nguồn gốc của cụm từ thì các ngôn ngữ ứng cử viên được coi là bằng nhau. Điều này cho phép bạn so sánh xác suất của một cụm từ xuất hiện trong các ngôn ngữ khác nhau, trình bày chúng theo cách quen thuộc hơn, dưới dạng phần trăm: tiếng Bungari - 99,65%, tiếng Nga - 0,3497%, tiếng Ukraina - 0,0003%. Do đó, chọn phương án có xác suất tối đa, trong ví dụ này chúng ta nhận được đáp số đúng: cụm từ được viết bằng tiếng Bungari. Thật tò mò rằng một thuật toán đơn giản như vậy lại hoạt động tốt ngay cả trên văn bản ngắn. Nhưng điều này không phải lúc nào cũng xảy ra. Ví dụ: đối với tiêu đề của cuốn sách Thành phần toán học, người ta thu được một kết quả không mong muốn: tiếng Bulgaria - 51,55%, tiếng Nga - 40,75%, tiếng Ukraina - 7,7%. Mối quan hệ của thuật toán này với ngôn ngữ Bungari là điều dễ hiểu và có tính chất chung: nó có ít chữ cái hơn ngôn ngữ tiếng Nga hoặc tiếng Ukraina, có nghĩa là tần suất xuất hiện của một chữ cái riêng lẻ trung bình sẽ cao hơn một chút. Do đó, thuật toán sẽ coi hầu hết các văn bản là tiếng Bungari. Độ chính xác của việc xác định ngôn ngữ của văn bản có thể tăng lên nếu chúng ta không xem xét tần số của các chữ cái riêng lẻ mà là tần suất kết hợp các ký tự có độ dài nhất định. Thực tế là, trái ngược với mô hình đơn giản nhất được sử dụng ở trên, các chữ cái trong văn bản thực không độc lập: trên thực tế, mỗi chữ cái phụ thuộc vào chữ cái trước đó, hoặc ít nhất là phụ thuộc vào chữ cái trước đó. Vì vậy, theo quy định của tiếng Nga, sau Ъ chỉ có các chữ cái E, Ё, Yu hoặc Ya mới có thể xuất hiện. Trong tiếng Bungari sau Ъ, bạn cũng có thể tìm thấy chữ L, và khả năng này cao gấp 10 lần so với việc gặp E, Yu và Ya cộng lại. Và trong tiếng Ukraina, tôi hầu như không bao giờ được sử dụng sau dấu cách - điều đó có nghĩa là cụm từ đầu tiên của chúng ta với các từ ima và khó có thể là tiếng Ukraina. Viện sĩ Andrei Andreevich Markov (1856–1922) đã thể hiện ý tưởng này bằng một mô hình toán học, được gọi là “chuỗi Markov” để vinh danh ông. Ông nghiên cứu sự phân bố các nguyên âm và phụ âm trong
chuỗi 20.000 chữ cái trong tiểu thuyết “Eugene Onegin” (chương đầu tiên và phần đầu của chương thứ hai). Kết luận chính là: “Chúng tôi thấy rằng xác suất một chữ cái là nguyên âm thay đổi đáng kể tùy thuộc vào việc nó đứng trước nguyên âm hay phụ âm”. Tính toán của A.A. Markov cho thấy tổng tỷ lệ nguyên âm là 43,2%, nhưng xác suất gặp một nguyên âm sau nguyên âm giảm xuống 12,8% và sau phụ âm tăng lên 66,3%. Hóa ra là trong một văn bản thực tế, chúng ta không xử lý xác suất của các sự kiện ngẫu nhiên độc lập mà xử lý xác suất có điều kiện của các sự kiện xảy ra tuần tự. Trong mô hình Markov, tương lai phụ thuộc vào hiện tại nhưng không cần phân tích quá khứ: ảnh hưởng của nó nằm ở hiện tại. Một ví dụ hàng ngày: khi dự đoán thời tiết ngày mai, bạn có thể tập trung vào ngày hôm nay. Dông mùa đông là hiện tượng hiếm khi xảy ra nên nếu hôm nay có giông thì ngày mai có thể nắng hoặc mưa nhưng khó có khả năng có tuyết. Mặt khác, nếu hôm nay có tuyết thì ngày mai khó có khả năng xuất hiện giông bão. Chuỗi Markov như một công cụ toán học có thể được sử dụng để phân tích sự phân bố không chỉ các nguyên âm và phụ âm trong một ngôn ngữ nhất định mà còn cho tất cả các cặp chữ cái trong bảng chữ cái. Dễ dàng nhận thấy sự phụ thuộc của chữ cái vào chữ cái trước. Ví dụ: trong tiếng Nga, trong số các cặp bắt đầu bằng chữ Z, các kết hợp có khả năng xảy ra cao nhất là ZA (29,67%), ZN (10,18%), (khoảng trắng sau Z; 8,36%) và sau chữ A, các ký hiệu A giống nhau, cho kết quả hoàn toàn khác nhau: AA (0,03%), AN (9,56%), (20,36%). Để lời giải bài toán xác định ngôn ngữ của văn bản, bạn có thể so sánh đặc điểm tần số của các cặp ký tự giống nhau trong các ngôn ngữ khác nhau. Ví dụ: ba cặp đứng đầu trong số các cặp bắt đầu bằng chữ Z: trong văn bản tiếng Nga – ZA, ZN, ; bằng tiếng Ukraina – ZA, , ZN; trong tiếng Bungari - ZA, ZI, ZV. Biết tần số của tất cả các cặp có thể, có thể tìm thấy xác suất trong mô hình Markov của các từ trong mỗi ngôn ngữ ứng cử viên.
12
KVANT 2019/№11
Tần suất của các chữ cái thực sự là một đặc điểm riêng biệt và hơn nữa là đặc điểm hình ảnh của một ngôn ngữ. Dưới đây là biểu đồ của ba ngôn ngữ Slav.
đọc Thành phần toán học, được coi là một dãy M (chữ M là đầu từ), MA, AT, TE, EM, v.v. Xác suất của toàn bộ cụm từ được tính là tích của xác suất của các cặp này. Kết quả (làm tròn) cho đáp số khi được hỏi thứ như vậy có thể xuất hiện ở đâu
sách: Tiếng Bulgaria – 0,06%, Tiếng Nga – 99,94%, Tiếng Ukraina – 0,00003%. Và đối với cụm từ mà cuộc trò chuyện bắt đầu (Với tất cả toán học đó…), mức độ tin cậy vào mô hình Markov gần như tuyệt đối: xác suất cụm từ này được viết bằng tiếng Bungari là 99,99991%!
13
THỐNG KÊ NGÔN NGỮ
Tần suất xuất hiện của hai (hoặc tốt hơn là ba) chữ cái là một đặc điểm rất chính xác của một ngôn ngữ. Phương pháp trên là cơ sở của tất cả các trình phát hiện ngôn ngữ được sử dụng, nổi tiếng nhất là mô-đun trong Google Translate. Hóa ra đối với lời giải ngôn ngữ này bài toán không yêu cầu kiến thức về ngôn ngữ, thống kê thuần túy hoạt động. Sửa lỗi chính tả. Trình soạn thảo văn bản và điện thoại thông minh giải quyết phương pháp bài toán này theo cách tương tự như phương pháp được sử dụng trong phát hiện ngôn ngữ bài toán. Bây giờ, tần số của không phải các chữ cái mà là các từ và trình tự của chúng trong ngôn ngữ đã chọn mới được so sánh. Giả sử rằng người dùng đã nhập cụm từ:
Tay áo của anh ấy hơi đau, và bài toán của máy tính là tìm và sửa lỗi chính tả trong đó. Một người ngay lập tức hiểu rằng từ rukva đã mắc lỗi đánh máy, nhưng từ rukva nên được viết. Chúng ta hãy thử dạy điều này cho máy tính, sử dụng kho ngôn ngữ khổng lồ gồm các văn bản tiếng Nga với tổng chiều dài 16 tỷ từ. Ở giai đoạn đầu tiên, chúng ta sẽ tìm thấy những từ đáng ngờ: những từ không có trong kho ngữ liệu hoặc rất hiếm khi xuất hiện ở đó, chẳng hạn như để xác định, không quá 100 lần (lý do xuất hiện những từ như vậy trong kho ngữ liệu có thể là lỗi chính tả). Và những từ xuất hiện hơn 100 lần sẽ tạo thành từ điển. Đây là thông tin về tần số của bốn từ của chúng tôi trong kho văn bản: his - 46643493, rukva - 50, a little - 3475296, pain - 203993. Theo quy ước, thuật toán quyết định rằng có lỗi đánh máy trong từ rukva. Ở giai đoạn thứ hai, chúng tôi sẽ xác định một tập hợp từ, một trong số đó người dùng có thể muốn nhập. Rõ ràng là những từ này phải giống nhau, theo một nghĩa nào đó gần với từ rukva: không chắc người đó muốn in kolotka, nhưng thứ họ nhận được là rukva. Để đo độ gần của các từ trong ngôn ngữ học, khoảng cách Damerau–Levenshtein (được đặt theo tên
nhà ngôn ngữ học người Mỹ và nhà toán học người Nga). Khoảng cách này bằng số “bước” tối thiểu cần thiết để chuyển từ này sang từ khác. Các bước này là những lỗi tiêu chuẩn, điển hình khi gõ: thay thế một chữ cái bằng một chữ cái khác, thêm hoặc xóa một chữ cái, sắp xếp lại các chữ cái liền kề. Ví dụ: khoảng cách giữa các từ dog và cat là 3: thay thế từ thành k (bạn nhận được kobaka); thay b bằng sh (mèo); loại bỏ chữ a (mèo) đầu tiên. Có một con đường khác có độ dài 3: dog o dog- o bipod o cat. Nhưng sẽ không thể thực hiện chuyển đổi trong chưa đầy 3 bước. Khoảng cách giữa các từ này có đầy đủ tính chất thông thường của khoảng cách giữa các điểm trên mặt phẳng: không âm, đối xứng (khoảng cách từ chó đến mèo bằng khoảng cách từ mèo đến chó), bất đẳng thức tam giác đúng. Bây giờ chúng ta có thể chính thức hóa cảm giác rằng từ rukva có thể dễ dàng được lấy từ từ rukva, nhưng không phải từ từ khuỷu tay: khoảng cách Damerau-Levenshtein từ rukva đến rukva là 1, và từ khuỷu tay đến rukva - 5. Thường có ít lỗi chính tả trong một từ, thường là một từ. Chúng ta hãy tìm trong từ điển tất cả các từ có khoảng cách 1 từ tay áo từ đáng ngờ. Không có nhiều từ ứng cử viên: hand (bỏ c), tay áo (sắp xếp lại a và c), chữ cái (thay p bằng b) và tay áo (thêm a). Bạn có thể dừng ở đây và cung cấp cho người dùng danh sách ứng viên - hãy để họ tự chọn. Ví dụ: đây chính xác là cách hoạt động của tính năng kiểm tra chính tả trong Microsoft Word. Nhưng máy tính có thể tiến xa hơn và cố gắng sửa lỗi đánh máy, tức là chọn ứng viên có khả năng nhất và cung cấp nó cho người dùng (đây là những gì Google Docs thực hiện) hoặc có thể thay thế nó vào chính đề xuất (đây là cách các mô-đun trong điện thoại thông minh thường hoạt động, “giúp” gõ văn bản). Việc lựa chọn một ứng cử viên duy nhất này là giai đoạn tiếp theo của thuật toán, có thể được thực hiện theo nhiều cách khác nhau.
14
KVANT 2019/№11
Cách đơn giản nhất nhưng hoạt động tốt lời giải – chọn từ thường xuyên nhất. Tần số của các từ ứng cử viên trong kho văn bản như sau: cánh tay – 350883, tay áo – 126817, chữ cái – 107262, tay áo – 66094. Như bạn có thể thấy, trong ví dụ Tay áo của anh ấy hơi đau, lựa chọn tự động này trùng khớp với lựa chọn của con người. Nhưng trong các cụm từ Ở đây viết sai tay áo và Tay áo của tôi bị rách, đơn giản nhất lời giải - thay tay áo bằng tay - sẽ sai. Để thuật toán hoạt động thông minh hơn, bằng cách nào đó cần phải tính đến các từ trong ngữ cảnh của cụm từ. Và ở đây chuỗi Markov lại ra tay giải cứu. Hãy sử dụng ý tưởng đã được sử dụng trong phân tích chữ cái và cố gắng dự đoán từ tiếp theo từ từ cuối cùng chúng ta nhìn thấy. Ví dụ: từ sai xuất hiện 50.267 lần trong kho ngữ liệu; Trên thân không có cặp tay áo không đều và tay áo không đều, bàn tay không đều xảy ra 4 lần, sai chữ – 53 lần. Sử dụng ví dụ về cụm từ Ở đây viết sai tay áo, có thể thấy rằng phương pháp chọn cặp từ lân cận thường xuyên nhất sẽ hiệu quả hơn thuật toán đơn giản nhất. Một cải tiến hơn nữa của thuật toán là cả từ đứng trước từ đáng ngờ và từ đến sau từ đó đều được tính đến. Tần số của cả hai cặp được xác định và xác suất tìm được sẽ được nhân lên. Sử dụng ví dụ về cụm từ Tay áo của tôi đã hòa vốn khi không có dữ liệu thống kê, có thể thấy rằng sau khi so sánh các tích xác suất của các cặp, việc chọn cái lớn nhất có vẻ là một giải pháp đáng tin cậy:
tay tôi bị rách; tay áo tôi bị rách; tôi thư thư rách; tay áo của tôi tay áo bị rách.
Điều này dẫn đến việc sửa lỗi đánh máy hoạt động tốt. Tất nhiên, thuật toán này có thể và cần được cải thiện. Đầu tiên, chúng tôi
Xác suất xảy ra lỗi chính tả trong một bước là khác nhau: ví dụ: sắp xếp lại các chữ cái liền kề trong một từ có nhiều khả năng hơn việc thay thế một chữ cái bằng một chữ cái ở xa trên bàn phím (ví dụ: thay thế b bằng r không dễ dàng như vậy). Thứ hai, bạn có thể gặp một cụm từ chính xác, có ý nghĩa nhưng không có trong kho văn bản và khi đó tích của các xác suất sẽ bằng 0 (ví dụ: cụm từ hiệu chỉnh làm việc mà chúng tôi đã sử dụng ở cuối đoạn trước vẫn chưa có trong kho văn bản). Thứ ba, phiên bản được xem xét của chuỗi Markov chỉ kết nối một từ với những từ lân cận gần nhất của nó, mặc dù trong ngôn ngữ có sự phụ thuộc trong khoảng cách xa. Ví dụ, trong cụm từ tay áo sơ mi mà Vasya mua ở sân bay hóa ra quá ngắn, khi chọn tay áo hoặc tay áo thay thế, bạn sẽ không phải dựa vào hàng xóm mà dựa vào những lời nói xa xôi hóa ra lại ngắn. Thứ tư, bằng cách mắc lỗi chính tả, bạn có thể nhận được một cụm từ có từ trong từ điển, nhưng bị sai: ví dụ: Sự xảo quyệt của tôi bị xé nát. Thuật toán sẽ không nghi ngờ bất kỳ cụm từ nào như vậy. Tuy nhiên, việc tăng độ phức tạp của thuật toán giúp có thể giải quyết được những khó khăn đó. Ngôn ngữ học tính toán. Ngữ liệu ngôn ngữ là nền tảng của ngôn ngữ học tính toán, một nguồn thông tin vô tận về ngôn ngữ. Chúng được phân tích bởi các chuyên gia - nhà ngôn ngữ học và chuyên gia máy tính cũng như các nhà nghiên cứu mới làm quen. Ngay cả một học sinh cũng có thể viết chương trình tìm kiếm và kiểm tra các mẫu trong mảng ngôn ngữ một cách độc lập. Nguồn tài nguyên nổi tiếng nhất về tiếng Nga là National Corpus of the Russian Language (NCRL, http:// www.ruscorpora.ru), phần chính của nó chứa 283 triệu từ và tổng cộng khoảng 600 triệu từ. Chúng tôi đã sử dụng kho văn bản Araneum Russicum Maximum (http:// /unesco.uniba.sk), với khối lượng 16 tỷ từ, để xác định tần suất của các từ khi sửa lỗi chính tả. Nó bao gồm các văn bản được thu thập
15
THỐNG KÊ NGÔN NGỮ
Tần số rất quan trọng trong cuộc sống thực, chẳng hạn như trong ngôn ngữ học ứng dụng và mật mã học (nó có hai nhánh: mật mã và phân tích mật mã), và cũng được tìm thấy trong tiểu thuyết. Câu chuyện “Con bọ vàng” (1843) của Edgar Poe là một trong những bài thuyết trình phổ biến (và mang tính nghệ thuật!) đầu tiên về cả phương pháp mã hóa thực sự bằng phương pháp thay thế, thay thế các chữ cái bằng một số dấu hiệu và phương pháp giải mã nó - phân tích tần số. Và vào năm 1903, Arthur Conan Doyle, trong loạt truyện về Sherlock Holmes, đã xuất bản câu chuyện “Những người nhảy múa”, về mặt toán học rất giống với “Con bọ vàng”.
từ Internet, và đây là một cách rất quan trọng để tạo ra các nguồn tài nguyên ngôn ngữ hiện đại: xét cho cùng, có rất nhiều văn bản có thể truy cập được trên Internet. Thật không may, những phần đính kèm này không thể được lưu vào máy tính của bạn và các tùy chọn của người dùng bị giới hạn trong giao diện web. Các nguồn khác được giải cứu: ví dụ: việc xác định ngôn ngữ được thực hiện trên cơ sở kho dữ liệu được phân phối tự do từ dự án Phụ thuộc phổ quát (http://universaldependency.org), trong đó dữ liệu từ 70 ngôn ngữ được trình bày ở một định dạng duy nhất. Rõ ràng là tần suất của các từ riêng lẻ và sự kết hợp của chúng phụ thuộc đáng kể vào tập hợp văn bản có trong kho ngữ liệu. Tập văn bản văn học và tập văn bản tin tức có những “từ vựng” khác nhau. Không có kho ngữ liệu chính xác, phổ quát cho một ngôn ngữ, nhưng chúng ta phải học cách trích xuất các đặc tính, đặc điểm và đặc thù chung của một ngôn ngữ nhất định ngay cả từ các kho ngữ liệu riêng lẻ, theo cách này hay cách khác. Mong muốn này gợi nhớ đến câu cảm thán của người sáng lập ngành cổ sinh vật học, Georges Cuvier: “Hãy cho tôi một chiếc xương và tôi sẽ phục hồi con vật!” Trên thực tế, đây là bài toán nơi thống kê toán học ra đời: làm thế nào để có được ý tưởng về một tổng thể không thể quan sát được từ một mẫu nhất định. Và đối với các phương pháp lời giải của họ đã được tạo ra tiên tiến hơn việc đếm tần số đơn giản. Một trong những kỹ thuật là lấy trung bình, khớp các giá trị tần số trên các đoạn khác nhau.
của ngữ liệu để giảm bớt ảnh hưởng của từng văn bản. Ví dụ, tần suất của từ neo trong các văn bản NKR được phân bổ theo thập kỷ, từ năm 1970 đến ngày nay, trông có vẻ kỳ lạ: những năm 1970 - xảy ra 160 lần trên một triệu; Những năm 1980 – 6,8; Những năm 1990 – 8,4; Những năm 2000 – 6,6; Những năm 2010 – 6.7. Lý do cho sự bất thường là “Sách về những mỏ neo” có trong NKR, xuất bản năm 1973. Chỉ riêng trong đó, từ neo xuất hiện 1769 lần và trong phần còn lại của kho văn bản - chỉ 2896. Tần suất của từ neo trong toàn bộ mảng thu được bằng phép tính đơn giản - 21,9 phần triệu - rõ ràng đã được đánh giá quá cao. Nhưng nếu bạn sắp xếp các giá trị tần số theo thập kỷ và lấy số từ giữa danh sách (trung vị), bạn sẽ nhận được kết quả thực tế hơn: 6,8 phần triệu. Bạn cũng có thể tính đến độ phân tán, tức là đánh giá độ phân tán của các giá trị: tần suất và mức độ chúng lệch so với giá trị trung bình. Phương pháp này cũng được A.A. Markov, làm việc với văn bản của “Eugene Onegin”: ông đã kiểm tra tính ổn định và độc lập của kết quả của mình với các phương pháp tính toán. Các phương pháp phức tạp hơn được sử dụng để dự đoán tần suất “thực”, đúng của các tổ hợp từ: người ta phải có khả năng phân biệt những tần số không được tìm thấy trong kho văn bản, nhưng về nguyên tắc là hoàn toàn có thể xảy ra, với những tần số không gặp phải vì chúng thực tế là không thể. Tóm lại, chúng tôi lưu ý rằng việc xử lý ngôn ngữ tự động bắt đầu phát triển tích cực vào những năm 1950. Đặc biệt, lúc đầu dịch máy dựa trên các quy tắc được tạo thủ công quy định chính xác cách dịch một cụm từ cụ thể trong những điều kiện nhất định. Dần dần, người ta thấy rõ rằng việc tạo ra các quy tắc đòi hỏi một lượng lớn lao động của con người, nhưng chúng vẫn hoạt động kém hiệu quả. Do đó, vào cuối những năm 1980, một phương pháp thống kê đã xuất hiện trong quá trình xử lý ngôn ngữ tự nhiên tự động: chúng ta hãy xem bài toán tương tự đã được con người trước chúng ta giải quyết như thế nào và tìm lời giải bằng cách kết hợp nó từ các bộ phận làm sẵn. Điều này trở nên khả thi sau sự ra đời của ngữ liệu ngôn ngữ. phương pháp,