تحليل نص 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 );يمكنك تخصيص أي نوع من الرمز المميز الذي يميزه من خلال المرور باسم فئة الرمز المميز
$ tokens = tokenize ( $ text , TextAnalysis Tokenizers PennTreeBankTokenizer::class);الرمز المميز الافتراضي هو textanalysis tokenizers GeneralTokenizer :: Class . تتطلب بعض المميزات المعلمات التي سيتم تعيينها على مثيل.
بشكل افتراضي ، يستخدم Normalize_tokens الدالة strtoLower لصقل جميع الرموز. لتخصيص وظيفة تطبيع ، تمرير إما في دالة أو سلسلة لاستخدامها بواسطة 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.
$ bigrams = ngrams ( $ tokens );تخصيص ngrams
// create trigrams with a pipe delimiter in between each word
$ trigrams = ngrams ( $ tokens , 3 , ' | ' );بشكل افتراضي ، يستخدم STEM STEMMER Porter.
$ stemmedTokens = stem ( $ tokens );يمكنك تخصيص نوع STEMMER الذي يجب استخدامه عن طريق تمرير اسم فئة 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 ، ومحاولة استخدام تطبيق Bayes الساذج. يمكن العثور على مثال على تصنيف مراجعات الأفلام في اختبارات الوحدة
$ 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 ' ));