2009-02-25 56 views
28

Tôi biết rằng trình kiểm tra chính tả không hoàn hảo, nhưng chúng trở nên hữu ích hơn khi lượng văn bản bạn tăng lên. Làm thế nào tôi có thể đánh vần kiểm tra một trang web có hàng ngàn trang?Bạn đánh vần kiểm tra trang web như thế nào?

Chỉnh sửa: Do xử lý phía máy chủ phức tạp, cách duy nhất tôi có thể nhận các trang là qua HTTP. Ngoài ra, nó không thể được thuê ngoài cho bên thứ ba.

Chỉnh sửa: Tôi có danh sách tất cả các URL trên trang web mà tôi cần kiểm tra.

Trả lời

0

Bạn có thể thực hiện việc này bằng tập lệnh shell kết hợp wget với aspell. Bạn đã có một môi trường lập trình trong tâm trí?

Cá nhân tôi sử dụng python với Beautiful Soup để trích xuất văn bản từ các thẻ và đặt văn bản qua thông điệp.

1

Nếu một trang tắt, và do số trang cần kiểm tra, có thể đáng xem xét mọi thứ như spellr.us, đây sẽ là giải pháp nhanh chóng. Bạn có thể nhập url trang web của mình trên trang chủ để có cảm giác về cách báo cáo lỗi chính tả.

http://spellr.us/

nhưng tôi chắc chắn có một số lựa chọn thay thế miễn phí.

0

Sử dụng mẫu (tốt) với ứng dụng web của bạn (nếu bạn đang lập trình trang web thay vì chỉ viết html) và trình chỉnh sửa html bao gồm kiểm tra chính tả. Eclipse làm, cho một.

Nếu đó là không thể vì một lý do ... yeah, wget để tải về các trang kết thúc, và một cái gì đó như thế này:

http://netsw.org/dict/tools/ispell-html-mode.patch

2

Nếu bạn có thể truy cập vào nội dung của trang web như các file, bạn có thể viết một tập lệnh shell Unix nhỏ thực hiện công việc. Tập lệnh sau sẽ in tên của một tệp, số dòng và các từ sai chính tả. Chất lượng của đầu ra phụ thuộc vào từ điển của hệ thống của bạn.

#!/bin/sh 

# Find HTML files 
find $1 -name \*.html -type f | 
while read f 
do 
     # Split file into words 
     sed ' 
# Remove CSS 
/<style/,/<\/style/d 
# Remove Javascript 
/<script/,/<\/script/d 
# Remove HTML tags 
s/<[^>]*>//g 
# Remove non-word characters 
s/[^a-zA-Z]/ /g 
# Split words into lines 
s/[  ][  ]*/\ 
/g ' "$f" | 
     # Remove blank lines 
     sed '/^$/d' | 
     # Sort the words 
     sort -u | 
     # Print words not in the dictionary 
     comm -23 - /usr/share/dict/words >/tmp/spell.$$.out 
     # See if errors were found 
     if [ -s /tmp/spell.$$.out ] 
     then 
       # Print file, number, and matching words 
       fgrep -Hno -f /tmp/spell.$$.out "$f" 
     fi 
done 
# Remove temporary file 
rm /tmp/spell.$$.out 
+0

+1 :: Ngay cả khi bạn không thể lấy tệp nguồn của trang web, bạn có thể sử dụng wget -m (chế độ gương) trang web. – garrow

+0

Điều này không lọc JavaScript và CSS được nhúng trong HTML. – Liam

+0

Ngoài ra, một số từ như 'at' và 'me' được xuất ra dưới dạng các từ sai chính tả mặc dù chúng có trong từ điển. – Liam

7

Lynx có vẻ là giỏi chỉ nhận văn bản tôi cần (nội dung cơ thể và alt văn bản) và bỏ qua những gì tôi không cần (nhúng Javascript và CSS).

lynx -dump http://www.example.com 

Nó cũng liệt kê tất cả các URL (chuyển đổi sang hình thức tuyệt đối của họ) trong trang, mà có thể được lọc bằng cách sử dụng grep:

lynx -dump http://www.example.com | grep -v "http" 

Các URL cũng có thể là địa phương (file://) nếu tôi có đã sử dụng wget để phản chiếu trang web.

Tôi sẽ viết một tập lệnh sẽ xử lý một tập hợp các URL bằng phương pháp này và xuất mỗi trang vào một tệp văn bản riêng biệt. Sau đó tôi có thể sử dụng một giải pháp kiểm tra chính tả hiện có để kiểm tra các tệp (hoặc một tệp lớn duy nhất kết hợp tất cả các tệp nhỏ).

Điều này sẽ bỏ qua văn bản trong tiêu đề và phần tử meta. Đây có thể được kiểm tra chính tả một cách riêng biệt.

+2

Bạn có thể sử dụng wget -R để lấy tất cả các trang web của bạn đệ quy. Sau đó, chạy lynx trên các tệp cục bộ và kiểm tra chính tả từ đó. – strager

0

Chúng tôi sử dụng điều khiển Telerik RAD Spell trong các ứng dụng ASP.NET của chúng tôi.

Telerik RAD Spell

0

Bạn có thể muốn xem thư viện như jspell.

3

Chỉ một ngày xem trước khi tôi phát hiện ra Spello web site spell checker. Nó sử dụng số NHunspell (Open office Spell Checker for .NET) libaray của tôi. Bạn có thể thử nó.

+0

Không hiệu quả với tôi. Chỉ cần in URL và dừng lại. –

+0

Chỉ có vẻ như muốn kiểm tra các URL HTTP (tức là, không phải HTTPS). Hoạt động tuyệt vời nếu không. – imallett

2

Tôi rất khuyên bạn nên Inspyder InSite, Đây là phần mềm thương mại nhưng họ có bản dùng thử, nó rất đáng giá tiền. Tôi đã sử dụng nó trong nhiều năm để kiểm tra chính tả của các trang web của khách hàng. Nó hỗ trợ tự động hóa/lập kế hoạch và có thể tích hợp với danh sách từ tùy chỉnh CMS. Đây cũng là cách tốt để kiểm tra liên kết và có thể tạo báo cáo.

0

tôi đã thực hiện một tiếng chỉ kiểm tra chính tả với Ruby ở đây: https://github.com/Vinietskyzilla/fuzzy-wookie

Hãy thử nó ra.

Thiếu chính là thiếu từ điển toàn diện bao gồm tất cả các dạng của mỗi từ (số nhiều, không chỉ số ít; 'có', không chỉ 'có'). Thay thế từ điển của riêng bạn, nếu bạn có thể tìm thấy hoặc tạo ra một từ điển tốt hơn, sẽ làm cho nó thực sự tuyệt vời.


đó sang một bên, tôi nghĩ rằng cách đơn giản nhất để kiểm tra chính tả một trang web duy nhất là để nhấn ctrl + a (hoặc cmd + a) để chọn tất cả văn bản, sau đó copy và dán nó vào một hộp văn bản nhiều dòng trên một trang web. (Ví dụ: <html><head></head><body><textarea></textarea></body></html>.) Trình duyệt của bạn nên gạch dưới bất kỳ từ sai chính tả nào.

+0

Ồ, vâng, tùy chọn thứ hai đó sẽ không hoạt động tốt cho "hàng nghìn trang". –

0

@Anthony Roy Tôi đã thực hiện chính xác những gì bạn đã làm. Piped trang thông qua Aspell thông qua Pyenchant. Tôi có từ điển tiếng Anh (GB, CA, US) để sử dụng tại trang web của tôi https://www.validator.pro/. Liên hệ với tôi và tôi sẽ thiết lập công việc một lần để bạn kiểm tra 1000 trang trở lên

Các vấn đề liên quan