2009-11-04 12 views
5

arası boşluklar var, eğer pdf sayfasının sayfa nesnesini pyPdf ve extractText() ile yaparsam, satırlar birlikte birleştirilir. Örneğin, sayfanın 1. satırı "merhaba" yazıyorsa ve satır 2 "dünya" diyorsa, extractText() 'den döndürülen sonuç metni "merhaba dünya" yerine "helloworld" dür. Bunu nasıl düzelteceğini bilen var mı, yoksa etrafta çalışma önerileriniz var mı? Bu pdf metninde metin madenciliği yapıyorum ve çizgiler arasında boşluklar olmaması nedeniyle satırlar arasında boşluk olması için gerçekten ihtiyacım var.python ve pyPdf - sayfalardan metin ayıklamak için, şu anda satırlar arasında

+1

Bu SO sayfasına bir göz atmak isteyebilirsiniz: http://stackoverflow.com/questions/25665/python-module-for-converting-pdf-to-text Orada birkaç iyi öneri var! – avelldiroll

cevap

2

Bu pdf ayrıştırma ile ilgili yaygın bir sorundur. Bazı durumlarda düzeltmek zorunda kalacağınız izleri de bekleyebilirsiniz. Burada açıklayacağım projelerimden biriyle ilgili bir çözüm buldum:

XML'den XML ayıklamak için pdfminer kullandım ve XML'de birleştirilmiş sözcükler buldum. Ben HTML olarak aynı PDF çıkarılan ve HTML aşağıdaki regex hatları ile tarif edilebilir:

<span style="position:absolute; writing-mode:lr-tb; left:[0-9]+px; top:([0-9]+)px; font-size:[0-9]+px;">([^<]*)</span> 

süreleri kesinlikle yerleştirilmiş ve bir satır sonu oldu olmadığını belirlemek için kullanabileceğiniz bir üst tarza sahiptir. Bir satır sonu olursa ve son satırdaki son sözcük sondaki bir çizgiye sahip değilse, son satırdaki son sözcüğü ve geçerli satırdaki ilk sözcüğü ayırabilirsiniz. Ayrıntılarda zor olabilir, ancak hemen hemen tüm metin ayrıştırma hatalarını düzeltebilirsiniz.

Ayrıca, metin üzerinde enchant gibi bir sözlük kitaplığı çalıştırmak, hataları bulmak ve sözlük tarafından önerilen düzeltme, hata sözcüğü gibi bir yerle ilgili bir boşluk ile, hata sözcüğü bir ayrıştırma hatası olması muhtemeldir ve sözlükler öneri ile sabitlenebilir.

PDF'yi ayrıştırma, daha iyi bir kaynak bulursanız kullanın.

İlgili konular