PHP 텍스트 분석은 PHP 언어를 사용하여 정보 검색 (IR) 및 NLP (Natural Language Processing) 작업을 수행하기위한 라이브러리입니다. 이 라이브러리에는 수행 할 수있는 도구가 있습니다.
이 프로젝트의 모든 문서는 책과 위키에서 찾을 수 있습니다.
책이 작품에 있으며 귀하의 기여가 필요합니다. 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 );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 , ' | ' );기본적으로 줄기 방법은 Porter Stemmer를 사용합니다.
$ stemmedTokens = stem ( $ tokens );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 );순진한 Bayes 구현을 사용하여 PHP를 사용하여 문서 분류를 수행해야합니다. 영화 리뷰를 분류하는 예는 단위 테스트에서 찾을 수 있습니다.
$ 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 ' ));