|
|
|
| из текста надо вырезать предложение..как это можно сделать?
делал так:
$p = split("\.",$text);
но это способ и г. Москва разбивает на два предложения | |
|
|
|
|
|
|
|
для: P@Sol
(16.09.2005 в 15:45)
| | А что для вас "предложение"?
> но это способ и г. Москва разбивает на два предложения
Боюсь, что другого не остается, кроме как мириться с этим. Компьютер не возможно научить понимать где закончена мысль, а где нет =) | |
|
|
|
|
|
|
|
для: Artem S.
(16.09.2005 в 16:09)
| | предложение это группа слов начинающееся со слова, которое написано с большой буквы и заканчивающее точкой.
но веть что то типа [а-я]{4,}\. - можно придумать... | |
|
|
|
|
|
|
|
для: P@Sol
(16.09.2005 в 17:08)
| | Проблема же не только в точке.
> которое написано с большой буквы
А цифры, перечисление(1., 2.), прямая речь?
> заканчивающее точкой.
а как же "!" "?"
еще надо учитывать смайлы.
год можно писать как 2005г.
Таких примеров очень много и все их учитывать, конечно, можно, но рационально ли это.
Другими словами, лично я, не вижу как можно по простому "объяснить" компьютеру, где заканчивается одно, и где начинается следующее предложение. | |
|
|
|
|
автор: P@Sol[не вошел] (16.09.2005 в 18:38) |
|
|
для: Artem S.
(16.09.2005 в 17:20)
| | хорошо, тогда вопросы в следующем...
1. как из новости выбрать одно предложение для анонса? | |
|
|
|
|
автор: P@Sol[не вошел] (16.09.2005 в 18:39) |
|
|
для: Artem S.
(16.09.2005 в 17:20)
| | яндекс же как то это сделал | |
|
|
|
|
|
|
|
для: P@Sol[не вошел]
(16.09.2005 в 18:39)
| | Ну у него же частую обрывки фраз... А зачем вам ровно одно пердложение? Возьмите первые 10-20 слов и добавьте троеточие? | |
|
|
|
|
|
|
|
для: cheops
(16.09.2005 в 19:49)
| | мне надо из середины:) можно и 10 слов..а как это сделать7 | |
|
|
|
|
|
|
|
для: P@Sol
(19.09.2005 в 14:16)
| | Хорошо если вы приведёте текст из которого нужно вырезать и текст, а ещё лучше критерии по которым нужно вырезать блок текста... | |
|
|
|
|
|
|
|
для: cheops
(19.09.2005 в 19:30)
| | текст может быть любым, вот для примера:
Уважаемый пользователь!<br><br>
Вы успешно установили систему.
<br><br>
Вы можете ознакомиться с базовыми возможностями системы на примерах демо-сайтов, представленных на данной странице. В каждом макете дизайна вы сможете найти коментарии наших разработчиков. Также, для ознакомления с процессом создания сайта на системе, предлагаем посмотреть <a target=_blank href=>экскурсию</a>.
<br><br>
Обновленные версии <a target=_blank href=>руководства пользователя и разработчика</a>, интересные <a target=_blank href=>советы и приемы</a>, а также <a target=_blank href=>форум поддержки пользователей</a> представлены на сайте.<br><br>
Для входа в режим администрирования, используйте ссылку <a href=/admin/>/admin/</a> (логин и пароль по умолчанию указаны в документации).
|
а надо из этого текста показать только предложение, допустим со словом "макет" (В каждом макете дизайна вы сможете найти коментарии наших разработчиков. ). | |
|
|
|
|
|
|
|
для: P@Sol
(21.09.2005 в 09:32)
| | Ну можно так поступить
<?php
$text = 'Уважаемый пользователь!<br><br>
Вы успешно установили систему.
<br><br>
Вы можете ознакомиться с базовыми возможностями системы на примерах демо-сайтов, представленных на данной странице. В каждом макете дизайна вы сможете найти коментарии наших разработчиков. Также, для ознакомления с процессом создания сайта на системе, предлагаем посмотреть <a target=_blank href=>экскурсию</a>.
<br><br>
Обновленные версии <a target=_blank href=>руководства пользователя и разработчика</a>, интересные <a target=_blank href=>советы и приемы</a>, а также <a target=_blank href=>форум поддержки пользователей</a> представлены на сайте.<br><br>
Для входа в режим администрирования, используйте ссылку <a href=/admin/>/admin/</a> (логин и пароль по умолчанию указаны в документации).';
preg_match_all("|\.([^\.]+макет[^\.]+)\.|i",$text,$out);
echo $out[1][0];
?>
|
PS А... или точкни у нас год обрезают? | |
|
|
|
|
|
|
|
для: cheops
(21.09.2005 в 11:39)
| | поясните пожалуйста preg_match_all()... | |
|
|
|
|
|
|
|
для: P@Sol
(21.09.2005 в 11:45)
| | Это функция поиска соответствия регулярного выражения в строке http://www.softtime.ru/dic/id_dic=136&id_group=3. В отличие от preg_match() ищет все вхождения. Первый параметр - само регулярное выражение, второй параметр - текст в котором ищется соответсвие, а через третий параметр функция возвращает результат в виде массива. | |
|
|
|
|
|
|
|
для: cheops
(21.09.2005 в 11:52)
| | не правильно спросил:) поясните само регулярное выражение
мы ищем все кроме точки повторяющееся более 1 раза + макет + все кроме точки повторяющееся более 1 раза и все это ищется от точки до точки...правильно я понял?
а для чего | и i? | |
|
|
|
|
|
|
|
для: P@Sol
(21.09.2005 в 13:12)
| | Да мы ищем фразу между двумя точками, в которой присутствует слово "макет". Символ | - является границей регулярныйх выражения, вы можете заменить эти символы на любой / или #. Модификатор i сообщает, что регулярное выражение не должно зависить от регистра. | |
|
|
|
|
|
|
|
для: P@Sol
(21.09.2005 в 13:12)
| | Мне кажется, логичнее было бы искать не мужду точками, а между точками с пробелами: в этом случае не будут курочится даты... правда, по прежнему будут неправильно обрабатываться сокращения. | |
|
|
|
|
|
|
|
для: Loki
(22.09.2005 в 09:55)
| | я много раз задавал вопрос...как в регулярных выражениях обозначается пробел? | |
|
|
|
|
|
|
|
для: P@Sol
(22.09.2005 в 14:36)
| | Пробелом, пробел в регулярном выражении - это пробел. Можно использоваться обобщённый класс пробельных символов (пробел, табуляция, первод строки, конец файла и т.п.), который обозначается последовательностью \s | |
|
|
|
|
|
|
|
для: cheops
(22.09.2005 в 14:41)
| | оставил только
preg_match_all("|([^\.]+".$slovo."[^\.]+)|i",$text,$out);
|
т.к. искомые слова могут быть и в заголовках, а там нет точек не с переди, не с зади | |
|
|
|
|
|
|
|
для: P@Sol
(16.09.2005 в 15:45)
| | что то работает не так:( ЭКГ - все верно, ВР - все верно, ЭКГ ВР (ЭКГ и ВР) - не работает:(
тест
в первых 7 пунктах нет описания
Добавлено
см. http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=7875&page=1
----------------------
а как сделать "слово"+еще 3 слова | |
|
|
|
|
|
|
|
для: P@Sol
(07.10.2005 в 16:23)
| | Нужны исходные тексты... так сложно сказать... | |
|
|
|
|
|
|
|
для: cheops
(07.10.2005 в 22:51)
| | исходный текст есть в постах выше
может можно как то еще?
это у меня для поиска....выводить просто заголовок - не информативно....предложения - уж слишком много вариантов...не получается вырезать правильно...не вырезать - страница текста - многовато:( | |
|
|
|