php text analysis
Update Snowball Stemmer Library
PHP文本分析是使用PHP语言执行信息检索(IR)和自然语言处理(NLP)任务的库。该库中有一些可以执行的工具:
该项目的所有文档都可以在书籍和Wiki中找到。
一本书正在制作中,需要您的贡献。您可以在https://github.com/yooper/php-text-analysis-book上找到这本书
另外,图书馆的文档也位于Wiki中。 https://github.com/yooper/php-text-analysis/wiki
将PHP文本分析添加到您的项目
composer require yooper/php-text-analysis
$ tokens = tokenize ( $ text );您可以通过以Tokenizer类的名义自定义与令牌化的标记
$ 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 , ' | ' );默认情况下,词干方法使用搬运工。
$ 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进行一些文档分类,并尝试使用Naive 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 ' ));