Bir PDF dosyasındaki kelimelerin sayısını


66

Bir PDF dosyasının kelime sayısını nasıl alabilirim? Toplam kelime sayısını elde etmek istediğim birçok pdf dosyasının gömülü metin katmanına sahip olduğunu düşünüyorum, bu yüzden OCR'ye ihtiyacım yok.

Görev, bilinen boyuttaki bazı bilimsel makaleleri, örneğin 15000 kelimeyi aramaktan kaynaklanıyordu. Çoğu moderatör makaleleri pdf formatında yayınlanmaktadır

Yanıtlar:


90

Hızlı cevap:

pdftotext myfile.pdf - | wc -w

Uzun cevap:

Unix kullanıyorsanız, şunları kullanabilirsiniz pdftotext:

ve sonra oluşturulan dosyada kelime sayımı yapın. Unix kullanıyorsanız, şunları kullanabilirsiniz:

wc -w converted-pdf.txt

kelimeyi almak için.

Ayrıca, yorumdan frabjous'a bakın - temel stdoutolarak geçici bir dosyaya yönlendirerek tek adımda yapabilirsiniz :

pdftotext myfile.pdf - | wc -w

10
Bu pdftotext: e'yi unutma. Ve tek bir komutu kullanabilirsiniz: pdftotext myfile.pdf - | wc -w.
frabjous

1
@frabjous Teşekkürler, önerileri ile cevabı güncellendi!
icyrock.com

pdftotextWindows platformunda da mevcut olan Xpdf'in bir parçası olduğu dikkat çekiyor . Xpdf indirme sayfası burada bulunur: foolabs.com/xpdf/download.html . wcayrıca bulunabilir, ancak alternatif olarak kelime veya LibreOffice Writer gibi hemen hemen herhangi bir kelime işlemci kullanabilirsiniz. Kelimeleri da sayarlar. (LibreOffice Writer için Dosya -> Özellikler -> İstatistikler
bölümüne gidin

13

Bu, çözülmesi kolay olmayan zor bir iştir. Gerçekten kesin bir sonuç almak istiyorsanız, PDF görüntüleyiciniz için paragrafa göre paragrafı bir metin dosyasına kopyalayın ve wc -waracıyla kontrol edin . Bu pdftotextdurumda kullanılmamasının nedeni şudur: matematiksel formüller de çıktıya girebilir ve "kelimeler" olarak kabul edilebilir. (Alternatif olarak, elde ettiğiniz çıktıyı düzenleyebilirsiniz pdftotext). Bunun başarısız olmasının bir diğer nedeni de başlıklardır: "4.3.2 Foo Bar" üç kelime olarak sayılır.

Etrafı dolaşmanın bir yolu, yalnızca [A-Za-z] öğesinden çıkarılmakla başlayan kelimeleri saymaktır. Genelde yaptığım şey iki aşamalı bir yaklaşım:

  1. uniq kelimelerin listesini alın ve içeride çok fazla yanlış pozitif olup olmadığını kontrol edin:

    pdftotext foo.pdf - | tr " " "\n" | sort | uniq | grep "^[A-Za-z]" > words

    Burada bir sözlük kullanmıyorum, çünkü bazı yazım hataları kelime olarak sayılmaz.

  2. Bu kelime listesini alın ve pdftotext çıktısının içine yerleştirin:

    pdftotext foo.pdf - | tr " " "\n" | grep -Ff words | wc -l

Bunun tek bir astar içinde yapılabileceğini biliyorum, ancak daha sonra ilk adımdaki filtre sonucunu kolayca göremedim. Aşağıdaki moi-F yorumunda belirtildiği gibi size yardımcı olabilir (teşekkürler).


1
grep -Ff wordsGrep, "Eşsiz [veya [^" hakkında şikayetçi olduğu için kullanmak zorunda kaldım . Man sayfasından: `` `-F, --fixed-strings Her biri eşleştirilecek olan yeni satırlarla ayrılmış sabit dizgelerin listesi olarak PATTERN yorumunu yapın. (-F POSIX tarafından belirtilmiştir.) `` `
moi

10

Sadece ücretsiz bir program denedim, Tercüman Abaküs . Çeşitli dosya türlerini (PDF dahil) sürükleyip bırakabilirsiniz ve her belge için yazdırılan kelime sayısı raporunu içeren bir tarayıcı açar. Benim için iyi çalıştı. (Kelime sayıları için özel olarak yaratılmıştır ve yalnızca 435 KB'dır ... yani "büyük bir uygulama" değildir). Tercüman Abaküs PDF 1.5 veya üstü sürümlerde çalışmaz.

Alternatif olarak : Acrobat Reader'da tüm metni seçmek için Ctrl+ işaretini kaldırabilir Ave daha sonra Microsoft Word gibi bir programa kopyalayıp yapıştırabilirsiniz (ekranın altındaki durum çubuğunda kelime sayımı vardır).


(Birçok?) PDF’de, Crl + A sadece geçerli sayfadaki kelimeleri seçer, belgenin tamamını seçmez. Çevirmenin Abaküsü mükemmel çalışıyor!
Junuxx

3
Düzeltme, Tercüman Abaküs PDF 1.5 veya üstü sürümlerde çalışmaz.
Junuxx

Adobe Reader'da +1 Ctrl + A WinMerge ile birlikte Windows'ta harika!
superjos

2

Acrobat Pro kullanıyorsanız bunu yapmanın basit bir yolu, PDF'yi bir Microsoft Word belgesine dışa aktarmak ve ardından Word'de Word sayısını yapmaktır. Alternatif olarak, dosyayı düz bir metin dosyasına aktarabilir ve seçtiğiniz metin editöründe bir kelime sayımı yardımcı programını kullanabilirsiniz. Word yöntemini kullanarak bir pdf makalesinde bir kelime sayımı yaptım ve bu işlemin tamamlanması 30 saniye sürdü.

Bu yardımcı olur umarım.


Metne dönüştürdüm ve wc -w dosyaadı.txt yaptım. İşe yaradı. Teşekkürler.
vijayst

1

OCRFeeder'ı yükleyebilirsiniz . İçinde Dosya-> PDF İçe Aktar-> Tüm sayfaları otomatik olarak algıla ve tanı-> ODT’ye Aktar seçeneğini seçin ve libreoffice yazar belgesi kelime sayımı veya kullanmak istediğiniz diğer herhangi bir RTF işlevi için hazır olacaktır.



0

Adobe Acrobat konsolunda JavaScript'i aşağıdaki kodla kullanabilirsiniz; Dave Merchant'in forums.adobe.com'daki cevabından aldığım kod :

var cnt=0;
for (var p = 0; p < this.numPages; p++) cnt += getPageNumWords(p);
console.println("There are " + cnt + " words in this file.");

Windows 7 SP1 x64 Ultimate'ta Adobe Acrobat Pro DC 2018.011.20040 ile test edilmiştir.


JavaScript Konsolunu etkinleştirmek için:

görüntü tanımını buraya girin

JavaScript Konsol Penceresi'ni başlatmak için:

CTRL + J

görüntü tanımını buraya girin

Bilginize, PDF'ye karşılık gelen LaTeX kaynağınız varsa: LaTeX belgesinin doğru kelime sayımı .


-1

Çevirmenlerin 2000'den beri kullandıkları fiili standart AnyCount Kelime Sayım Aracıdır . PDF ve 37 formatta kelime sayımı yapar.


Vladimir, herhangi bir sayının kelime sayma ve çeviri pazarlarında yaygın olarak kullanıldığı herhangi bir üçüncü taraf referansı var mı (kitaplarda, bildirilerde, dergilerde, pazar incelemelerinde bahsedilir)? Gibi books.google.com/...
osgx

-3

Ctrl+ Shift+ FGelişmiş arama girin kelimeyi yazın; bu, dokümanda kaç kez olduğunu sayar. Bu roket bilimi değil.


9
Sanırım 'kelime sayımı' sorusunu yanlış anladınız, normalde belirli bir kelimeden ziyade, bir belgedeki toplam kelime sayısını ifade eder ... ve ayrıca, daha iyi olacağını düşünüyorum Hangi programdan bahsettiğinizi belirlemek için - tüm PDF okuyucuları aynı işlevlere sahip değil veya aynı klavye kısayollarını kullanmıyor.
kötülük

OP'nin cevabını cevaplamamış olabilirsin ama mesajın bana kesinlikle yardımcı oldu. Teşekkürler. : D
mahela007
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.