Node.js 및 JavaScript용 NLP 라이브러리

이 게시물에서는 우리가 접한 Node.js 및 JavaScript용 최고의 NLP 라이브러리에 대해 이야기할 것입니다. 바로 시작하겠습니다.

자연어 처리(NLP)란 무엇입니까?



자연어란 인간이 서로 소통하는 방식을 말합니다.

자연어 처리(NLP)는 음성 및 텍스트와 같은 자연어를 소프트웨어로 전자적으로 조작하는 것으로 광범위하게 정의됩니다.

NLP는 보다 자연스러운 방식으로 기계와 인간 간의 통신을 개방하기를 원하기 때문에 중요합니다. NLP는 검색 엔진 실행, 감성 분석, 엔터티 인식, 음성 기반 앱, 챗봇, 개인 비서 등 다양한 사용 사례가 있습니다.

자연어 처리(NLP)의 역사는 일반적으로 1950년대에 시작되었습니다. Alan Turing은 인공 지능에 관한 선구적인 중요한 논문인 "Computing Machinery and Intelligence"라는 기사를 발표했습니다.



튜링의 논문 소개



1960년대에 개발된 주목할만한 성공적인 NLP 시스템 중 일부는 SHRDLU와 ELIZA였습니다. 1980년대까지 대부분의 자연어 처리 시스템은 손으로 쓴 복잡한 규칙 세트를 기반으로 했습니다. 1980년대에 기계 학습 알고리즘이 도입된 후 NLP가 활성화되기 시작했습니다.

수십 년이 지난 지금, 세상은 여러 NLP 라이브러리와 엔진으로 가득 차 있습니다. 특히 Node.js 및 JavaScript와 같은 최신 언어에 대해 그 중 일부를 살펴보겠습니다.

Node.js 및 JavaScript용 NLP 라이브러리



Spacy, NLTK 및 CoreNLP와 같은 유용한 NLP 라이브러리가 많이 있지만. 그러나 이러한 라이브러리의 대부분은 JavaScript에서 사용할 수 없습니다. JavaScript에서 좋은 NLP 라이브러리를 찾는 데 어려움을 겪었습니다. 많은 연구와 테스트를 거쳐 유용하다고 판단된 라이브러리는 다음과 같습니다.

1. NLP.js



Github: https://github.com/axa-group/nlp.js

NLP.js는 AXA 그룹에서 개발했습니다. 엔터티 추출, 감정 분석, 자동 언어 식별 등을 포함하여 40개 언어를 지원하는 봇 구축을 위한 NLP 라이브러리입니다.

NLP.js는 챗봇 구축을 위한 완벽한 node.js 라이브러리입니다. 설명서가 매우 명확하고 사용법이 매우 쉽습니다.

다음은 설정이 얼마나 쉬운지 이해하는 데 도움이 되는 기본 코드 스니펫입니다.

const { NlpManager } = require('node-nlp');
const manager = new NlpManager({ languages: ['en'] });

// Adds the utterances and intents for the NLP
manager.addDocument('en', 'goodbye for now', 'greetings.bye');
manager.addDocument('en', 'bye bye take care', 'greetings.bye');

// Train also the NLG
manager.addAnswer('en', 'greetings.bye', 'Till next time');
manager.addAnswer('en', 'greetings.bye', 'see you soon!');

// Train and save the model.
(async() => {
    await manager.train();
    manager.save();
    const response = await manager.process('en', 'I should go now');
    console.log(response);
})();

2. 자연



Github: https://github.com/NaturalNode/natural

Natural은 Node.js의 또 다른 유명한 NLP 라이브러리입니다. "Natural"은 Node.js의 일반적인 자연어 기능입니다. 현재 토큰화, 형태소 분석, 분류, 음성학, tf-idf, WordNet, 문자열 유사성 및 일부 굴절을 지원합니다.

var natural = require('natural');
var tokenizer = new natural.WordTokenizer();
console.log(tokenizer.tokenize("your dog has fleas."));
// [ 'your', 'dog', 'has', 'fleas' ]

console.log(natural.HammingDistance("karolin", "kathrin", false));
console.log(natural.HammingDistance("karolin", "kerstin", false));
// If strings differ in length -1 is returned

3. 타협.쿨



Github: https://github.com/spencermountain/compromise/

Compromise.cool은 실제로 멋지고 가벼운 라이브러리이며 사용하기 매우 쉽습니다. 브라우저에서 NLP를 실행하는 데 사용할 수 있습니다.

타협은 영어로만 작동합니다.

let doc = nlp(entireNovel)

doc.if('the #Adjective of times').text()
// "it was the blurst of times??"
if (doc.has('simon says #Verb')) {
  return true
}

4. Wink.js



Github: https://github.com/winkjs/wink-nlp-utils

Wink는 부정 증폭, 생략 관리, ngram 생성, 줄기, 토큰에 대한 음성 코드 등을 위한 NLP 기능을 제공합니다.

// Load wink-nlp-utils
var nlp = require( 'wink-nlp-utils' );

// Extract person's name from a string:
var name = nlp.string.extractPersonsName( 'Dr. Sarah Connor M. Tech., PhD. - AI' );
console.log( name );

// Tokenize a sentence.
var s = 'For details on wink, check out http://winkjs.org/ URL!';
console.log( nlp.string.tokenize( s, true ) );
// -> [ { value: 'For', tag: 'word' },
//      { value: 'details', tag: 'word' },
//      { value: 'on', tag: 'word' },
//      { value: 'wink', tag: 'word' },
//      { value: ',', tag: 'punctuation' },
//      { value: 'check', tag: 'word' },
//      { value: 'out', tag: 'word' },
//      { value: 'http://winkjs.org/', tag: 'url' },
//      { value: 'URL', tag: 'word' },
//      { value: '!', tag: 'punctuation' } ]

결론



라이브러리 선택은 마지막으로 사용 사례와 사용 중인 기술 스택에 따라 다릅니다. 챗봇 구축을 위한 NLP 라이브러리를 찾고 있다면 NLP.js를 추천합니다.

참조: https://machinelearningmastery.com/natural-language-processing/

https://www.kommunicate.io/blog/nlp-libraries-node-javascript/에 원래 게시됨

좋은 웹페이지 즐겨찾기