El análisis de texto PHP es una biblioteca para realizar tareas de recuperación de información (IR) y procesamiento del lenguaje natural (PNL) utilizando el lenguaje PHP. Hay herramientas en esta biblioteca que pueden realizar:
Toda la documentación para este proyecto se puede encontrar en el libro y la wiki.
Se está preparando un libro y sus contribuciones son necesarias. Puede encontrar el libro en https://github.com/yooper/php-text-analysis-book
Además, la documentación para la biblioteca también reside en la wiki. https://github.com/yooper/php-text-analysis/wiki
Agregue el análisis de texto PHP a su proyecto
composer require yooper/php-text-analysis
$ tokens = tokenize ( $ text );Puede personalizar con qué tipo de tokenizador tokenizar pasando en el nombre de la clase Tokenizer
$ tokens = tokenize ( $ text , TextAnalysis Tokenizers PennTreeBankTokenizer::class);El tokenizador predeterminado es Textanalysis Tokenizers GeneralTokenizer :: class . Algunos tokenizadores requieren que los parámetros se establezcan en la instancia.
Por defecto, Normalize_Tokens usa la función strtolower para minúsculas todos los tokens. Para personalizar la función Normalizar, pase en una función o una cadena para ser utilizada por 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 ); });La llamada a Freq_Dist devuelve una instancia de FreqDist.
$ freqDist = freq_dist ( tokenize ( $ text ));Por defecto se generan BigRams.
$ bigrams = ngrams ( $ tokens );Personalizar los ngrams
// create trigrams with a pipe delimiter in between each word
$ trigrams = ngrams ( $ tokens , 3 , ' | ' );Por defecto, el método STEM utiliza el Porter Stemmer.
$ stemmedTokens = stem ( $ tokens );Puede personalizar qué tipo de Stemmer usar al pasar por el nombre del nombre de la clase Stemmer
$ stemmedTokens = stem ( $ tokens , TextAnalysis Stemmers MorphStemmer::class);Hay un método de corte corto para usar el algoritmo de rastrillo. Deberá limpiar sus datos antes de usar. El segundo parámetro es el tamaño NGRAM de sus palabras clave para extraer.
$ rake = rake ( $ tokens , 3 );
$ results = $ rake -> getKeywordScores ();Necesita análisis de sentimientos con PHP Use Vader, https://github.com/cjhutto/vadersentiment. La implementación de PHP se puede invocar fácilmente. Simplemente normalice sus datos de antemano.
$ sentimentScores = vader ( $ tokens );Necesita hacer alguna clasificación de documentos con PHP, intentando usar la implementación de Naive Bayes. Se puede encontrar un ejemplo de clasificación de reseñas de películas en las pruebas unitarias
$ 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 ' ));