2010-02-10 38 views
9

sách về làm thế nào để xây dựng một chương trình phân tích cú pháp ngôn ngữ tự nhiên như thế này là gì:Xây dựng một mô hình ngôn ngữ tự nhiên, có thể chữa lỗi chính tả

 
input: I got to TALL you 
output: I got to TELL you 

input: Big RAT box 
output: Big RED box 

in: hoo un thum zend three 
out: one thousand three 

Nó phải có mô hình ngôn ngữ cho phép để dự đoán những gì từ được sai chính tả!

Sách hay nhất về cách tạo công cụ như thế nào ??

p.s. Có các dịch vụ web miễn phí để kiểm tra chính tả không? Từ Google có thể? ..

+5

+1 cho lỗi chính tả "lỗi chính tả". Đó là một trò đùa, phải không? – APC

+1

@APC hahaha kinda. Nhập nhanh, nhưng nó thể hiện cách các công cụ như vậy có thể hữu ích. – EugeneP

+0

+1, Sử dụng Spelly trong Google Wave!: P –

Trả lời

7

Peter Norvig đã viết một tuyệt vời spell checker. Có lẽ điều đó có thể giúp bạn.

+0

Chỉ cần liên kết nó :-) +1 –

+0

Kịch bản hay. Có vẻ như sẽ đơn giản hơn nếu mở rộng nó thành chữ bigram hoặc trigram nếu bạn có một văn bản chính xác trong ngôn ngữ bạn chọn. –

+0

Chính xác, đó là tập lệnh mà tôi đã cố nhớ trong bài đăng của tôi bên dưới. +1 –

2

soundex (wiki) là một lựa chọn

+0

Như George Bernard Shaw (trong số nhiều người khác) luôn phàn nàn, thường có sự khác biệt lớn giữa cách mọi thứ được viết và cách chúng được phát âm. Ít nhất là bằng tiếng Anh. SOUNDEX() có thể là một cách tiếp cận hiệu quả trong, nói, tiếng Ý. – APC

+0

Điều này được xây dựng trong RTL Delphi, nó khá khó đoán, nhưng khá mát mẻ - tốt cho những người thích viết fenetiklee err .. phonetically. –

1

Trong Dev Days London, Michael Sparks đã trình bày một kịch bản Python được mã hóa chính xác cho điều đó. Thật ngạc nhiên rất đơn giản! Xem bạn có thể tìm thấy trong Google hay không. Có lẽ ai đó ở đây sẽ có liên kết.

+3

Theo chủ đề DevDays trên MetaSO, kịch bản Michael Sparks trình bày là kịch bản Peter Norvig đã được đề cập: http://meta.stackexchange.com/questions/27859/devdays-london-can-i-get-hold -of-the-presentation-material/28522 # 28522 – APC

+0

Vâng, đúng vậy, cảm ơn –

4

Bạn có ít nhất ba lựa chọn

  1. Bạn có thể viết một chương trình mà hiểu được ngôn ngữ (tức là một từ có nghĩa). Đây là một chủ đề cho nghiên cứu ngày nay. Mong đợi kết quả đầu tiên khi bạn có thể mua một máy tính đủ nhanh để chạy một chương trình như vậy (có lẽ là trong 10 năm khi máy tính đã nhanh hơn 1000 lần so với ngày hôm nay).

  2. Sử dụng kho văn bản lớn (tài liệu văn bản) để đào tạo Hidden Marcov Model.

  3. Sử dụng một kho dữ liệu khổng lồ và tạo thống kê về tứ phân n-gram, nghĩa là tần suất một từ N xuất hiện. Tôi không có một liên kết thuận tiện cho điều này nhưng ý tưởng là một số từ luôn xuất hiện trong bối cảnh của các từ khác. Vì vậy, khi bạn phân tích cú pháp văn bản thành 4-gram và tìm kiếm chúng trong cơ sở dữ liệu của bạn và bạn không thể tìm thấy văn bản, rất có thể là có điều gì đó sai với bộ dữ liệu hiện tại. Bước tiếp theo là tìm tất cả các kết quả phù hợp (các loại 4-gram khác có âm thanh nhỏ hoặc khoảng cách tương tự với âm thanh hiện tại) và thử với tần số cao nhất.

    Google có dữ liệu này cho một số ngôn ngữ và bạn có thể tìm thấy nhiều hơn trong các phòng thí nghiệm của Google về điều này.

[EDIT] Sau khi một số googling, tôi cuối cùng đã tìm thấy liên kết: Trên this page, bạn có thể mua bằng tiếng Anh 1- đến 5 gram mà Google thu thập trên toàn bộ Internet trên 6 DVD.

Googling cho "thống kê chính tả google n-gram" cũng sẽ bật lên một số liên kết thú vị.

+0

Google có chia sẻ dữ liệu này với tôi không? ;) – EugeneP

+0

Tôi nghĩ vậy. Tôi thực sự phải tìm lại liên kết. –

+0

Cảm ơn bạn đã trả lời đầy đủ và thú vị. – EugeneP

2

Có khá nhiều thư viện Java để xử lý ngôn ngữ tự nhiên sẽ giúp bạn triển khai trình sửa lỗi chính tả. Nhưng bạn đã hỏi về một cuốn sách. Foundations of Statistical Natural Language Processing bởi Christopher D. Manning và Hinrich Schütze trông giống như một lựa chọn tốt. Tác giả đầu tiên là một giáo sư Stanford dẫn đầu một nhóm làm việc xử lý ngôn ngữ tự nhiên và phát triển các thư viện Java và các tài nguyên NLP mà nhiều người sử dụng.

Các vấn đề liên quan