Здравствуйте!
Я хотел бы извлечь все цитаты из текста. Кроме того, следует указать имя цитируемого лица. DayLife делает это очень хорошо.
Пример:
«Они думают, что это« игра окончена », – сказал один из высокопоставленных чиновников администрации.
Фраза Они думают, что это «игра», и цитированный человек должен быть извлечен одним из старших должностных лиц администрации .
Как вы думаете, это возможно? Вы можете различать цитаты и слова в кавычках, если вы проверяете, упоминается ли упомянутый человек.
Пример:
«Я думаю, что это серьезно, и оно ухудшается», – заявил в воскресенье в программе CNN «Состояние Союза» адмирал Маллен.
Проходное государство Союза не является котировкой. Но как вы это обнаруживаете? a) Вы проверяете, упоминается ли упомянутое лицо. б) Вы считаете пробелы в предполагаемой котировке. Если будет меньше 3 пробелов, это не будет цитата, не так ли? Я бы предпочел b), поскольку не всегда упоминается имя человека.
Как начать?
Сначала я бы заменил все типы кавычек на один тип, чтобы вам пришлось проверять только один знак кавычки позже.
<?php $text = ''; $quote_marks = array('“', '”', '„', '»', '«'); $text = str_replace($quote_marks, '"', $text); ?>
Затем я извлечу все фразы между кавычками, которые содержат более трех пробелов:
<?php function extract_quotations($text) { $result = preg_match_all('/"([^"]+)"/', $text, $found_quotations); if ($result == TRUE) { return $found_quotations; // check for count of blank spaces } return array(); } ?>
Как вы могли это улучшить?
Я надеюсь, что вы можете мне помочь. Заранее большое спасибо!