如何对网站进行拼写检查?

问题描述 投票:0回答:11

我知道拼写检查器并不完美,但随着文本量的增加,它们会变得更加有用。如何对拥有数千页的网站进行拼写检查?

编辑:由于服务器端处理复杂,我获取页面的唯一方法是通过 HTTP。也不能外包给第三方。

编辑:我有一个网站上需要检查的所有 URL 的列表。

spell-checking
11个回答
7
投票

Lynx 似乎擅长获取我需要的文本(正文内容和替代文本)并忽略我不需要的内容(嵌入的 Javascript 和 CSS)。

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

它还列出了页面中的所有 URL(转换为绝对形式),可以使用 grep 过滤掉:

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

如果我使用 wget 镜像站点,URL 也可以是本地的 (

file://
)。

我将编写一个脚本,使用此方法处理一组 URL,并将每个页面输出到单独的文本文件。然后,我可以使用现有的拼写检查解决方案来检查文件(或组合所有小文件的单个大文件)。

这将忽略标题和元元素中的文本。这些可以单独进行拼写检查。


2
投票

如果您可以以文件形式访问站点内容,则可以编写一个小型 Unix shell 脚本来完成这项工作。 以下脚本将打印文件名、行号和拼写错误的单词。 输出的质量取决于系统词典的质量。

#!/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

2
投票

只是我发现Spello 网站拼写检查器前几天的一个视图。它使用我的 NHunspell(.NET 的开放办公室拼写检查器) libaray。你可以尝试一下。


2
投票

我强烈推荐Inspyder InSite,它是商业软件,但他们有试用版,非常值得。多年来我一直使用它来检查客户网站的拼写。它支持自动化/调度,并且可以与 CMS 自定义单词列表集成。这也是链接检查并生成报告的好方法。


1
投票

您可以使用结合 wget 和 aspell 的 shell 脚本来完成此操作。您心中有一个编程环境吗?

我个人会使用 python 和 Beautiful Soup 来从标签中提取文本,并通过 aspell 传输文本。


1
投票

如果是一次性的,并且由于要检查的页数,可能值得考虑像spellr.us这样的东西,这将是一个快速的解决方案。您可以在主页上输入您的网站网址,了解它如何报告拼写错误。

http://spellr.us/

但我确信有一些免费的替代品。


0
投票

在您的网络应用程序中使用模板(如果您正在对网站进行编程而不仅仅是编写 html),以及包含拼写检查功能的 html 编辑器。 Eclipse 就是其中之一。

如果由于某种原因这是不可能的......是的,wget下载完成的页面,以及类似这样的东西:

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


0
投票

我们在 ASP.NET 应用程序中使用 Telerik RAD Spell 控件。

Telerik RAD 法术


0
投票

您可能想查看像 jspell 这样的库。


0
投票

我在这里用 Ruby 制作了一个仅限英语的拼写检查器:https://github.com/Vinietskyzilla/fuzzy-wookie [向下链接]

尝试一下。

它的主要缺陷是缺乏一个完整的词典,其中包括每个单词的所有形式(复数,而不仅仅是单数;“has”,不仅仅是“have”)。替换你自己的字典,如果你能找到或制作一本更好的字典,那就太棒了。


除此之外,我认为对单个网页进行拼写检查的最简单方法是按 ctrl+a(或 cmd+a)选择所有文本,然后将其复制并粘贴到网页上的多行文本框中。 (例如

<html><head></head><body><textarea></textarea></body></html>
。)您的浏览器应在所有拼写错误的单词下划线。


-1
投票

@Anthony Roy 我所做的正是你所做的。通过 Pyenchant 将页面传送到 Aspell。我有英语词典(英国、加拿大、美国)可在我的网站上使用 https://www.validator.pro/ [向下链接]。联系我,我会为您安排一次检查1000页或更多的工作

© www.soinside.com 2019 - 2024. All rights reserved.