Code/PHP

[php] 자연어 처리 (natural language processing )

codens 2020. 9. 7. 16:11

 

    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

http://php-nlp-tools.com

    - 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 )

http://www.nltk.org/

    - 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



반응형