WinkNLP は、自然言語処理 (NLP) 用の JavaScript ライブラリです。 winkNLP は、NLP アプリケーションの開発をより簡単かつ迅速にするために特別に設計されており、パフォーマンスと精度のバランスが適切になるように最適化されています。
単語埋め込みのサポートにより、より深いテキスト分析が可能になります。単語やテキストを数値ベクトルとして簡単に表現できるため、ブラウザ内であっても、意味論的な類似性、テキスト分類などのタスクでより高い精度が得られます。
外部依存性を持たずにゼロから構築されており、圧縮および gzip 圧縮された ~10Kb の無駄のないコード ベースを備えています。 ~100% のテスト カバレッジと Open Source Security Foundation のベスト プラクティスへの準拠により、winkNLP は本番グレードのシステムを自信を持って構築するための理想的なツールとなっています。
WinkNLP は Typescript を完全にサポートしており、Node.js、Web ブラウザー、および 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グラムを生成します。正規化、レンマ化、ステム。適切な種類のテキスト前処理を使用すると、Naive Bayes 分類器でもセンチメント分析やチャットボットの意図分類タスクで驚異的な (90% 以上)精度を達成できる様子を確認してください。 |
?事前トレーニングされた言語モデル | ~1MB から始まるコンパクトなサイズ (縮小および gzip 圧縮) – モデルの読み込み時間を 4G ネットワーク上で ~1 秒まで大幅に短縮します。 |
winkNLP 用に最適化された、350,000 を超える英単語に対する 100 次元の英単語埋め込み。文章やドキュメントの埋め込みを簡単に計算できます。 |
npm install を使用します。
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 で動作するように設計されています。次のセクションで説明するように、ブラウザでも動作します。おすすめのモデルです。
2 番目のコマンドは、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 レシピを調べて、ブラウザベースのライブサンプルを確認してください。
リプリットの例に従ってください。
こちらは「ハローワールド!」 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 マシンで「James Joyce の Ulysses の第 13 章」を使用してベンチマークを行った場合、wink-eng-lite-web-model で生のテキストを 1 秒あたり約 650,000 トークンで処理します。この処理には、トークン化、文境界検出、否定処理、センチメント分析、品詞タグ付け、固有表現抽出などの NLP パイプライン全体が含まれます。この速度は、一般的な速度ベンチマークをはるかに上回っています。
ベンチマークは、Node.js バージョン 16 および 18 で実行されました。
これは、WSJ コーパスのサブセットを~95%の精度で pos タグ付けします。これには、 pos タグ付け前の生のテキストのトークン化が含まれます。現在の最先端の精度は最大 97% ですが、速度は遅く、一般にゴールドスタンダードの事前トークン化されたコーパスを使用して計算されます。
UCI Machine Learning Repository の Amazon Product Review Sentiment Labeled Sentences Data Set を使用して検証すると、その汎用センチメント分析は~84.5%の f スコアを実現します。特別にトレーニングされたモデルの現在のベンチマーク精度は、約 95% の範囲です。
Wink NLP は、RAM への最小限の負荷でこのパフォーマンスを実現します。たとえば、インドの歴史第 1 巻全体を、ピーク時の総メモリ要件が80 MB未満で処理します。この本は約 350 ページあり、これは 125,000 トークン以上に相当します。
Stack Overflow で質問するか、Wink JS GitHub Discussions で議論するか、Wink JS Gitter Lobby でチャットしてください。
バグを発見し、同じことがまだ報告されていない場合は、新しい問題を提起するか、修正して PR を送信することを検討してください。
新しい機能をお探しの場合は、新機能とアイデアのディスカッション フォーラムを通じてリクエストするか、寄稿者になることを検討してください。
WinkJS は、NodeJS の自然言語処理、機械学習、および統計分析用のオープン ソース パッケージ ファミリです。コードは人間が理解しやすいように徹底的に文書化されており、実稼働グレードのソリューションを構築するための信頼性を実現するためのテスト カバレッジは最大 100%です。
Wink NLP の著作権は 2017-24 GRAYPE Systems Private Limited にあります。
MIT ライセンスの条件に基づいてライセンスが付与されています。