Intereting Posts
Zend Framework 2 и запрос SELECT (*) PDO, mysql, транзакции и блокировка таблицы MySQL – переименовать столбец Вычислять месяцы между двумя датами с использованием DateInterval без упаковки в течение года добавить php-скрипт в cron для запланированной задачи из php? Предупреждение: mysqli_fetch_array () ожидает, что параметр 1 будет mysqli_result, строка задана Структуры данных PHP (Java-подобные) Коллекции Вызвать javascript-код после нажатия кнопки, а затем обновить страницу PHP MYSQL – заполнять таблицы с нумерацией HTML-таблицы на основе того, соответствуют ли они номер строки Как исправить ошибку с xml2-config не найден при установке PHP из источников? URL-адрес, не принимающий альфа-числовой параметр – Yii2-app-basic Слияние существующего PDF с динамически созданным PDF с использованием TCPDF Запись в текстовый файл вне каталога webroot Как настроить драйвер Microsoft® ODBC 11 для SQL Server® на RedHat Linux с помощью PHP Выравнивание по ширине букв с помощью sprintf

Как разделить абзац на предложения

Я пытался использовать:

$string="The Dr. is here!!! I am glad I'm in the USA for the Dr. quality is great!!!!!!"; preg_match_all('~.*?[?.!]~s',$string,$sentences); print_r($sentences); 

Но это не работает на доктора, США и т. Д.

Есть ли у кого-нибудь лучшие предложения?

для этого нет простого решения. вам нужно сделать некоторую обработку естественного языка (NLP) в своем приложении и распознать каждое предложение. что-то вызывает OpenNLP , это инструмент анализатора NLP на основе JAVA. Или парсер Stanford NLP в Ruby. вы можете найти что-то подобное для php.

здесь я нашел набор классов для обработки естественного языка в PHP.

hmmm может попробовать что-то вроде $sentences = preg_split('/.*?[?.!]+\s+/', $string);

Это почти невозможно, так как в вашем примере четко указано, что знаки пунктуации, которые могут использоваться, например, д-р, США и т. Д., Не позволяют узнать, где начинается или заканчивается предложение.

Вы должны искать следующие символы, чтобы решить, следует ли следующее (начиная с после) новое слово препинания, которое вы упоминаете.