2014-04-26 14 views
5

Tôi đang sử dụng NLTK để xử lý một số văn bản được trích xuất từ ​​các tệp PDF. Tôi có thể khôi phục văn bản hầu như nguyên vẹn, nhưng có rất nhiều trường hợp khoảng trống giữa các từ không bị bắt, vì vậy tôi nhận được các từ như ifI thay vì if I hoặc thatposition thay vì that position hoặc andhe's thay vì and he's.Mã hóa các từ không được phép từ OCR bằng NLTK

Câu hỏi của tôi là: làm cách nào để sử dụng NLTK để tìm các từ mà nó không nhận ra/chưa học và xem liệu có các từ kết hợp "lân cận" có nhiều khả năng xảy ra hơn không? Có cách nào duyên dáng hơn để thực hiện loại kiểm tra này không chỉ đơn giản là diễu hành qua từ không được nhận ra, một ký tự tại một thời điểm, tách nó ra và xem liệu nó có tạo ra hai từ dễ nhận biết không?

Trả lời

4

Tôi khuyên bạn nên cân nhắc sử dụng pyenchant thay vì đó là giải pháp mạnh mẽ hơn cho loại sự cố này. Bạn có thể tải về pyenchant here. Dưới đây là ví dụ về cách bạn sẽ nhận được kết quả sau khi cài đặt kết quả:

>>> text = "IfI am inthat position, Idon't think I will." # note the lack of spaces 
>>> from enchant.checker import SpellChecker 
>>> checker = SpellChecker("en_US") 
>>> checker.set_text(text) 
>>> for error in checker: 
    for suggestion in error.suggest(): 
     if error.word.replace(' ', '') == suggestion.replace(' ', ''): # make sure the suggestion has exact same characters as error in the same order as error and without considering spaces 
      error.replace(suggestion) 
      break 
>>> checker.get_text() 
"If I am in that position, I don't think I will." # text is now fixed 
+1

Cảm ơn đề xuất này, đã không nghĩ đến việc sử dụng trình kiểm tra chính tả. Giải pháp hoạt động tuyệt vời, nếu/khi bạn cài đặt pyenchant. Tôi đã gặp rất nhiều khó khăn trong việc cài đặt các phụ thuộc của pyenchant (không có "pip install pyenchant"). Mac nhị phân trên trang web yêu cầu Python 2.5 hoặc 2.6, python gói chỉ số cung cấp nhị phân cho Python 2.7 nhưng nó đòi hỏi Homebrew Python. Tarball-bidst-osx-source được cung cấp trên trang web có một Makefile mà liên tục bị nghẹt thở. Đã kết thúc việc cài đặt gettext và glib bằng Homebrew, & libiconv & enchant từ nguồn, sau đó là pyenchant với setup.py build/install. – charlesreid1

+0

@ charlesreid1 Wow. Tôi rất tiếc khi biết rằng các tập tin nhị phân Mac không lên đến ngang hàng. Cảm ơn bạn đã lưu ý quá trình của mình tại đây. Hy vọng rằng ai đó sẽ thấy điều này hữu ích. –

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