Тот же алгоритм перестановки, что и «Charmer Machine», но с прототипированной реализацией. Лучше подходит для большого количества выборков. Использует js 1.7 назначение деструктурирования , если доступно.
// swaps elements at index i and j in array this
// swapping is easy on js 1.7 (feature detection)
Array.prototype.swap = (function () {
var i=0, j=1;
try { [i,j]=[j,i]; }
catch (e) {}
if(i) {
return function(i,j) {
[this[i],this[j]] = [this[j],this[i]];
return this;
}
} else {
return function(i,j) {
var temp = this[i];
this[i] = this[j];
this[j] = temp;
return this;
}
}
})();
// shuffles array this
Array.prototype.shuffle = function() {
for(var i=this.length; i>1; i--) {
this.swap(i-1, Math.floor(i*Math.random()));
}
return this;
}
// returns n unique random numbers between min and max
function pick(n, min, max) {
var a = [], i = max;
while(i >= min) a.push(i--);
return a.shuffle().slice(0,n);
}
pick(8,1,100);
Изменить: другое предложение, более подходящее для небольшого количества выборов, на основе ответа белугабоба. Чтобы гарантировать уникальность, мы удаляем выбранные числа из массива.
// removes n random elements from array this
// and returns them
Array.prototype.pick = function(n) {
if(!n || !this.length) return [];
var i = Math.floor(this.length*Math.random());
return this.splice(i,1).concat(this.pick(n-1));
}
// returns n unique random numbers between min and max
function pick(n, min, max) {
var a = [], i = max;
while(i >= min) a.push(i--);
return a.pick(n);
}
pick(8,1,100);
Lynx, кажется, способен получать просто текст, в котором я нуждаюсь (довольное тело и сопроводительный текст) и игнорирующий, в чем я не нуждаюсь (встроил JavaScript и CSS).
lynx -dump http://www.example.com
Это также перечисляет все URL (преобразованный в их абсолютную форму) на странице, которая может быть отфильтрована с помощью grep:
lynx -dump http://www.example.com | grep -v "http"
URL могли также быть локальны (file://
), если я использовал wget для зеркального отражения сайта.
я запишу сценарий, который обработает ряд URL с помощью этого метода и произведет каждую страницу к отдельному текстовому файлу. Я могу тогда использовать существующее решение для проверки правописания проверить файлы (или единственный большой файл, комбинирующий все маленькие).
Это проигнорирует текст в заголовке и meta элементах. Они могут быть spellchecked отдельно.
Если можно получить доступ к контенту сайта как к файлам, можно записать маленький сценарий оболочки Unix, который делает задание. Следующий сценарий распечатает название файла, номера строки и слов с ошибками. Качество вывода зависит от качества словаря Вашей системы.
#!/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
Используйте шаблоны (хорошо) с Вашим веб-приложением (если Вы программируете сайт вместо того, чтобы просто писать HTML), и HTML-редактор, который включает проверку правописания. Eclipse делает для одного.
, Если это не возможно по некоторым причинам... да, wget для загрузки законченных страниц и чего-то вроде этого:
Если это - то прочь, и из-за числа страниц, чтобы проверить, что это могло бы быть достойно рассмотрения что-то как spellr.us, который будет быстрым решением. Вы можете, входя в Ваш URL веб-сайта на домашней странице для получения ощущения того, как это сообщило бы об орфографических ошибках.
, но я уверен, существуют некоторые свободные альтернативы.
Вы можете сделать это с помощью сценария оболочки, объединяющего wget и aspell. Вы имели в виду среду программирования?
Я бы лично использовал python с Beautiful Soup для извлечения текста из тегов и передачи текста через aspell.
Мы используем управление Написанием RAD Telerik в наших приложениях ASP.NET.
Вы можете проверить библиотеку типа jspell.
Просто за несколько дней до того, как я обнаружил средство проверки орфографии на веб-сайте Spello . Он использует мой NHunspell (Проверка орфографии открытого офиса для .NET) libaray. Вы можете попробовать.