A análise de texto PHP é uma biblioteca para executar tarefas de recuperação de informações (IR) e processamento de linguagem natural (PNL) usando o idioma PHP. Existem ferramentas nesta biblioteca que podem executar:
Toda a documentação para este projeto pode ser encontrada no livro e na wiki.
Um livro está em andamento e suas contribuições são necessárias. Você pode encontrar o livro em https://github.com/yooper/php-text-analysis-book
Além disso, a documentação para a biblioteca também reside no wiki. https://github.com/yooper/php-text-analysis/wiki
Adicione a análise de texto PHP ao seu projeto
composer require yooper/php-text-analysis
$ tokens = tokenize ( $ text );Você pode personalizar com qual tipo de tokenizer tokenize, passando o nome da classe Tokenizer
$ tokens = tokenize ( $ text , TextAnalysis Tokenizers PennTreeBankTokenizer::class);O tokenizer padrão é textanálise tokenizers generalTokenizer :: Class . Alguns tokenizadores exigem que os parâmetros sejam definidos após a instanciação.
Por padrão, o normalize_tokens usa a função strTolower para baixar todos os tokens. Para personalizar a função Normalizar, passe em uma função ou em uma string a ser usada pelo 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 ); });A chamada para FREQ_DIST retorna uma instância freqdist.
$ freqDist = freq_dist ( tokenize ( $ text ));Por padrão, os bigrams são gerados.
$ bigrams = ngrams ( $ tokens );Personalize os ngrams
// create trigrams with a pipe delimiter in between each word
$ trigrams = ngrams ( $ tokens , 3 , ' | ' );Por padrão, o método STEM usa o porter Stemmer.
$ stemmedTokens = stem ( $ tokens );Você pode personalizar qual tipo de Stemmer usar, passando o nome do nome da classe STEMMER
$ stemmedTokens = stem ( $ tokens , TextAnalysis Stemmers MorphStemmer::class);Existe um método de atalho para usar o algoritmo de ancinho. Você precisará limpar seus dados antes de usar. O segundo parâmetro é o tamanho do Ngram de suas palavras -chave para extrair.
$ rake = rake ( $ tokens , 3 );
$ results = $ rake -> getKeywordScores ();Precisa de análise de sentimentos com PHP Use Vader, https://github.com/cjhutto/vadersentiment. A implementação do PHP pode ser invocada facilmente. Apenas normalize seus dados antes da mão.
$ sentimentScores = vader ( $ tokens );Precisa fazer alguma classificação de documentos com PHP, tentando usar a implementação ingênua de Bayes. Um exemplo de classificação de críticas de filmes pode ser encontrado nos testes de unidade
$ 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 ' ));