L'analyse du texte PHP est une bibliothèque pour effectuer des tâches de récupération d'informations (IR) et de traitement du langage naturel (NLP) en utilisant le langage PHP. Il existe des outils dans cette bibliothèque qui peuvent fonctionner:
Toute la documentation de ce projet se trouve dans le livre et le wiki.
Un livre est en préparation et vos contributions sont nécessaires. Vous pouvez trouver le livre sur https://github.com/yooper/php-text-analysis-book
De plus, la documentation de la bibliothèque réside également dans le wiki. https://github.com/yooper/php-text-analysis/wiki
Ajouter une analyse de texte PHP à votre projet
composer require yooper/php-text-analysis
$ tokens = tokenize ( $ text );Vous pouvez personnaliser le type de tokenizer avec lequel tokenize en passant au nom de la classe de tokenizer
$ tokens = tokenize ( $ text , TextAnalysis Tokenizers PennTreeBankTokenizer::class);Le tokenizer par défaut est textanalysis tokenizers GeneralTokenizer :: Class . Certains jetons nécessitent des paramètres pour être définis lors de l'instanciation.
Par défaut, Normalize_Tokens utilise la fonction Strtolower pour tous les jetons. Pour personnaliser la fonction de normalisation, passez dans une fonction ou une chaîne à utiliser par 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 ); });L'appel à FREQ_DIST renvoie une instance Freqdist.
$ freqDist = freq_dist ( tokenize ( $ text ));Par défaut, les bigrams sont générés.
$ bigrams = ngrams ( $ tokens );Personnalisez les ngrams
// create trigrams with a pipe delimiter in between each word
$ trigrams = ngrams ( $ tokens , 3 , ' | ' );Par défaut, la méthode STEM utilise le Porter STEMMER.
$ stemmedTokens = stem ( $ tokens );Vous pouvez personnaliser le type de tige à utiliser en passant au nom du nom de classe STEMMER
$ stemmedTokens = stem ( $ tokens , TextAnalysis Stemmers MorphStemmer::class);Il existe une méthode à court terme pour utiliser l'algorithme Rake. Vous devrez nettoyer vos données avant de l'utiliser. Le deuxième paramètre est la taille NGRAM de vos mots clés à extraire.
$ rake = rake ( $ tokens , 3 );
$ results = $ rake -> getKeywordScores ();Besoin d'analyse des sentiments avec PHP Utilisez Vader, https://github.com/cjhutto/vadersentiment. L'implémentation PHP peut être invoquée facilement. Normalisez simplement vos données avant la main.
$ sentimentScores = vader ( $ tokens );Besoin de faire une classification des documents avec PHP, en essayant d'utiliser l'implémentation naïve de Bayes. Un exemple de classification des critiques de films peut être trouvé dans les tests unitaires
$ 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 ' ));