PHP: функция подсчёта слов в тексте
10.05.2011 технологии
Набросал простенькую функцию, код можете взять здесь. Есть настройка минимальной длины слова. На выходе получаем ассоциативный массив примерно такого вида:
[организаций] => 3
[сфере] => 2
[питания] => 2
[данной] => 2
[общественного] => 2
[облегчает] => 1
[учетом] => 1
То есть сортировка от максимальной встречаемости и далее убывает. Для моей задачи, правда, надо ещё слова с общим корнем приводить к одной форме, но это уже слишком специфично.
Добавил AND !is_numeric($word), чтобы в списке «слов» не было чисел.
Комментарии
Комментирование этой статьи закрыто.
« 10 хороших привычек в UNIX И ещё один косяк PHP (str_word_count) »
Хм, оказывается «\W» считает словом не только буквы-цифры, но и нижнее подчеркивание. Не знал) Может быть багом, если на вход кто-нибудь захочет дать строчку с таким разделителем.
Плюс слова «как-нибудь» и аналогичные считаются за два.
Да, с дефисом будет обломс… но, можно маленько переделать выражение. Для меня не критично.
Собираешься решение сам писать или готовое использовать? Самому скоро придется аналогичным заниматься, пока смотрю только в сторону phpMorphy (хотя еще не юзал), т. к. велосипед изобретать не особо хочется, да и муторно это слишком.
Свой лисапед буду делать на основе similar_text(). Не особо сложно на самом деле. А тебе для чего? :)
На относительно общественных началах способствую развитию околонаучного проектика по хитрожопому анализу текста. Раньше с меня было какой-то биллинг к этому прикрутить, чтобы попытаться идею коммерциализировать, а сейчас видимо надо все с нуля переписывать, т. к. текущие исходники мега древние (php4 еще) и не масштабируемые.
Ну и да, все еще хочу свой мега дорген написать. Первый интеллектуальный тм =)
Лематайзер юзай. Работает в шелле никсов, но умеет принимать команды ото всего. Ну и возвращает по желанию и количество, и инфинитивы, и даже часть речи пытается угадать для неизвестных слов.
Это часть яндекса, лежащая в открытом доступе.
я кстати в посте на хабре делал похожее (Ищи Фишки для изучающих англ язык
Домен пробакланил?