NLTK

2014-04-26 26 views
5

kullanarak OCR'den aralıksız sözcükleri Tokizeing PDF dosyalarından alınan bazı metinleri işlemek için NLTK kullanıyorum. Metni çoğunlukla bozulmadan kurtarabilirim, ancak sözcükler arasındaki boşlukların yakalanmadığı birçok örnek var, bu yüzden if I yerine ifI veya that position yerine thatposition veya and he's yerine andhe's gibi sözcükler alıyorum.NLTK

Sorum şu: Bu, tanımadığı/öğrenmediği sözcükleri aramak için NLTK'yi nasıl kullanabilir ve oluşması daha olası olan "yakın" sözcük kombinasyonlarının olup olmadığını görebilir miyim? Bu tür kontrolleri uygulamak için, tanınmayan kelimeyi, her seferinde bir karakteri, bölmeyi ve iki tanınabilir sözün bulunup bulunmadığını görmekten daha zarif bir yolu var mı?

cevap

4

Bu tür bir sorun için daha sağlam bir çözüm olduğundan, bunun yerine pyenchant kullanmayı düşünmenizi öneririm. Pycenhant here'u indirebilirsiniz. Aşağıda, sonuçları yükledikten sonra nasıl elde edeceğinize dair bir örnek verilmiştir:

>>> 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

Öneri için teşekkürler, bir yazım denetleyicisi kullanmayı düşünmemiştim. Pyenchant yüklendiğinde/çözümü harika çalışıyor. Pyenchant'ın bağımlılıklarını kurmakta çok zorlandım ("pip install pyenchant" yok). Sitedeki Mac ikili dosyaları Python 2.5 veya 2.6 gerektirir, python paket dizini Python 2.7 için ikili sağlar ancak Homebrew Python gerektirir. Web sitesinde verilen pyenchant-bidst-osx-kaynak tarball'lar sürekli tekrarlayan bir Makefile'ye sahip. Homebrew, & libiconv & enchant kaynağını kullanarak gettext ve glib'in yüklenmesini tamamladıktan sonra, setup.py build/install ile pyenchant. – charlesreid1

+0

@ charlesreid1 Vay. Mac ikili dosyalarının eşit olmadığını duyduğuma üzüldüm. İşleminizi buraya gönderdiğiniz için teşekkürler. Umarım birileri bunu faydalı bulacaktır. –