NLPから始めるjs


これまでチャットボットを構築し、データプライバシーやサポート言語に関連する道に沿っていくつかのブロックに遭遇したいですか?あなたはChatbot応答時間を減らすか、アクティブなデータ接続なしでそれらを実行したいですか?
場合、または場合は、好奇心旺盛で、もっと学びたい場合は、NLP.jsを試してみてください.

自然言語処理とNLPjs


自然言語処理またはNLPは、言語学とコンピューティングを結合している分野だけでなく、人工知能です.自然言語を正しく理解することは、仮想アシスタント、チャットボット、音声アシスタント、およびマシンとの音声やテキストインターフェイスに基づいて幅広いアプリケーションのために重要です.
これらのアプリケーションは、通常、自然言語処理装置を含み、その目的は、自然言語の一部分から、関連する情報およびメタデータだけでなく、相互作用と意図を抽出し、それらを機械が処理できる何かに変換することである.
NLP自然言語理解、言語生成と命名された実体認識:JSは、70以上のライブラリのオンプレイスオープンソースセットです.NLPの鍵分化機能JSは、増加したデータプライバシーと保安規制と選択を活用している間、改善された反応時間、さらなる言語支持とaccording to some benchmarks、改善された精度を通して強化されたユーザー経験です.

なぜNLPライブラリを持っていますか?


既存のNLPsがどのようにすべての文を処理するか、そして、特定のふるまいが出力としてなぜ起こるかを理解するのは簡単ではありません.このブラックボックスの効果は、なぜチャボットの問題の原因を掘ることなく、特定の方法で答えているの可視性の欠如のために、チャットボットマネージャに不満を引き起こす.
オープンソース・ライブラリとしてNLPを持つことは、より低い自然言語処理のより視認性および理解を提供する.それは技術的な人々がより良い期待される精度レベルを達成するために言語固有の戦略を管理するための会話の処理を理解できるようになります.国ごとに特定の戦略を持つことが必須のアプローチではない場合でも、それは非常に一般的に使用される以外の言語で高性能chatbotsをターゲットにするときに高くお勧めします.

NLPの主な特徴js


言語サポート


NLPJSはBERT embeddingsを使用して104の異なる言語をサポートしています.バートなしで、それはネイティブに41の言語をサポートします.

ステムマー


NLPJSは両方の精度を改善するために両方のstemmersを実装し、同じ結果を達成するために少ない訓練発言を必要とします.それは、NLPを訓練するのに必要なマンパワーとコンピューティング力を劇的に減らします.
stemmersは、単語の茎(ルート)を計算するために使用されるアルゴリズムです.例えば、「開発」、「開発者」、「開発」、「開発」、「開発者」のような言葉は、すべて同じ茎を持つものとして分類されます.これは、NLPによって訓練されるか、分類されるべき文を準備するとき、我々は通常、それらの文を特徴に分割する傾向があるので、これは重要です.いくつかのNLPは、単語にそれらを分割するためにtokenizerを使用しますが、このアプローチによる問題は、言語の異なる屈折を含めるために、より多くの文でNLPを訓練する必要があるかもしれないということです.
あなたがあなたの開発者が誰であるかという文でNLPを訓練する例を考えてください「開発者」という言葉を意図して、誰かが質問をする.stemmerなしで、彼らが同じトークンで識別されないので、語「開発者」と「開発された」は類似していると認められません.この問題は、さらにスペイン語やインドネシア語のような高度に膨らまされた言語では、同じ単語が性別を示すために、または動詞の場合、緊張、気分、および人の例を表すように屈折することができると発音されます.

3 .質問


バートとの統合の結果として、NLPを使用してテキスト上のオープンな質問をすることができます.jsこれは、文章と意図を使用してNLPを訓練する代わりに、あなただけのバートにテキストを提供する必要がありますし、テキスト上の任意の質問をすることができます.NLPJSのバートの統合は、あなたが意図を提供する必要はありません教師なしの分類を持つことが可能になります.
以下に、chatbotに提供されたテキストがハリーポッターに関する情報である例を見ることができます.

エンティティ抽出


NLPJSはいくつかのレベルでエンティティを抽出できます.It includes an optimized named entity extraction that can search and compare millions of possibilities in milliseconds.
また、数字、電子メール、電話番号、測定、URL、通貨などを識別するために、金色の実体抽出を持っています.我々が数を特定することについて話しているとき、数字が「541」のような数桁で書かれるとき、それは非常に単純でありえます、しかし、それは理解していません.通貨と測定242479152で書かれます.

NLPで最大44の言語で可能です。js NLPJSはユーザー経験を最適化するのに役立ちます


データプライバシー、セキュリティと応答時間は、ユーザー経験と全体的な会話システムを改善するための重要な柱です.

データプライバシー


NLP市場のリーダーのほとんどはクラウドベースのソリューションであり、すべてのデータはクラウドで処理されており、場合によってはターゲットカスタマープラットフォームの外側で管理されている.原則として、ほとんどの国のデータのプライバシーの必要性と要件を満たすことを目的とするとき、雲データ処理は大きな問題ではありません.しかし、それはまだドイツ、シンガポール、またはトルコなどの特定の地域でのショーストッパーです.

セキュリティ


NLPライブラリを作るという考えは、必要に応じて全体的な解決を完全に前提に展開することを可能にします.さらに、NLP.JSはデータ接続を必要とせずにスマートフォンで直接実行できます.グローバル化の現在の傾向とすべてをより多くの接続して、データを制御する維持するために完全に前提のソリューションにオープンドアを維持することが重要です..

応答時間


クラウド接続性の必要性を取り除くことによって、レイテンシーとパフォーマンスに関して重要な改善が観察されます.このレイテンシは、NLPを含むことによってさらに回避することができる.組み込みライブラリとしてのJSベンチマークに関して、このより速いパフォーマンスは、他の市場解決に対して重要な違いをハイライトします.

NLPの実行ローカルのJS (例)


まず、ノードが必要です.あなたのコンピュータにインストールされたJS.そうでなければ、 を得ることができます.
次に、プロジェクトのフォルダを作成し、新しいノードプロジェクトでINITをインストールします.依存関係: basic , express-api-server , directline-connector .basicはNLPを実行するのに必要なパッケージをインストールします.JS、express-api-serverは、Chatbotのためにexpressとフロントエンドを使用してAPIサーバーを提供します、そして、directline-connectorはマイクロソフトDirectline 1のようなchatbotのためにAPIを提供します.
mkdir chatbot
cd chatbot
npm init
npm i @nlpjs/basic @nlpjs/express-api-server @nlpjs/directline-connector
今、あなたはあなたのchatbotのための知識データ、意図に組織し、各意図のためだけでなく、答えを訓練するために、コーパスが必要になります.あなたは英語hereまたはhereのコーパスの例にアクセスできます.ダウンロードして、プロジェクトを持っているフォルダの中に入れてください.
curl -O https://raw.githubusercontent.com/axa-group/nlp.js/master/examples/03-qna-pipelines/corpus.json
ファイルを作成します.jsプラグインとプラグインを設定します.次の情報をconf . jsonファイルに入れてこの例を実行します.
{
  "settings": {
    "nlp": {
      "corpora": ["./corpus.json"]
    },
    "api-server": {
      "port": 3000,
      "serveBot": true
    }
  },
  "use": ["Basic", "ExpressApiServer", "DirectlineConnector"]
}
use部はプラグインを含むプラグインの名前で、それぞれのプラグインの構成はsettingsです.この場合、我々はNLPにコーパス、コーパスをロードするように言っています.我々が以前ダウンロードしたJSONファイル.我々はまた、ポートの3000を起動するには、APIサーバーを指示していると我々は、ボットのフロントエンドを自動的に提供するように我々はserveBotをtrueに設定します.
設定をしたので、インデックスを作成しましょう.JSファイルを実行するコードがあります.
const { dockStart } = require("@nlpjs/basic");

(async () => {
  const dock = await dockStart();
  const nlp = dock.get('nlp');
  await nlp.train();
})();
そして、それは我々が必要とするすべてです.アプリケーションを起動できますconst dock = await dockStart()で、我々はNLPに話しています.初期化を行うには、conf . jsonファイルを読み込み、関連するプラグインを定義し、定義された設定で起動します.これは、すべてのプラグインが読み込まれたコンテナを保持するDockインスタンスを返します.その後、const nlp = dock.get('nlp')はドックコンテナからNLPプラグインを取得する場所です.NLPのこのインスタンスには、コーパスが既に設定されていますが、まだ訓練されていないので、await nlp.train()でトレーニングしなければなりません.
そして、それは我々が必要とするすべてです.アプリケーションを起動できます
node .
そして、チャットとチャットを見るためにraw fileに移動してください.

http://localhost:3000 オンラインデモ


あなたがオンラインデモで遊ぶのを好むならば、あなたは の上でコードを『リミックス』することができます.そして、あなたがデモを走らせることができるということを意味して、同様にコードにあなたの修正をして、それで遊ぶことができます.
Glitch

詳細については、といくつかの追加full tutorialにアクセスできます.

コードスニペット オープンソースの値


:「スマートな開発者は、スマートコードでぶらつくのが好きです.ソースコードを開くとき、あなたは才能を引きつけます」.
技術主導の企業になるための我々の野心において、関連するオープンソースプロジェクトとライブラリを共有することは我々のテクノロジーを世界に公開する優れた方法です、我々の会社壁を越えて我々の協同を広げて、さらなる才能との接続の我々の方法を拡大すること.
NLPJSはAXAのオープンソースプログラムの優れた候補です.それはAxa Coreビジネスから特定の何も含んでいません、それは十分に一般的で、再利用されるのが簡単です、そして、我々はそれが従事して、オープンソースコミュニティに貢献する絶好の機会を提供すると思っています.
他の用途と出版物の間で、それはすでに According to Tom Preston-Werner - cofounder of GitHubで使われて、University of Goettingenで発表されました.
あなたがAXAのオープンソースプログラムとテクノロジーについてもっと知りたいならば、連絡してください:Colombia 4.0 AI conference in 2019