php str_word_count

#php

#php

Вопрос:

Я пытаюсь подсчитать количество слов в абзацах текстов. Прямо сейчас я использую str_word_count , и все идет отлично, за исключением того, что одинарные кавычки все портят.

Функция считает 'propter' и propter как разные слова. Он также считает et' и et , 'non и non как разные слова.

Как я могу заставить функцию игнорировать одиночные кавычки. Весь текст написан на латыни, поэтому в словах нет одиночных кавычек (если это имеет какое-либо значение).

Комментарии:

1. Вы пытались использовать str_replace("'", '', $str) перед использованием str_word_cound ?

Ответ №1:

Вы всегда можете удалить одинарные кавычки перед использованием str_word_count() .

Ответ №2:

Немного хакерское решение, но вы должны быть в состоянии сделать:

 $count = str_word_count(str_replace("'",'',$str));
  

… и получите желаемый ответ, учитывая приведенные выше примеры проблем.

Редактировать

Если вы пытаетесь получить количество уникальных слов в отрывке, как предложил Пабло М. Прието, вы можете сделать это следующим образом:

 $count = count(array_unique(str_word_count(strtolower(str_replace("'",'',$str)),1)));
  

Ответ №3:

На самом деле, это поведение str_word_count() функции по умолчанию. Подсчитывает количество слов в абзаце.

Так что, если у вас есть:

 $paragraph = "Lorem ipsum dolor sit amet 'lorem' ipsum 'dolor'";
  

и

 $paragraph = "Lorem ipsum dolor sit amet lorem ipsum dolor";
  

он вернет int(8) для них обоих.

Вы пытались подсчитать количество уникальных слов в абзаце?