[php] 자연어 처리 (natural language processing )
NLP(natural language processing)
- 영어 단어를 기본형(lemma)으로 만들기
//--------------------
skyeng /php-lemmatizer <==== 권장
https://github.com/skyeng/php-lemmatizer - 16
- v1.0.3 , 2017/06
PHP Lemmatizer is a lemmatization library for PHP
- 적용 결과가 좋음
mice => mouse
//--------------------------------
yooper / php-text-analysis
https://github.com/yooper/php-text-analysis - 381
- v1.5.6 , 2020/05
- 설치
composer require yooper/php-text-analysis
- 사용
use TextAnalysis\Stemmers;
$stem = new Stemmers\SnowballStemmer();
$ret = $stem->stem($word);
-
use TextAnalysis\Helpers;
$stemmedTokens = stem($tokens);// 기본은 Porter Stemmer 사용
$stemmedTokens = stem($tokens, \TextAnalysis\Stemmers\SnowballStemmer::class); // Stemmer 지정
//-----------------
MorphStemmer -
에러 Path storage\corpora/wordnet does not exist
해결 방법
function get_storage_path($subDirName = null)
{
//$path = 'storage' . DIRECTORY_SEPARATOR;
$path = storage_path() . DIRECTORY_SEPARATOR; // <== 수정
- 원하는 결과가 나오는데, 메모리 에러 있음
- 아래는 그야말로 stem을 추출 (loved -> lov)
PorterStemmer - ?
SnowballStemmer <=== 가장 쓸만
LancasterStemmer - ?
//-------------------
PHP NlpTools
https://github.com/angeloskath/php-nlp-tools - 635
- v0.1.3 , 2016/11
- 설치
composer require nlp-tools/nlp-tools
- 사용
use NlpTools\Stemmers\Stemmer;
$ret = stem($tokens);
- stem 결과 : played -> plai (문제 있음)
//---------------------------------
Natural Language Toolkit(NLTK )
- python
- 설치
pip nltk
python
>>> import nltk
>>> nltk.download()
- 모두 설치하면 3.5G
- corpora : 2.9G , wordnet : 34M
PHP Stanford Core NLP Adapter: Natural language processing using Stanford server
https://www.phpclasses.org/package/10056-PHP-Natural-language-processing-using-Stanford-server.html