Если это кому-то поможет. У меня была аналогичная проблема. Моя доктрина / инфлектор ожидала php> = 7 по какой-то причине (вот что было в композиторе.json из доктрины / инфлектора). И это несмотря на то, что я выполнил инструкции по установке laravel 5.4.
Я запустил rm -f Composer.lock
и rm -R -f vendor
, а затем выполнил composer install
после vagrant ssh
к домашней виртуальной машине, которая использовала php 5.6.8 (изначально я запустил композитор с моего терминала MacBook, который использовал php 7)
Это позволило устранить проблемы.
У вас никогда не будет префиксного решения словесного подсчета, потому что концепция словария не существует или слишком сложна на некоторых языках. UTF8 или нет, не имеет значения.
Японский и китайский языки не являются языком пространственного токенизма. У них даже нет статического списка слов, вам нужно прочитать все предложение, прежде чем найти глагол и существительное.
Если вы хотите поддерживать несколько языков, вам понадобится конкретный движок токенизатора. Вы можете исследовать полнотекстовый индекс, токенизатор, CJK-токенизатор, CJK-анализатор для получения дополнительной информации.
Если вы хотите поддерживать только ограниченный язык, просто улучшите ваши регулярные выражения все чаще и чаще.
Я думаю, что вы на правильном пути с explode
, но это не обрабатывает регулярное выражение.
Измените свой код на:
$namePattern = '/[\s,:?!]+/u';
$wordsArray = preg_split($namePattern, $text, -1, PREG_SPLIT_NO_EMPTY);
$wordsArray2 = array_count_values($wordsArray);
arsort($wordsArray2);
print_r($wordsArray2);
Of Конечно, вам может понадобиться настроить регулярное выражение ($regexPattern
) для удовлетворения ваших потребностей.
Fiddle: http://ideone.com/JoIJqv