Анализ текста PHP - это библиотека для выполнения задач поиска информации (IR) и обработки естественного языка (NLP) с использованием языка PHP. В этой библиотеке есть инструменты, которые могут выполнять:
Вся документация для этого проекта можно найти в книге и вики.
Книга в работе, и ваш вклад необходим. Вы можете найти книгу на https://github.com/yooper/php-text-analysis-book
Кроме того, документация для библиотеки также находится в вики. https://github.com/yooper/php-text-analysis/wiki
Добавьте анализ текста PHP в свой проект
composer require yooper/php-text-analysis
$ tokens = tokenize ( $ text );Вы можете настроить, какой тип токенизатора будет токенизировать, передавая имя класса Tokenizer
$ tokens = tokenize ( $ text , TextAnalysis Tokenizers PennTreeBankTokenizer::class);Токенизатор по умолчанию - textanalysis tokenizers generaltokenizer :: class . Некоторые токенизаторы требуют, чтобы параметры были установлены на экземпляре.
По умолчанию Normalize_tokens использует функцию StrtoLower для запуска всех токенов. Чтобы настроить функцию Normalize, передайте функцию или строку, которая будет использоваться Array_Map.
$ normalizedTokens = normalize_tokens (array $ tokens ); $ normalizedTokens = normalize_tokens (array $ tokens , ' mb_strtolower ' );
$ normalizedTokens = normalize_tokens (array $ tokens , function ( $ token ){ return mb_strtoupper ( $ token ); });Призыв к freq_dist возвращает экземпляр Freqdist.
$ freqDist = freq_dist ( tokenize ( $ text ));По умолчанию генерируются биграмы.
$ bigrams = ngrams ( $ tokens );Настройте NGRAM
// create trigrams with a pipe delimiter in between each word
$ trigrams = ngrams ( $ tokens , 3 , ' | ' );По умолчанию метод STEM использует Stemmer Porter.
$ stemmedTokens = stem ( $ tokens );Вы можете настроить, какой тип ствола использовать, передавая имя имени класса Stemmer
$ stemmedTokens = stem ( $ tokens , TextAnalysis Stemmers MorphStemmer::class);Существует краткий метод использования алгоритма грабли. Вам нужно будет очистить свои данные перед использованием. Второй параметр - это размер NGRAM ваших ключевых слов для извлечения.
$ rake = rake ( $ tokens , 3 );
$ results = $ rake -> getKeywordScores ();Требуется анализ настроений с PHP Использовать Vader, https://github.com/cjhutto/vadersentiment. Реализация PHP может быть легко вызвана. Просто нормализуйте свои данные перед рукой.
$ sentimentScores = vader ( $ tokens );Нужно сделать некоторую классификацию документов с PHP, пытаясь использовать реализацию наивного Байеса. Пример классификации обзоров фильмов можно найти в модульных тестах
$ nb = naive_bayes ();
$ nb -> train ( ' mexican ' , tokenize ( ' taco nacho enchilada burrito ' ));
$ nb -> train ( ' american ' , tokenize ( ' hamburger burger fries pop ' ));
$ nb -> predict ( tokenize ( ' my favorite food is a burrito ' ));