Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/amay077/luistrainer
LUIS の examples - Add label REST API を CSV から投げまくるコマンドラインツール
https://github.com/amay077/luistrainer
cognitive-services dotnet luis microsoft
Last synced: 5 days ago
JSON representation
LUIS の examples - Add label REST API を CSV から投げまくるコマンドラインツール
- Host: GitHub
- URL: https://github.com/amay077/luistrainer
- Owner: amay077
- Created: 2017-12-26T08:41:17.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2017-12-26T10:34:57.000Z (about 7 years ago)
- Last Synced: 2024-11-08T01:42:08.750Z (about 2 months ago)
- Topics: cognitive-services, dotnet, luis, microsoft
- Language: C#
- Homepage:
- Size: 26.4 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
LuisTrainer
----## これはなに?
Microsoft Cognitive services のひとつ LUIS(Language Understanding Intelligent Service) - [luis.ai](https://www.luis.ai/) に、「サンプル文章」をバッチで連続登録するツールです。
## どこでうごかせる?
.NET Standard 2.0 で作ったコマンドラインアプリなので、
* macOS (with .NET Core)
* Windows (with .NET Framework)
* Linux (with .NET Core)で動きます(後者2つは試してないけど)。
## 動かし方
macOS と Linux の場合は [.NET Core](https://dotnet.github.io/) をインストールして ``dotnet`` コマンドが使えるようにしてくださいね。
次に [Releases](https://github.com/amay077/LuisTrainer/releases) に添付されている ``LuisTrainer_vX.X.zip`` をダウンロードして展開してください。
次のような感じでプログラム ``LuisTrainer.dll`` を実行します。渡すパラメータは 4つ です。
```
dotnet LuisTrainer.dll "path/to/examples.csv" appid=LUISのAppID appkey=LUISのAppKey versionid=LUISAppのバージョン実際の例:
dotnet LuisTrainer.dll "./csv/examples.csv" appid=516xxxxx-xxxx-xxxx-xxxx-xzxxxxxxxxxxx appkey=5e38xxxxxxxxxxxxxxxxxxxxxxxxxxxx versionid=0.1
```1. ``"path/to/examples.csv"`` - 学習させるサンプルデータが格納されたCSV。後述します。
2. ``appid=LUISのAppID`` - luis.ai でアプリケーションを作成すると割り振られるAppIDです。
3. ``appkey=LUISのAppKey`` - luis.ai でアプリケーションを作成すると割り振られるAppKeyです。
4. ``versionid=LUISAppのバージョン`` - luis.ai アプリケーションのバージョンです。 ``0.1`` とか。## サンプルデータCSV仕様
次のような様式のCSVファイルを記述してください。文字コードは ``UTF-8`` 限定です。
|Text|Intent|Status|Update_ts|(EntityName1)|(EntityName2)|(EntityName…)|
|:---|:---|:---|:---|:---|:---|:---|
|学習させる文章|LUISのIntent名|0以外だと処理済としてスキップします|このツールが処理した日時|EntityName1として学習させたい単語|EntityName2として学習させたい単語|EntityNameとして学習させたい単語…|``Text``, ``Intent``, ``Status``, ``Update_ts`` は必須列です。
それ以外の列は、LUISのEntity名に対応させた列を任意の数定義できます。例えば、 LUIS で「今日の東京の天気を知りたい」という文章から GetWeather という Intent を得たいとき、 luis.ai には、次のような Intent と Entity を定義することになると思います。
* Intent - GetWeather : 天気を得るという「意図」
* Entity - Day : いつ?(例: 今日、明日、12月23日)
* Entity - City : 場所や地名(例: 東京、名古屋、ニューヨーク)このような Intent と Entity 群の定義であるとき、サンプルデータCSV は次のように記述します。
|Text|Intent|Status|Update_ts|Day|City|
|:---|:---|:---|:---|:---|:---|
|今日の東京の天気を知りたい|GetWeather|0||今日|東京|
|明日の大阪の天気は?|GetWeather|0||明日|大阪|
|ニューヨークの5月12日の天気はどうですか?|GetWeather|0||5月12日|ニューヨーク|この CSV を渡してプログラムを実行すると、 luis.ai の [REST API - examples - Add label](https://westus.dev.cognitive.microsoft.com/docs/services/5890b47c39e2bb17b84a55ff/operations/5890b47c39e2bb052c5b9c08) を実行して、それぞれの例文と Entity をラベル付けします。
学習自体やAPIのPublishは行わないので、Train コマンドは luis.ai の Web画面や REST API から行ってください。
プログラムの処理が終わると、結果を ``path/to/examples.csv.out`` に出力します。出力されたファイルには、``Status`` が ``1`` に、 ``Update_ts`` には処理日時が格納されます。
## なんでつくった?
LUIS の Web画面 − Review endpoint utterances で、未学習の例文を評価して追加できるんですけど、この画面では単語の区切りが自動になってしまって、任意の単語を指定できないのです。例えば「東京都の明日の天気を知りたい」という文章で「東京都」を Entity として登録したいのに画面では「東京」としか登録できません。なんだか REST API を叩くしか方法が見つからなかったので作りました。
end of contents