Đếm số lượng từ trong tệp PDF


66

Làm cách nào tôi có thể đếm được số từ của tệp PDF? Tôi nghĩ rằng hầu hết các tệp pdf mà tôi muốn lấy tổng số từ đều có lớp văn bản được nhúng, vì vậy tôi không cần OCR.

Nhiệm vụ được phát sinh từ việc tìm kiếm một số bài báo khoa học có kích thước đã biết, ví dụ 15000 từ. Hầu hết các bài báo mod được xuất bản ở định dạng pdf

Câu trả lời:


90

Câu trả lời nhanh:

pdftotext myfile.pdf - | wc -w

Câu trả lời dài:

Nếu trên Unix, bạn có thể sử dụng pdftotext:

và sau đó thực hiện đếm từ trong tệp được tạo. Nếu trên Unix, bạn có thể sử dụng:

wc -w converted-pdf.txt

để có được số từ.

Ngoài ra, hãy xem nhận xét của frabjous - về cơ bản, bạn có thể thực hiện nó trong một bước bằng cách chuyển stdoutsang một tệp tạm thời:

pdftotext myfile.pdf - | wc -w

10
Đó là pdftotext: đừng quên e. Và bạn có thể sử dụng một lệnh duy nhất : pdftotext myfile.pdf - | wc -w.
frabjous

1
@frabjous Cảm ơn, cập nhật câu trả lời với các gợi ý!
icyrock.com

Điều đáng chú ý pdftotextlà một phần của Xpdf cũng có sẵn cho nền tảng windows. Trang tải xuống Xpdf được đặt tại đây: đánh lừa.com / xpdf / doad.html . wccũng có thể được tìm thấy, nhưng một cách khác, người ta có thể sử dụng khá nhiều trình xử lý văn bản như word hoặc LibreOffice Writer. Họ cũng đếm từ. (Đối với
Trình ghi LibreScript,

13

Đây là một nhiệm vụ khó khăn không dễ giải quyết. Nếu bạn thực sự muốn có một kết quả chính xác, hãy sao chép từng đoạn cho trình xem PDF của bạn vào một tệp văn bản và kiểm tra nó bằng wc -wcông cụ. Lý do tại sao không sử dụng pdftotexttrong trường hợp đó là: các công thức toán học cũng có thể được đưa vào đầu ra và được coi là "từ". (Ngoài ra, bạn có thể chỉnh sửa đầu ra bạn nhận được từ pdftotext). Một lý do khác khiến điều này có thể thất bại là các tiêu đề: "4.3.2 Foo Bar" được tính là ba từ.

Một cách xung quanh chỉ là đếm các từ bắt đầu bằng một char trong [A-Za-z]. Vì vậy, những gì tôi thường làm là một cách tiếp cận hai bước:

  1. lấy danh sách các từ uniq và kiểm tra xem có quá nhiều dương tính giả bên trong không:

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

    Tôi không sử dụng từ điển ở đây, vì một số lỗi chính tả sẽ không được tính là từ.

  2. Lấy danh sách từ này và grep nó trong đầu ra của pdftotext:

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

Tôi biết điều này có thể được thực hiện trong một lớp lót, nhưng sau đó tôi không thể dễ dàng thấy kết quả bộ lọc từ bước đầu tiên. Có -Fthể giúp bạn như đã nêu trong nhận xét của moi dưới đây (cảm ơn).


1
Tôi đã phải sử dụng grep -Ff words, bởi vì grep phàn nàn về "Chưa từng có [hoặc [^". Từ trang man: `` `-F, --fixed-chuỗi Phiên dịch MẪU như một danh sách các chuỗi cố định, được phân tách bằng các dòng mới, bất kỳ chuỗi nào sẽ được khớp. (-F được chỉ định bởi POSIX.) `` `
moi

10

Tôi vừa thử một chương trình miễn phí, Abacus của Translator . Bạn có thể kéo và thả các loại tệp khác nhau (bao gồm PDF) và nó bật lên một trình duyệt với một báo cáo có thể in được về số lượng từ cho mỗi tài liệu. Nó làm việc tốt cho tôi. (Nó được tạo riêng cho số lượng từ và chỉ có 435 KB ... nghĩa là không phải là "ứng dụng lớn"). Abacus của Translator không hoạt động trên PDF 1.5 trở lên.

Ngoài ra : bạn chỉ có thể Ctrl+ Ađể chọn tất cả văn bản trong Acrobat Reader và sau đó sao chép-dán nó vào một chương trình như Microsoft Word (có số từ trên thanh trạng thái ở cuối màn hình).


Trong (nhiều?) Các tệp PDF, Crl + A chỉ chọn các từ trên trang hiện tại, không phải toàn bộ tài liệu. Bàn tính của Trình dịch hoạt động hoàn hảo, thật tuyệt!
Junuxx

3
Sửa chữa, Bàn tính của Trình dịch không hoạt động trên PDF 1.5 trở lên.
Junuxx

+1 Ctrl + A trong Adobe Reader cùng với WinMerge hoạt động rất tốt trong Windows!
superjos

2

Một cách đơn giản để thực hiện việc này nếu bạn sử dụng Acrobat Pro là xuất tệp PDF sang tài liệu Microsoft Word và sau đó thực hiện đếm từ trong Word. Ngoài ra, bạn có thể xuất nó thành một tệp văn bản đơn giản và sử dụng tiện ích đếm từ trong trình soạn thảo văn bản bạn chọn /. Tôi vừa thực hiện đếm từ trên một bài viết pdf bằng phương pháp Word và mất tất cả 30 giây để hoàn thành.

Hi vọng điêu nay co ich.


Tôi đã chuyển đổi thành văn bản và đã làm wc -w filename.txt. Nó đã làm việc. Cảm ơn.
vijayst

1

Bạn có thể cài đặt OCRFeeder . Trong đó, chọn Tệp-> Nhập PDF-> Tự động phát hiện và nhận ra tất cả các trang-> Xuất ra ODT và tài liệu nhà văn libreoffice sẽ sẵn sàng để đếm từ hoặc bất kỳ chức năng RTF nào bạn muốn sử dụng.



0

Bạn có thể sử dụng JavaScript bảng điều khiển của Adobe Acrobat với mã sau đây mà tôi đã lấy từ câu trả lời của Dave Merchant trên forum.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.");

Đã thử nghiệm với Adobe Acrobat Pro DC 2018.011.20040 trên Windows 7 SP1 x64 Ultimate.


Để bật Bảng điều khiển JavaScript:

nhập mô tả hình ảnh ở đây

Để khởi chạy Cửa sổ Bảng điều khiển JavaScript:

CTRL + J

nhập mô tả hình ảnh ở đây

FYI, nếu bạn có nguồn LaTeX tương ứng với PDF: Đếm từ đúng của tài liệu LaTeX .


-1

Tiêu chuẩn thực tế, mà các dịch giả sử dụng từ khoảng năm 2000 là Công cụ đếm từ AnyCount Nó có tính từ trong PDF và 37 định dạng khác.


Vladimir, có bất kỳ tài liệu tham khảo của bên thứ ba (đề cập trong sách, giấy tờ, tạp chí, đánh giá thị trường) mà anycount được sử dụng rộng rãi trong thị trường đếm và dịch từ không? Giống như books.google.com/...
osgx

-3

Ctrl+ Shift+ Fnhập loại tìm kiếm nâng cao từ và nó sẽ đếm số lần trong tài liệu. Đây không phải là khoa học tên lửa.


9
Tôi nghĩ rằng bạn đã hiểu nhầm câu hỏi ... 'đếm từ' thường đề cập đến tổng số từ trong tài liệu, thay vì số lượng từ cụ thể ... và ngoài ra, tôi nghĩ sẽ tốt hơn nếu bạn để chỉ định chương trình bạn đang nói đến - không phải tất cả các trình đọc PDF có cùng chức năng hoặc sử dụng cùng một phím tắt.
evilsoup

Bạn có thể không trả lời câu trả lời của OP nhưng bài viết của bạn chắc chắn đã giúp tôi. Cảm ơn. : D
mahela007
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.