Скрипт для очистки текста от мусора

12 3
alexandr_nv
На сайте с 23.04.2009
Offline
39
14245

PHP-скрипт для очистки текстов от мусора (по заданным фильтрам)

Описание

Скрипт разбивает текст на предложения, затем проверяет каждое предложение по фильтрами. Если совпало - предложение удаляется. Все предложения, прошедшие проверку записываются в результирующий файл.

Скрипт хорошо подходит для создания текстовок для доров из сканированных книг, в которых бывает полно мусора. И что ещё хуже, часто бывает, что русские буквы заменены на внешне идентичные английские буквы.

После работы скрипта в результирующем файле будут сохранены только чистые предложения (в зависимости от выбранных фильтров).

Требования

PHP 4

Фильтры

Для удобства все фильтры выведены в отдельный файл "filters.txt" и легко могут быть изменены\добавлены.

ps) Для тех, кто хочет другой фильтр и не разбирается в регулярных выражениях - пишите в ветке, подскажу

#

# Фильтры, по которым будут проверяться предложения.
# При совпадении фильтра с предложением - предложение удаляется.
# Формат записи: [регулярное выражение] [разделитель-символы табуляции] [описание]
#

/^.{0,5}$/ Удалять предложения длинной менее 6 символов
/^[^А-ЯЁA-Z]/ Удалять предложения, начинающиеся не с заглавной буквы
/[А-ЯЁ]{2}/ Удалять предложения, в которых присутствует 2 и более подряд идущих заглавных букв
/[^а-я0-9ё \-,]/i Удалять предложения, в которых присутствуют любые символы отличные от русских букв, цифр, тире и запятой
/^([^\s]+\s?){0,3}$/ Удалять предложения, в которых менее 4 слов
/^.+[А-ЯЁA-Z]/ Удалять предложения, в которых есть заглавные буквы не в начале предложения (обычно, это имена собственные, названия и т.п.)

Скачать

http://trindex.ru/download/textcleaner.zip (4 кб)

//PS) Целесообразность чистки текстовок для доров каждый решает для себя. И флеймить на эту тему в этой ветке не нужно!

S@shka
На сайте с 27.09.2009
Offline
157
#1

Хороший скрипт, думаю новичкам пригодится. Скачал ,хотя есть подобный ,но у вас фильтров больше. Если нетрудно сделайте сохранение обработанных файлов в отдельную папку.

alexandr_nv
На сайте с 23.04.2009
Offline
39
#2
S@shka:
Если нетрудно сделайте сохранение обработанных файлов в отдельную папку.

Создайте папку в корне скрипта, назовите её "otdelnaya_papka" и в поле "куда сохранять" напишите "otdelnaya_papka\result.txt", не вижу проблемы

mazya
На сайте с 03.04.2007
Offline
96
#3

Спасибо alexandr_nv, весьма полезный скрипт.

monetka
На сайте с 20.03.2008
Offline
114
#4

Как можно задать удалять предложения, которые начинаются с тире и с пробелом потом тире? Чтобы удалять диалоги.

mazya
На сайте с 03.04.2007
Offline
96
#5
monetka:
Как можно задать удалять предложения, которые начинаются с тире и с пробелом потом тире? Чтобы удалять диалоги.

В скрипте по умолчанию удаляются тире. Для написания такого фильтра сперва закоменти строку

$data = preg_replace("/^\s*-|-\s*/", "", $data);

Т.к. в скрипте по умолчанию сперва удаляются лишние пробелы, то фильтр будет таким

/^[\-]/i
Solo_by
На сайте с 19.06.2009
Offline
220
#6
monetka:
Как можно задать удалять предложения, которые начинаются с тире и с пробелом потом тире? Чтобы удалять диалоги.

А зачем их удалять? Просто убрать тире и переносы не катит?

D3
На сайте с 08.02.2009
Offline
55
#7

KWK нормально с этой задачей справляется + можно писать свои фильтры, например от запрещенки, если на исходник пускаешь новости или документалку.

А вообще такой скрипт - штука полезная.

ciber
На сайте с 04.01.2008
Offline
215
#8

Клон -=Светы=-?

A
На сайте с 21.04.2008
Offline
71
#9

в KWK есть не все функции,

а какой макс размер файла можно подсовывать7

C
На сайте с 16.08.2007
Offline
45
#10

Было бы круто, если бы использовали более интеллектуальные способы определения границ предложений, например, принцип максимальной энтропии :)

Способы разбиения текста на предложения

Chesser.Ru - ecommerce, shops, x-cart, seo (http://chesser.ru/blog/) Моя репутация - это более 10 000 часов кодинга на PHP моим клиентам по всему миру
12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий