Die PHP -Textanalyse ist eine Bibliothek zur Durchführung von Informationen zum Abrufen von Informationen (IR) und natürlichen Sprachverarbeitung (NLP) unter Verwendung der PHP -Sprache. In dieser Bibliothek gibt es Tools, die ausführen können:
Die gesamte Dokumentation für dieses Projekt finden Sie im Buch und Wiki.
Ein Buch ist in Arbeit und Ihre Beiträge sind erforderlich. Sie finden das Buch unter https://github.com/yooper/php-text-analysis-book
Auch die Dokumentation für die Bibliothek liegt im Wiki. https://github.com/yooper/php-text-analysis/wiki
Fügen Sie Ihrem Projekt PHP -Textanalyse hinzu
composer require yooper/php-text-analysis
$ tokens = tokenize ( $ text );Sie können anpassen, welche Art von Tokenizer zum Tokenisieren, indem Sie den Namen der Tokenizer -Klasse übergeben
$ tokens = tokenize ( $ text , TextAnalysis Tokenizers PennTreeBankTokenizer::class);Der Standard -Tokenizer ist Textanalyse Tokenizer GeneralTokenizer :: Class . Einige Tokenisierer benötigen die Einstellung von Parametern zur Instanziierung.
Standardmäßig verwendet Normalize_Tokens die Funktion Strtolower , um alle Token zu unterbinden. Um die Normalisierungsfunktion anzupassen, geben Sie entweder eine Funktion oder eine String ein, die von array_map verwendet werden soll.
$ normalizedTokens = normalize_tokens (array $ tokens ); $ normalizedTokens = normalize_tokens (array $ tokens , ' mb_strtolower ' );
$ normalizedTokens = normalize_tokens (array $ tokens , function ( $ token ){ return mb_strtoupper ( $ token ); });Der Anruf an freq_dist gibt eine Freqdist -Instanz zurück.
$ freqDist = freq_dist ( tokenize ( $ text ));Standardmäßig werden Bigrams generiert.
$ bigrams = ngrams ( $ tokens );Passen Sie die NGRAMS an
// create trigrams with a pipe delimiter in between each word
$ trigrams = ngrams ( $ tokens , 3 , ' | ' );Standardmäßig verwendet die STEM -Methode den Porter Stemmer.
$ stemmedTokens = stem ( $ tokens );Sie können anpassen, welche Art von Stemmer verwendet werden soll, indem Sie den Namen des Stemmer -Klasse -Namens übergeben
$ stemmedTokens = stem ( $ tokens , TextAnalysis Stemmers MorphStemmer::class);Es gibt eine Abkürzungsmethode zur Verwendung des Rake -Algorithmus. Sie müssen Ihre Daten vor der Verwendung reinigen. Der zweite Parameter ist die NGRAM -Größe Ihrer zu extrahierenden Schlüsselwörter.
$ rake = rake ( $ tokens , 3 );
$ results = $ rake -> getKeywordScores ();Benötigen Sie eine Stimmungsanalyse mit PHP -Verwenden Sie Vader, https://github.com/cjhutto/vadersentiment. Die PHP -Implementierung kann leicht aufgerufen werden. Normalisieren Sie einfach Ihre Daten vorher.
$ sentimentScores = vader ( $ tokens );Müssen eine Dokumentenklassifizierung mit PHP durchführen und versuchen, die naive Bayes -Implementierung zu verwenden. Ein Beispiel für die Klassifizierung von Filmkritiken finden Sie in den Unit -Tests
$ 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 ' ));