WinkNLP는 자연어 처리(NLP)를 위한 JavaScript 라이브러리입니다. NLP 애플리케이션 개발을 더 쉽고 빠르게 만들기 위해 특별히 설계된 winkNLP는 성능과 정확성의 올바른 균형을 위해 최적화되었습니다.
단어 임베딩 지원을 통해 더 깊은 텍스트 분석이 가능해졌습니다. 단어와 텍스트를 숫자 벡터로 쉽게 표현하여 의미적 유사성, 텍스트 분류 등의 작업에서 더 높은 정확도를 제공합니다. 브라우저 내에서도 마찬가지입니다.
외부 종속성 없이 기본적으로 구축되었으며 축소 및 gzip으로 압축된 약 10Kb의 코드 기반을 갖습니다. 최대 100%의 테스트 적용 범위와 Open Source Security Foundation 모범 사례 준수로 인해 winkNLP는 자신 있게 프로덕션 등급 시스템을 구축하는 데 이상적인 도구입니다.
Typescript를 완벽하게 지원하는 WinkNLP는 Node.js, 웹 브라우저 및 Deno에서 실행됩니다.
위키피디아 기사 타임라인 | 상황 인식 단어 구름 | 핵심 문장 탐지 |
---|---|---|
더 자세히 알아보려면 실제 사례를 살펴보세요.
WinkNLP는 브라우저와 Node.js 환경 모두에서 M1 Macbook Pro에서 초당 650,000 토큰 이상의 속도로 대량의 원시 텍스트를 쉽게 처리할 수 있습니다. 저사양 스마트폰의 브라우저에서도 원활하게 실행됩니다.
환경 | 벤치마킹 명령 |
---|---|
Node.js | 노드 벤치마크/실행 |
브라우저 | 브라우저에서 winkNLP의 속도를 측정하는 방법은 무엇입니까? |
WinkNLP에는 토큰화, 문장 경계 감지(sbd), 부정 처리, 감정 분석, 품사(pos) 태깅, 명명된 엔터티 인식(ner), 사용자 지정 엔터티 인식(cer)을 다루는 포괄적인 자연어 처리(NLP) 파이프라인이 있습니다. . 풍부한 기능 세트를 제공합니다:
? 빠르고 무손실 다국어 토크나이저 | 예를 들어, 다국어 텍스트 문자열 "¡Hola! नमस्कार! Hi! Bonjour chéri" 는 ["¡", "Hola", "!", "नमस्कार", "!", "Hi", "!", "Bonjour", "chéri"] . 토크나이저는 M1 MBP 브라우저에서 초당 400만 토큰에 가까운 속도로 텍스트를 처리합니다. |
개발자 친화적이고 직관적인 API | winkNLP를 사용하면 간단하고 선언적인 구문을 사용하여 모든 텍스트를 처리할 수 있습니다. 대부분의 실제 예제에는 30~40 줄의 코드가 있습니다. |
? 동급 최고의 텍스트 시각화 | HTML 마크나 원하는 다른 태그를 사용하여 프로그래밍 방식으로 토큰, 문장, 엔터티 등을 표시합니다 . |
♻️ 광범위한 텍스트 처리 기능 | 품사, 명명된 엔터티 유형, 토큰 유형, 불용어, 모양 등과 같은 특정 속성을 가진 토큰을 제거 및/또는 유지합니다. Flesch 읽기 용이성 점수를 계산합니다. n-그램을 생성합니다. 정규화, lemmatise 또는 줄기. 올바른 종류의 텍스트 전처리를 통해 Naive Bayes 분류기가 어떻게 감정 분석 및 챗봇 의도 분류 작업에서 인상적인(≥90%) 정확도를 달성하는지 확인하세요. |
? 사전 훈련된 언어 모델 | ~1MB(최소화 및 gzip)부터 시작하는 컴팩트한 크기 – 4G 네트워크에서 모델 로딩 시간을 ~1초로 대폭 줄입니다. |
winkNLP에 최적화된 350,000개 이상의 영어 단어에 대한 100차원 영어 단어 임베딩입니다. 문장 또는 문서 임베딩을 쉽게 계산할 수 있습니다. |
npm 설치를 사용하세요:
npm install wink-nlp --save
winkNLP 설치 후 사용하기 위해서는 사용하는 노드 버전에 따른 언어 모델도 설치해야 합니다. 아래 표에는 버전별 설치 명령이 요약되어 있습니다.
Node.js 버전 | 설치 |
---|---|
16 또는 18 | npm install wink-eng-lite-web-model --save |
14 또는 12 | node -e "require('wink-nlp/models/install')" |
wink-eng-lite-web-model은 Node.js 버전 16 또는 18에서 작동하도록 설계되었습니다. 다음 섹션에 설명된 대로 브라우저에서도 작동할 수 있습니다. 추천드리는 모델입니다.
두 번째 명령은 Node.js 버전 14 또는 12에서 작동하는 wink-eng-lite-model을 설치합니다.
tsconfig.json
파일에서 esModuleInterop
및 allowSyntheticDefaultImports
활성화합니다.
"compilerOptions": {
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
...
}
브라우저에서 winkNLP를 사용하는 경우 wink-eng-lite-web-model을 사용하세요. 브라우저에서 winkNLP 사용 가이드에서 설치 및 사용법에 대해 알아보세요. 라이브 브라우저 기반 예제를 보려면 Observable에서 winkNLP 레시피를 살펴보세요.
relit의 예를 따르세요.
여기에 "Hello World!"가 있습니다. winkNLP의:
// Load wink-nlp package.
const winkNLP = require ( 'wink-nlp' ) ;
// Load english language model.
const model = require ( 'wink-eng-lite-web-model' ) ;
// Instantiate winkNLP.
const nlp = winkNLP ( model ) ;
// Obtain "its" helper to extract item properties.
const its = nlp . its ;
// Obtain "as" reducer helper to reduce a collection.
const as = nlp . as ;
// NLP Code.
const text = 'Hello World?! How are you?' ;
const doc = nlp . readDoc ( text ) ;
console . log ( doc . out ( ) ) ;
// -> Hello World?! How are you?
console . log ( doc . sentences ( ) . out ( ) ) ;
// -> [ 'Hello World?!', 'How are you?' ]
console . log ( doc . entities ( ) . out ( its . detail ) ) ;
// -> [ { value: '?', type: 'EMOJI' } ]
console . log ( doc . tokens ( ) . out ( ) ) ;
// -> [ 'Hello', 'World', '?', '!', 'How', 'are', 'you', '?' ]
console . log ( doc . tokens ( ) . out ( its . type , as . freqTable ) ) ;
// -> [ [ 'word', 5 ], [ 'punctuation', 2 ], [ 'emoji', 1 ] ]
RunKit에서 winkNLP를 실험해보세요.
winkNLP는 16GB RAM이 장착된 M1 Macbook Pro 시스템에서 "Ch 13 of Ulysses by James Joyce"를 사용하여 벤치마킹했을 때 wink-eng-lite-web-모델을 사용하여 초당 최대 650,000개의 토큰 으로 원시 텍스트를 처리합니다. 처리에는 토큰화, 문장 경계 감지, 부정 처리, 감정 분석, 품사 태깅, 명명된 엔터티 추출 등 전체 NLP 파이프라인이 포함되었습니다. 이 속도는 일반적인 속도 벤치마크보다 훨씬 앞서 있습니다.
벤치마크는 Node.js 버전 16 및 18에서 수행되었습니다.
이는 ~95% 의 정확도로 WSJ 말뭉치의 하위 집합에 pos 태그를 지정합니다. 여기에는 pos 태그 지정 전 원시 텍스트의 토큰화가 포함됩니다. 현재의 최첨단 기술은 ~97%의 정확도를 가지고 있지만 속도는 더 낮으며 일반적으로 사전 토큰화된 금본위제 코퍼스를 사용하여 계산됩니다.
범용 감정 분석은 UCI Machine Learning Repository에서 Amazon 제품 리뷰 감정 레이블이 지정된 문장 데이터 세트를 사용하여 검증했을 때 ~84.5% 의 f-점수를 제공합니다. 특별히 훈련된 모델의 현재 벤치마크 정확도는 약 95% 범위입니다.
Wink NLP는 RAM에 대한 부하를 최소화하면서 이러한 성능을 제공합니다. 예를 들어, 총 최대 메모리 요구 사항이 80MB 미만인 인도 볼륨 I의 전체 역사를 처리합니다. 이 책은 약 350페이지로 구성되어 있으며 이는 125,000개가 넘는 토큰에 해당합니다.
Stack Overflow에 문의하거나 Wink JS GitHub 토론에서 토론하거나 Wink JS Gitter Lobby에서 채팅해 보세요.
버그를 발견했지만 동일한 내용이 아직 보고되지 않은 경우 새로운 문제를 제기하거나 버그를 수정하고 PR을 보내는 것을 고려해보세요.
새로운 기능을 찾고 있다면 새로운 기능 및 아이디어 토론 포럼을 통해 요청하거나 기여자가 되는 것을 고려해 보세요.
WinkJS는 NodeJS의 자연어 처리 , 기계 학습 및 통계 분석을 위한 오픈 소스 패키지 제품군입니다. 코드는 사람이 쉽게 이해할 수 있도록 철저하게 문서화 되어 있으며 프로덕션 등급 솔루션을 구축하기 위한 안정성에 대해 ~100%의 테스트 범위를 갖습니다.
Wink NLP의 저작권은 2017-24 GRAYPE Systems Private Limited입니다.
MIT 라이선스 조건에 따라 라이선스가 부여됩니다.