Парсер предложений из текста

Статус
В этой теме нельзя размещать новые ответы.

Croner

Постоялец
Регистрация
12 Ноя 2006
Сообщения
119
Реакции
19
Нужно из русских текстов выдирать предложения. Помогите с регуляркой какой нибуть.
Тексты в текстовых файлах пока что, но могуть быть и в html.
 
а если без регулярок?

PHP:
$text="Нужно из русских текстов выдирать предложения. Помогите с регуляркой какой нибуть.
Тексты в текстовых файлах пока что, но могуть быть и в html.";
$predl=explode(".",$text);
print_r($predl);

выдаст:

HTML:
Array
(
    [0] => Нужно из русских текстов выдирать предложения
    [1] =>  Помогите с регуляркой какой нибуть
    [2] => 
Тексты в текстовых файлах пока что, но могуть быть и в html
    [3] => 
)

недостатков конечно куча - например если в тексте встретится "Иванов А.Б." - скрипт примет это за 3 предложения :)
с другой стороны всё и не предусмотришь - нюансов куча будет.
 
Это простейший вариант.
Проблема вылазит с ткого рода текстами
Код:
 - К "Авроре". - И поясним для непонятливых, чтоб не  переспросили  насчет
кафе, магазина, ресторана или гостиницы: - К крейсеру.  -  И  уж  для  самых
туповатых уточним: - На Петроградскую набережную. К Сампсониевскому мостику.
А также всякие фамилии, сокращения и т.д. :confused:
 
  • Заблокирован
  • #4
зато есть повод усовершенствовать свои знания пхп
 
Я тоже в свое время парился над подобной задачей, более-менее приемлемых результатов удалось добиться таким алгоритмом:

1) удаляем теги (через strip_tags())
2) в полученном тексте ищем фрагменты, которые
- начинаются на заглавную букву
- заканчиваются на точку
- содержат от 3 до 32 слов.

Кол-во слов определять через split() по пробелу и потом count() получившегося массивчика. Простого подсчета пробельных символов здесь недостаточно.
 
1) удаляем теги (через strip_tags())
2) в полученном тексте ищем фрагменты, которые
- начинаются на заглавную букву
- заканчиваются на точку
- содержат от 3 до 32 слов...

Я разбивал предложения по точке/многоточию/вопр.знаку/воскл.знаку и пробелу за ними. Перед этим удалил все отдельные тире, кавычки и прочий мусор.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху