GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

RasaHQ

rasa_nlu – 自然言語を構造化データに変換する

投稿日:

自然言語を構造化データに変換する https://nlu.rasa.ai/

ラサNLU

ラサNLU(自然言語理解)は、短いテキストで何が言われているのかを理解するためのツールです。 たとえば、次のような短いメッセージを表示します。

“私は町の中心にあるメキシコのレストランを探しています”

構造化されたデータを返す:

  intent: search_restaurant
  entities: 
    - cuisine : Mexican
    - location : center

Rasa NLUは主にチャットボットと音声アプリケーションを構築するために使用され、インテント分類とエンティティ抽出と呼ばれます。 ラサを使用するには、いくつかのトレーニングデータを提供する必要があります つまり、すでにインテントとエンティティでラベル付けした一連のメッセージです。 ラサは機械学習を使用してパターンを拾い、目に見えない文章を一般化します。

既存のNLPライブラリとMLライブラリを使用して、独自の言語パーサを構築するための高水準APIセットとしてRasa NLUを考えることができます。

あなたがRasa NLUを初めて使用していて、ボットを作成したい場合は、 チュートリアルから始める必要があります。

クイックインストール

完全なインストール手順を熟読し、ドキュメントに向かいましょう: インストール

ドッカー画像経由ドッカーハブから:

docker run -p 5000:5000 rasa/rasa_nlu:latest-full

(ドッカーのインストールオプションの詳細については、 ドッカーの高度なインストールを参照してください)

Pythonライブラリ経由で pypiから:

pip install rasa_nlu
python -m rasa_nlu.server &

(その他のpythonインストールオプションについては、「 高度なPythonインストール 」を参照してください)

基本テスト

以下のコマンドは、上記のどちらの方法でも実行できます。

curl 'http://localhost:5000/parse?q=hello'

使用例

サーバステータスの取得

curl 'http://localhost:5000/status'

サーバーのバージョンを確認する

curl 'http://localhost:5000/version'

新しいモデルのトレーニング

トレーニングデータフォーマットのドキュメントが提供されています。 しかし、新しいモデルを訓練するためのクイックスタートとして以下のコマンドを実行します

Json形式

curl 'https://raw.githubusercontent.com/RasaHQ/rasa_nlu/master/data/examples/rasa/demo-rasa.json' | \
curl --request POST --header 'content-type: application/json' -d@- --url 'localhost:5000/train?project=test_model&pipeline=keyword'

これは単純なキーワードベースのモデルを訓練します(このデモ以外は使用できません)。 より良いパイプラインについては、ドキュメントを参照してください。

マークダウン形式

wget 'https://raw.githubusercontent.com/RasaHQ/rasa_nlu/master/data/examples/rasa/demo-rasa.md'
curl --request POST --data-binary @demo-rasa.md --url 'localhost:5000/train?project=test_model&pipeline=keyword'

上記のコマンドは、次の処理を行います。

  1. Repoのサンプルデータの一部を取得します。
  2. そのデータを/trainエンドポイントにPOSTSし、model /name=test_model

新しいリクエストの解析

以下のコマンドを実行する前に上記のコマンドが終了していることを確認してください。 上記の/statusコマンドで確認できます。

curl 'http://localhost:5000/parse?q=hello&model=test_model'

よくある質問

誰のためですか?

意図したオーディエンスは、主にボットを開発している人たちです 。最初から始めるか、 ウィットLUISDialogflowのドロップイン置換を探しています。 セットアッププロセスは、できるだけシンプルになるように設計されています。 Rasa NLUはPythonで書かれていますが、 HTTP APIを通じてどの言語からでも使用できます プロジェクトがPythonで書かれている場合は、関連するクラスを単純にインポートすることができます 現在Wit / LUIS / Dialogflowを使用している場合は、次のようにします。

  1. ウィット、LUIS、またはDialogflowからアプリデータをダウンロードし、Rasa NLUにフィードします
  2. あなたのマシンでRasa NLUを実行し、あなたのウィット/ LUIS APIコールのURLをlocalhost:5000/parse切り替えます。

なぜ私はRasa NLUを使うべきですか?

  • FB / MSFT / GOOGにデータを引き渡す必要はありません
  • すべてのメッセージを解析するためにhttps呼び出しを行う必要はありません。
  • 特定のユースケースでうまく動作するようにモデルをチューニングすることができます。

これらの点は、 ブログ記事に詳細に記載されています。 Rasaは、Rasa社によって開発された、より高度なボットを構築するための一連のツールです。 Rasa NLUは、自然言語を理解するモジュールであり、オープンソースになる最初のコンポーネントです。

それはどの言語をサポートしていますか?

短い答え:現在英語、ドイツ語、スペイン語。 長い答え:新しい言語を追加したい場合は、トークナイザと単語ベクトルのセットが必要です。 詳細は、 言語のドキュメントを参照してください

貢献する方法

私たちはあなたの貢献を受け取り、併合することが非常にうれしいです。 ドキュメントのコードとドキュメントのスタイルに関する情報がいくつかあります

一般に、このプロセスはかなり簡単です。

  1. 作業したい機能を説明する問題を作成します(または、ラベルのヘルプの問題を見てみましょ
  2. コード、テスト、文書を書く
  3. あなたの変更を記述するプルリクエストを作成する

あなたはプルのリクエストは、必要な変更や質問についてあなたに戻ってくるかもしれない管理者によって見直されるでしょう。 また、 コントリビュータライセンス契約に署名するように求められます

高度なインストール

高度なPython

githubから:

git clone git@github.com:RasaHQ/rasa_nlu.git
cd rasa_nlu
pip install -r requirements.txt
pip install -e .

ローカル開発では、開発要件を確実にインストールしてください。

pip install -r alt_requirements/requirements_dev.txt
pip install -e .

インストールの使用をテストするには(これは非常にばかげたデフォルトモデルを実行します。 あなた自身のモデル訓練して何か便利なことをする必要があります ):

高度なドッカー

始める前に、マシンに最新バージョンのドッカーエンジンがインストールされていることを確認してください。 ドッカーがインストールされているかどうかは、端末にdocker -vと入力して確認できます。

利用可能なすべてのビルドを表示するには、 Rasaドッカーハブに移動しますが、起動するには最も速く実行するだけです:

docker run -p 5000:5000 rasa/rasa_nlu:latest-full

/app/projects/app/logs/app/data 3つのボリュームもあり/app/data 新しい設定ファイルを/app/config.jsonというボリュームにマッピングすることで、サーバが使用する設定ファイルを上書きすることもできます。 ドッカーの使用方法の完全な説明については、公式ドッカーのreadmeを参照してください

テストするには、コンテナが起動した後で以下のコマンドを実行します。 HTTP APIの使用に関する詳細はこちらをご覧ください

curl 'http://localhost:5000/parse?q=hello'

ドッカー雲

警告! Docker Cloudを設定することはかなり関わっています.Docker Cloud Node(またはSwarm)を既に設定していない限り、この方法はお勧めできません。

Spacy用の事前訓練モデルのインストール

spaCyバックエンドを使用するには、あらかじめ用意されたモデルのいずれかをインストールしてください。

python -m spacy download en

開発内部

新しいバージョンをリリースする手順

パッケージはtravisによってビルドされ、配布されるので、新しいバージョンのリリースは非常に簡単です。 新しいバージョンをリリースするには、次のことを行う必要があります

  1. 正しいバージョン番号を反映するようにrasa_nlu / version.pyを更新する
  2. CHANGELOG.rstを編集して、リリース用の新しいセクションを作成し(たとえば、収集されたマスターセクションからアイテムを移動することによって)、新しいマスターロギングセクションを作成します
  3. 移行ガイドを編集して、ユーザーが新しいバージョンへの更新を支援する
  4. 上記の変更をすべてコミットし、新しいリリースにタグを付けます。
    git tag -f 0.7.0 -m "Some helpful line describing the release"
    git push origin master --tags
    

    travisはこのタグを作成し、パッケージをpypiにプッシュします

  5. メジャーリリースの場合にのみ、将来のマイナーパッチを許可するタグと同じコミットを指す新しいブランチを作成する必要があります。
    git checkout -b 0.7.x
    git push origin 0.7.x
    

テストの実行

テストを実行するには、開発要件がインストールされていることを確認してください。

make test

ライセンス

Apache License、Version 2.0でライセンスされています。 Copyright 2018 Rasa Technologies GmbH。 ライセンスのコピー

参考資料として、以下に、本書の執筆時点における異なる依存関係のライセンス一覧を示します。 最低限の依存関係のライセンス:

必要なパッケージ ライセンス
ジーヴェント MIT
クライン MIT
boto3 Apache License 2.0
タイピング PSF
未来 MIT
6 MIT
jsonschema MIT
matplotlib PSF
リクエスト Apache License 2.0

オプションの依存関係のライセンス(Rasa NLUの特定のコンポーネントでのみ必要です。したがって、オプションです)。

オプションのパッケージ ライセンス
スペーシー MIT
シキット学習 BSD 3節
サイキー BSD 3節
貧弱 BSD 3節
アヒル Apache License 2.0
sklearn-crfsuite MIT
曇り点 BSD 3節
google-cloud-storage Apache License 2.0







-RasaHQ
-, , , , , , , , , , , , , , , , , ,

執筆者: