นับจำนวนคำในไฟล์ PDF


66

ฉันจะรับจำนวนคำของไฟล์ PDF ได้อย่างไร ฉันคิดว่าไฟล์ pdf ส่วนใหญ่ที่ฉันต้องการนับจำนวนคำทั้งหมดมีเลเยอร์ข้อความฝังอยู่ดังนั้นฉันจึงไม่จำเป็นต้องใช้ OCR

ภารกิจเกิดขึ้นจากการค้นหาเอกสารทางวิทยาศาสตร์ที่มีขนาดเท่าที่ทราบเช่น 15000 คำ เอกสาร moders ส่วนใหญ่ได้รับการเผยแพร่ในรูปแบบ pdf

คำตอบ:


90

คำตอบที่รวดเร็ว:

pdftotext myfile.pdf - | wc -w

คำตอบยาว:

หากใช้กับ Unix คุณสามารถใช้pdftotext:

แล้วนับคำในไฟล์ที่สร้างขึ้น หากใช้กับ Unix คุณสามารถใช้:

wc -w converted-pdf.txt

เพื่อรับจำนวนคำ

ดูความคิดเห็นโดย frabjous โดยพื้นฐานแล้วคุณสามารถทำได้ในขั้นตอนเดียวโดยการไพพ์stdoutไปที่ไฟล์ชั่วคราว:

pdftotext myfile.pdf - | wc -w

10
มันคือpdftotext: อย่าลืม e pdftotext myfile.pdf - | wc -wและคุณสามารถใช้คำสั่งเดียว:
frabjous

1
@ frabjous ขอบคุณปรับปรุงคำตอบด้วยคำแนะนำ!
icyrock.com

เป็นที่น่าสังเกตว่าpdftotextเป็นส่วนหนึ่งของ Xpdf ซึ่งมีให้สำหรับแพลตฟอร์ม windows การดาวน์โหลดหน้า xpdf ตั้งอยู่ที่นี่: foolabs.com/xpdf/download.html wcสามารถพบได้ แต่อีกวิธีหนึ่งสามารถใช้โปรแกรมประมวลผลคำใด ๆ ก็ได้เช่น word หรือ LibreOffice Writer พวกเขานับคำเช่นกัน (สำหรับ LibreOffice Writer ไปที่ File -> Properties -> Statistics)
amenthes

13

นี่เป็นงานยากไม่ใช่เรื่องง่ายที่จะแก้ หากคุณต้องการผลลัพธ์ที่แน่นอนจริงๆให้คัดลอกย่อหน้าตามย่อหน้าสำหรับโปรแกรมดู PDF ของคุณลงในไฟล์ข้อความและตรวจสอบด้วยwc -wเครื่องมือ เหตุผลที่ไม่ควรใช้pdftotextในกรณีนี้คือ: สูตรทางคณิตศาสตร์อาจเข้าไปในเอาต์พุตและถือเป็น "คำ" (หรือมิฉะนั้นคุณสามารถแก้ไขผลลัพธ์ที่คุณได้รับจากpdftotext) เหตุผลอื่นที่ทำให้สิ่งนี้อาจล้มเหลวคือส่วนหัว: "4.3.2 Foo Bar" นับเป็นสามคำ

วิธีรอบตัวเป็นเพียงการนับคำที่ขึ้นต้นด้วยตัวอักษร [A-Za-z] ดังนั้นสิ่งที่ฉันทำตามปกติคือแนวทางสองขั้นตอน:

  1. รับรายการคำ uniq และตรวจสอบว่ามีผลบวกปลอมมากเกินไป:

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

    ฉันไม่ได้ใช้พจนานุกรมที่นี่เนื่องจากข้อผิดพลาดในการสะกดจะไม่นับเป็นคำ

  2. รับรายการคำนี้และ grep ภายในผลลัพธ์ของ pdftotext:

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

ฉันรู้ว่าสิ่งนี้สามารถทำได้ภายในหนึ่งซับ แต่จากนั้นฉันไม่สามารถเห็นผลการกรองได้อย่างง่ายดายจากขั้นตอนแรก -Fอาจช่วยให้คุณตามที่ระบุไว้โดยความคิดเห็นของmoiด้านล่าง (ขอบคุณ)


1
ฉันต้องใช้grep -Ff wordsเพราะ grep บ่นเกี่ยวกับ "Unmatched [หรือ [^") จากหน้าคน: `` `-F, - แก้ไข - สตริงตีความรูปแบบเป็นรายการของสตริงคงที่คั่นด้วยขึ้นบรรทัดใหม่ใด ๆ ที่จะถูกจับคู่ (-F ถูกระบุโดย POSIX) `` `
moi

10

ฉันแค่พยายามออกโปรแกรมฟรีแปล Abacus คุณสามารถลากและวางไฟล์ประเภทต่าง ๆ (รวมถึง PDF) และมันจะปรากฏขึ้นเบราว์เซอร์ที่มีรายงานที่พิมพ์ได้ของการนับจำนวนคำสำหรับแต่ละเอกสาร มันทำงานได้ดีสำหรับฉัน (มันถูกสร้างขึ้นโดยเฉพาะสำหรับการนับจำนวนคำและมีเพียง 435 KB ... นั่นคือไม่ใช่ "แอปพลิเคชันขนาดใหญ่") Abacus ของนักแปลไม่ทำงานบน PDF 1.5 หรือใหม่กว่า

หรืออีกวิธีหนึ่ง : คุณสามารถCtrl+ Aเพื่อเลือกข้อความทั้งหมดใน Acrobat Reader แล้วคัดลอกวางลงในโปรแกรมเช่น Microsoft Word (ซึ่งมีจำนวนคำที่แถบสถานะที่ด้านล่างของหน้าจอ)


ใน PDF (จำนวนมาก) Crl + A จะเลือกเฉพาะคำในหน้าปัจจุบันไม่ใช่เอกสารทั้งหมด ลูกคิดของนักแปลทำงานได้อย่างสมบูรณ์แบบเยี่ยมมาก!
Junuxx

3
การแก้ไข Abacus ของ Translator ไม่ทำงานกับ PDF 1.5 หรือใหม่กว่า
Junuxx

+1 Ctrl + A ใน Adobe Reader พร้อมกับ WinMerge ทำงานได้ดีใน Windows!
superjos

2

วิธีที่ตรงไปตรงมาในการทำเช่นนี้หากคุณใช้ Acrobat Pro คือการส่งออก PDF ไปยังเอกสาร Microsoft Word แล้วนับจำนวนคำใน Word หรือคุณสามารถส่งออกเป็นไฟล์ข้อความธรรมดาและใช้โปรแกรมอรรถประโยชน์การนับจำนวนคำในโปรแกรมแก้ไขข้อความที่คุณเลือก / ฉันเพิ่งนับจำนวนคำในบทความ pdf โดยใช้วิธี Word และใช้เวลาทั้งหมด 30 วินาทีจึงจะเสร็จสมบูรณ์

หวังว่านี่จะช่วยได้


ฉันแปลงเป็นข้อความและทำ wc -w filename.txt มันได้ผล ขอบคุณ
vijayst

1

คุณสามารถติดตั้งOCRFeeder ในนั้นเลือกไฟล์ -> นำเข้า PDF-> ตรวจจับและจดจำหน้าทั้งหมด -> ส่งออกไปยัง ODT โดยอัตโนมัติและเอกสารนักเขียน libreoffice จะพร้อมสำหรับการนับจำนวนคำหรือฟังก์ชั่น RTF อื่น ๆ ที่คุณต้องการใช้



0

คุณสามารถใช้ JavaScript คอนโซลของ Adobe Acrobat ด้วยรหัสต่อไปนี้ซึ่งฉันได้รับคำตอบจากDave Merchant ในฟอรัม.adobe.com :

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

ทดสอบกับ Adobe Acrobat Pro DC 2018.011.20040 บน Windows 7 SP1 x64 Ultimate


วิธีเปิดใช้งานคอนโซล JavaScript:

ป้อนคำอธิบายรูปภาพที่นี่

วิธีเปิดหน้าต่างคอนโซล JavaScript:

CTRL + J

ป้อนคำอธิบายรูปภาพที่นี่

FYI ถ้าคุณมีแหล่งน้ำยางที่สอดคล้องกับรูปแบบไฟล์ PDF: ถูกต้องคำว่านับของเอกสารน้ำยาง


-1

ในความเป็นจริงมาตรฐานซึ่งนักแปลใช้ตั้งแต่ปี 2000 เป็นเครื่องมือนับจำนวน AnyCountมันนับจำนวนคำในรูปแบบ PDF และ 37 รูปแบบอื่น ๆ


วลาดิมีมีการอ้างอิงบุคคลที่สามใด ๆ (กล่าวถึงในหนังสือเอกสารวารสารรีวิวตลาด) ที่มีการใช้กันอย่างแพร่หลายในการนับจำนวนคำและตลาดการแปล? ชอบbooks.google.co.th/…
osgx

-3

Ctrl+ Shift+ Fป้อนการค้นหาขั้นสูงพิมพ์คำและมันจะนับจำนวนครั้งที่มันอยู่ในเอกสาร มันไม่ใช่วิทยาศาสตร์จรวด


9
ฉันคิดว่าคุณเข้าใจผิดคำถาม ... 'นับจำนวนคำ' โดยปกติหมายถึงจำนวนคำทั้งหมดในเอกสารแทนที่จะเป็นจำนวนคำที่เฉพาะเจาะจง ... และฉันคิดว่ามันจะดีกว่าถ้าคุณเป็น เพื่อระบุว่าคุณกำลังพูดถึงโปรแกรมใด - โปรแกรมอ่าน PDF บางรุ่นไม่มีฟังก์ชั่นเดียวกันหรือใช้แป้นพิมพ์ลัดเดียวกัน
evilsoup

คุณอาจไม่ได้ตอบคำตอบ OPs แต่โพสต์ของคุณช่วยฉันอย่างแน่นอน ขอบคุณ : D
mahela007
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.