nlu_tools 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/Gemfile.lock +26 -13
- data/README.md +40 -2
- data/data/simple_test.json +18 -0
- data/data/simple_train.json +38 -0
- data/lib/nlu_tools/cli/import.rb +34 -20
- data/lib/nlu_tools/cli/test.rb +35 -19
- data/lib/nlu_tools/version.rb +1 -1
- data/nlu_tools.gemspec +2 -0
- data/schema/nlu_testing_data.json +33 -0
- data/schema/nlu_training_data.json +33 -0
- metadata +34 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 205a7f60e574bca2be39388e5cc4b570649d07593d10b4072cbe4f8a8ee91051
|
|
4
|
+
data.tar.gz: 2519efe88b93f42abc13408453ee1bac35c608781a6162cfc3e260cee9edb913
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b437466a2f80dc1a6a3ce032986afceca1073215cd96afb458fec8c7709dcbbbdc6d3dcd487fb3f28a119f931ace1e1a5856dc43a22c2ba442e546c099197fe4
|
|
7
|
+
data.tar.gz: 11d6bfc0e6e6369638c0a205c3654e616825c8a72ab112f62bc4ae1cfcf5fcdf476e4ce228f20ed508594c3866c315fd660ba17f1768d31f4f17a4ce9ce36fbd
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
nlu_tools (0.1.
|
|
4
|
+
nlu_tools (0.1.1)
|
|
5
|
+
json_schemer (~> 0.2.7)
|
|
5
6
|
nlu_adapter (~> 0.1.6)
|
|
7
|
+
thor (~> 0.20.3)
|
|
6
8
|
|
|
7
9
|
GEM
|
|
8
10
|
remote: https://rubygems.org/
|
|
@@ -11,13 +13,13 @@ GEM
|
|
|
11
13
|
public_suffix (>= 2.0.2, < 5.0)
|
|
12
14
|
ast (2.4.0)
|
|
13
15
|
aws-eventstream (1.0.3)
|
|
14
|
-
aws-partitions (1.
|
|
16
|
+
aws-partitions (1.223.0)
|
|
15
17
|
aws-sdk-core (3.68.1)
|
|
16
18
|
aws-eventstream (~> 1.0, >= 1.0.2)
|
|
17
19
|
aws-partitions (~> 1.0)
|
|
18
20
|
aws-sigv4 (~> 1.1)
|
|
19
21
|
jmespath (~> 1.0)
|
|
20
|
-
aws-sdk-lex (1.
|
|
22
|
+
aws-sdk-lex (1.20.0)
|
|
21
23
|
aws-sdk-core (~> 3, >= 3.61.1)
|
|
22
24
|
aws-sigv4 (~> 1.1)
|
|
23
25
|
aws-sdk-lexmodelbuildingservice (1.21.0)
|
|
@@ -29,6 +31,8 @@ GEM
|
|
|
29
31
|
diff-lcs (1.3)
|
|
30
32
|
domain_name (0.5.20190701)
|
|
31
33
|
unf (>= 0.0.5, < 1.0.0)
|
|
34
|
+
ecma-re-validator (0.2.0)
|
|
35
|
+
regexp_parser (~> 1.2)
|
|
32
36
|
eventmachine (1.2.7)
|
|
33
37
|
faraday (0.17.0)
|
|
34
38
|
multipart-post (>= 1.2, < 3)
|
|
@@ -37,29 +41,30 @@ GEM
|
|
|
37
41
|
websocket-driver (>= 0.5.1)
|
|
38
42
|
google-cloud-dialogflow (0.2.3)
|
|
39
43
|
google-gax (~> 1.3)
|
|
40
|
-
google-gax (1.
|
|
41
|
-
google-protobuf (~> 3.
|
|
42
|
-
googleapis-common-protos (>= 1.3.
|
|
43
|
-
googleauth (
|
|
44
|
-
grpc (
|
|
44
|
+
google-gax (1.8.1)
|
|
45
|
+
google-protobuf (~> 3.9)
|
|
46
|
+
googleapis-common-protos (>= 1.3.9, < 2.0)
|
|
47
|
+
googleauth (~> 0.9)
|
|
48
|
+
grpc (~> 1.24)
|
|
45
49
|
rly (~> 0.2.3)
|
|
46
|
-
google-protobuf (3.9.2)
|
|
50
|
+
google-protobuf (3.9.2-x86_64-linux)
|
|
47
51
|
googleapis-common-protos (1.3.9)
|
|
48
52
|
google-protobuf (~> 3.0)
|
|
49
53
|
googleapis-common-protos-types (~> 1.0)
|
|
50
54
|
grpc (~> 1.0)
|
|
51
55
|
googleapis-common-protos-types (1.0.4)
|
|
52
56
|
google-protobuf (~> 3.0)
|
|
53
|
-
googleauth (0.
|
|
57
|
+
googleauth (0.10.0)
|
|
54
58
|
faraday (~> 0.12)
|
|
55
59
|
jwt (>= 1.4, < 3.0)
|
|
56
60
|
memoist (~> 0.16)
|
|
57
61
|
multi_json (~> 1.11)
|
|
58
62
|
os (>= 0.9, < 2.0)
|
|
59
|
-
signet (~> 0.
|
|
60
|
-
grpc (1.24.0)
|
|
63
|
+
signet (~> 0.12)
|
|
64
|
+
grpc (1.24.0-x86_64-linux)
|
|
61
65
|
google-protobuf (~> 3.8)
|
|
62
66
|
googleapis-common-protos-types (~> 1.0)
|
|
67
|
+
hana (1.3.5)
|
|
63
68
|
http (3.3.0)
|
|
64
69
|
addressable (~> 2.3)
|
|
65
70
|
http-cookie (~> 1.0)
|
|
@@ -76,6 +81,11 @@ GEM
|
|
|
76
81
|
http (~> 3.3)
|
|
77
82
|
jaro_winkler (1.5.3)
|
|
78
83
|
jmespath (1.4.0)
|
|
84
|
+
json_schemer (0.2.7)
|
|
85
|
+
ecma-re-validator (~> 0.2)
|
|
86
|
+
hana (~> 1.3)
|
|
87
|
+
regexp_parser (~> 1.5)
|
|
88
|
+
uri_template (~> 0.7)
|
|
79
89
|
jwt (2.2.1)
|
|
80
90
|
matrix (0.1.0)
|
|
81
91
|
memoist (0.16.0)
|
|
@@ -94,6 +104,7 @@ GEM
|
|
|
94
104
|
public_suffix (4.0.1)
|
|
95
105
|
rainbow (3.0.0)
|
|
96
106
|
rake (13.0.0)
|
|
107
|
+
regexp_parser (1.6.0)
|
|
97
108
|
rly (0.2.3)
|
|
98
109
|
rspec (3.9.0)
|
|
99
110
|
rspec-core (~> 3.9.0)
|
|
@@ -116,15 +127,17 @@ GEM
|
|
|
116
127
|
ruby-progressbar (~> 1.7)
|
|
117
128
|
unicode-display_width (>= 1.4.0, < 1.7)
|
|
118
129
|
ruby-progressbar (1.10.1)
|
|
119
|
-
signet (0.
|
|
130
|
+
signet (0.12.0)
|
|
120
131
|
addressable (~> 2.3)
|
|
121
132
|
faraday (~> 0.9)
|
|
122
133
|
jwt (>= 1.5, < 3.0)
|
|
123
134
|
multi_json (~> 1.10)
|
|
135
|
+
thor (0.20.3)
|
|
124
136
|
unf (0.1.4)
|
|
125
137
|
unf_ext
|
|
126
138
|
unf_ext (0.0.7.6)
|
|
127
139
|
unicode-display_width (1.6.0)
|
|
140
|
+
uri_template (0.7.0)
|
|
128
141
|
websocket-driver (0.7.1)
|
|
129
142
|
websocket-extensions (>= 0.1.0)
|
|
130
143
|
websocket-extensions (0.1.4)
|
data/README.md
CHANGED
|
@@ -11,6 +11,7 @@ $ gem install nlu_tools
|
|
|
11
11
|
|
|
12
12
|
## Usage
|
|
13
13
|
|
|
14
|
+
### get help
|
|
14
15
|
```bash
|
|
15
16
|
$ nlu_toolset help
|
|
16
17
|
$ nlu_toolset import help
|
|
@@ -21,6 +22,43 @@ $ nlu_toolset test help lex
|
|
|
21
22
|
$ nlu_toolset test help dialogflow
|
|
22
23
|
```
|
|
23
24
|
|
|
25
|
+
|
|
26
|
+
### setup keys
|
|
27
|
+
```bash
|
|
28
|
+
$ export AWS_REGION='AWS_REGION'
|
|
29
|
+
$ export AWS_ACCESS_KEY_ID='AWS_ACCESS_KEY_ID'
|
|
30
|
+
$ export AWS_SECRET_ACCESS_KEY='AWS_SECRET_ACCESS_KEY'
|
|
31
|
+
$ export GOOGLE_APPLICATION_CREDENTIALS='/path/to/google-project-key.json'
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### importing training data
|
|
36
|
+
```bash
|
|
37
|
+
$ nlu_toolset import lex -f ./data/simple_train.json --botname testbot
|
|
38
|
+
|
|
39
|
+
$ nlu_toolset import dialogflow -f ./data/simple_train.json -p google-project-id
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### running tests
|
|
43
|
+
```bash
|
|
44
|
+
$ nlu_toolset test lex -f ./data/simple_test.json --botname testbot -o output_l.csv -t summary
|
|
45
|
+
|
|
46
|
+
$ nlu_toolset test dialogflow -f ./data/simple_test.json -p google-project-id -o output_d.csv
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### creating training & test data
|
|
50
|
+
The sample training and testing json files in [data](data) directory has two intents taken for simplicity from [Watson Assistant Sample Application repo](https://github.com/watson-developer-cloud/assistant-simple/) / [bank_simple_workspace.json](https://github.com/watson-developer-cloud/assistant-simple/blob/master/training/bank_simple_workspace.json). It is generated using [jq](https://stedolan.github.io/jq/). Please feel free to fetch the file and run the below commands to generate the full training & test set.
|
|
51
|
+
|
|
52
|
+
#### get all intents and its examples except the last 2 for training:
|
|
53
|
+
```bash
|
|
54
|
+
$ jq '{"training_data": [.intents[] | {"intent":.intent, "utterences":[.examples[].text] | .[:-2]}]}' data/bank_simple_workspace.json > ./data/simple_train.json
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
#### get the last 2 intents and its examples for testing:
|
|
58
|
+
```bash
|
|
59
|
+
$ jq '{"testing_data": [.intents[] | {"intent":.intent, "utterences":[.examples[].text] | .[-2:]}]}' data/bank_simple_workspace.json > ./data/simple_test.json
|
|
60
|
+
```
|
|
61
|
+
|
|
24
62
|
## Development
|
|
25
63
|
|
|
26
64
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
|
@@ -29,7 +67,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
|
29
67
|
|
|
30
68
|
## Contributing
|
|
31
69
|
|
|
32
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
|
70
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/technopreneurG/nlu_tools. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
|
33
71
|
|
|
34
72
|
## License
|
|
35
73
|
|
|
@@ -37,4 +75,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
|
|
|
37
75
|
|
|
38
76
|
## Code of Conduct
|
|
39
77
|
|
|
40
|
-
Everyone interacting in the NluTools project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/
|
|
78
|
+
Everyone interacting in the NluTools project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/technopreneurG/nlu_tools/blob/master/CODE_OF_CONDUCT.md).
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"testing_data": [
|
|
3
|
+
{
|
|
4
|
+
"intent": "Banking-General_Rate_Query",
|
|
5
|
+
"utterences": [
|
|
6
|
+
"APR for personal credit cards",
|
|
7
|
+
"interest rates for personal credit cards"
|
|
8
|
+
]
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"intent": "Loyalty_Program-Loyalty_Status",
|
|
12
|
+
"utterences": [
|
|
13
|
+
"Am I still part of the rewards program?",
|
|
14
|
+
"Am I still in the loyalty program?"
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"training_data": [
|
|
3
|
+
{
|
|
4
|
+
"intent": "Banking-General_Rate_Query",
|
|
5
|
+
"utterences": [
|
|
6
|
+
"who can i contact to talk about credit card rates",
|
|
7
|
+
"credit card rates at the moment",
|
|
8
|
+
"credit cards interest rate information",
|
|
9
|
+
"What are the interest rates on your credit cards",
|
|
10
|
+
"how about your credit card interest rates",
|
|
11
|
+
"annual percentage rate credit cards",
|
|
12
|
+
"are your card interest rates high",
|
|
13
|
+
"current interest rate for credit cards",
|
|
14
|
+
"credit cards rate of interest",
|
|
15
|
+
"What are your credit card interest rates",
|
|
16
|
+
"What are your credit card APR rates",
|
|
17
|
+
"What is the interest rate on your credit cards",
|
|
18
|
+
"tell me the annual percentage rate on your credit card",
|
|
19
|
+
"What credit card interest rate do you charge",
|
|
20
|
+
"are your APR rates low for your credit card",
|
|
21
|
+
"What is the APR on your credit cards",
|
|
22
|
+
"credit card interest rate information",
|
|
23
|
+
"would like to know about credit card rates"
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"intent": "Loyalty_Program-Loyalty_Status",
|
|
28
|
+
"utterences": [
|
|
29
|
+
"Can I use loyalty points",
|
|
30
|
+
"Can you tell me where Im at with the rewards points",
|
|
31
|
+
"status of loyalty program",
|
|
32
|
+
"Is this account still in the loyalty scheme",
|
|
33
|
+
"Where am I at with the loyalty program",
|
|
34
|
+
"Do I still have access to loyalty rewards"
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
}
|
data/lib/nlu_tools/cli/import.rb
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
require 'pathname'
|
|
3
|
+
require 'json_schemer'
|
|
2
4
|
|
|
3
5
|
module NluTools
|
|
4
6
|
# The subcommand import
|
|
@@ -29,12 +31,19 @@ module NluTools
|
|
|
29
31
|
exit(1)
|
|
30
32
|
end
|
|
31
33
|
intents = JSON.parse(File.read(options[:file]))
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
schema = Pathname.new('schema/nlu_training_data.json')
|
|
35
|
+
schemer = JSONSchemer.schema(schema)
|
|
36
|
+
if schemer.valid?(intents)
|
|
37
|
+
d = NluAdapter.new(:Dialogflow,
|
|
38
|
+
project_id: options[:project_id],
|
|
39
|
+
session_id: 'SESSION1')
|
|
40
|
+
intents['training_data'].each do |intent|
|
|
41
|
+
i = d.new_intent(intent['intent'], intent['utterences'])
|
|
42
|
+
d.create_intent(i)
|
|
43
|
+
end
|
|
44
|
+
else
|
|
45
|
+
puts "Training data is not in valid format\nPlease check data/simple_train.json for reference"
|
|
46
|
+
exit(1)
|
|
38
47
|
end
|
|
39
48
|
end
|
|
40
49
|
|
|
@@ -65,21 +74,26 @@ module NluTools
|
|
|
65
74
|
end
|
|
66
75
|
|
|
67
76
|
intents = JSON.parse(File.read(options[:file]))
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
schema = Pathname.new('schema/nlu_training_data.json')
|
|
78
|
+
schemer = JSONSchemer.schema(schema)
|
|
79
|
+
if schemer.valid?(intents)
|
|
80
|
+
l = NluAdapter.new(:Lex,
|
|
81
|
+
bot_name: options[:botname],
|
|
82
|
+
bot_alias: 'BotAlias',
|
|
83
|
+
user_id: 'user-1')
|
|
84
|
+
lex_intents = []
|
|
85
|
+
intents['training_data'].each do |intent|
|
|
86
|
+
intent_name = intent['intent'].gsub('-', '_')
|
|
87
|
+
i = l.new_intent(intent_name, intent['utterences'])
|
|
88
|
+
lex_intents << i
|
|
89
|
+
end
|
|
80
90
|
|
|
81
|
-
|
|
82
|
-
|
|
91
|
+
ic = l.new_intent_collection(options[:botname], lex_intents)
|
|
92
|
+
l.create_intent_collection(ic)
|
|
93
|
+
else
|
|
94
|
+
puts "Training data is not in valid format\nPlease check data/simple_train.json for reference"
|
|
95
|
+
exit(1)
|
|
96
|
+
end
|
|
83
97
|
end
|
|
84
98
|
end
|
|
85
99
|
end
|
data/lib/nlu_tools/cli/test.rb
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
require 'pathname'
|
|
3
|
+
require 'json_schemer'
|
|
2
4
|
|
|
3
5
|
module NluTools
|
|
4
6
|
# The subcommand for test
|
|
@@ -42,15 +44,22 @@ module NluTools
|
|
|
42
44
|
end
|
|
43
45
|
|
|
44
46
|
intents = JSON.parse(File.read(options[:file]))
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
47
|
+
schema = Pathname.new('schema/nlu_testing_data.json')
|
|
48
|
+
schemer = JSONSchemer.schema(schema)
|
|
49
|
+
if schemer.valid?(intents)
|
|
50
|
+
na = NluAdapter.new(:Dialogflow,
|
|
51
|
+
project_id: options[:project_id],
|
|
52
|
+
session_id: 'SESSION1')
|
|
53
|
+
new_intents = {}
|
|
54
|
+
intents['testing_data'].each do |intent|
|
|
55
|
+
new_intents[intent['intent']] = intent['utterences']
|
|
56
|
+
end
|
|
52
57
|
|
|
53
|
-
|
|
58
|
+
run_tests(na, new_intents, options[:output_file], options[:output_type])
|
|
59
|
+
else
|
|
60
|
+
puts "Testing data is not in valid format\nPlease check data/simple_test.json for reference"
|
|
61
|
+
exit(1)
|
|
62
|
+
end
|
|
54
63
|
end
|
|
55
64
|
|
|
56
65
|
desc 'lex', 'test the data in <file> using AWS Lex'
|
|
@@ -95,23 +104,30 @@ module NluTools
|
|
|
95
104
|
end
|
|
96
105
|
|
|
97
106
|
intents = JSON.parse(File.read(options[:file]))
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
new_intents
|
|
106
|
-
|
|
107
|
+
schema = Pathname.new('schema/nlu_testing_data.json')
|
|
108
|
+
schemer = JSONSchemer.schema(schema)
|
|
109
|
+
if schemer.valid?(intents)
|
|
110
|
+
na = NluAdapter.new(:Lex,
|
|
111
|
+
bot_name: options[:botname],
|
|
112
|
+
bot_alias: 'BotAlias',
|
|
113
|
+
user_id: 'user-1')
|
|
114
|
+
new_intents = {}
|
|
115
|
+
intents['testing_data'].each do |intent|
|
|
116
|
+
intent_name = intent['intent'].gsub('-', '_')
|
|
117
|
+
new_intents[intent_name] = intent['utterences']
|
|
118
|
+
end
|
|
107
119
|
|
|
108
|
-
|
|
120
|
+
run_tests(na, new_intents, options[:output_file], options[:output_type])
|
|
121
|
+
else
|
|
122
|
+
puts "Testing data is not in valid format\nPlease check data/simple_test.json for reference"
|
|
123
|
+
exit(1)
|
|
124
|
+
end
|
|
109
125
|
end
|
|
110
126
|
|
|
111
127
|
private
|
|
112
128
|
|
|
113
129
|
def run_tests(nlu_adapter, intents, output_file, output_type)
|
|
114
|
-
ext = output_file.nil? || output_file.empty? ? :none : output_file.split('.')[-1].intern
|
|
130
|
+
ext = output_file.nil? || output_file.empty? || output_file == :STDOUT ? :none : output_file.split('.')[-1].intern
|
|
115
131
|
type = output_type.nil? || output_type.empty? ? :raw : output_type.intern
|
|
116
132
|
|
|
117
133
|
case type
|
data/lib/nlu_tools/version.rb
CHANGED
data/nlu_tools.gemspec
CHANGED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://github.com/technopreneurG/nlu_tools_ruby/schema/nlu_testing_data.json",
|
|
4
|
+
"title": "NluTestingData",
|
|
5
|
+
"description": "NLU testing data schema",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"testing_data": {
|
|
9
|
+
"type": "array",
|
|
10
|
+
"description": "array of intents which need to be tested",
|
|
11
|
+
"items": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"properties": {
|
|
14
|
+
"intent" : {
|
|
15
|
+
"description": "known intent associated with the utterences",
|
|
16
|
+
"type": "string"
|
|
17
|
+
},
|
|
18
|
+
"utterences": {
|
|
19
|
+
"description": "the testing sentences",
|
|
20
|
+
"type": "array",
|
|
21
|
+
"items": {
|
|
22
|
+
"type": "string"
|
|
23
|
+
},
|
|
24
|
+
"minItems": 1,
|
|
25
|
+
"uniqueItems": true
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"required": ["intent", "utterences"]
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"required": ["testing_data"]
|
|
33
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://github.com/technopreneurG/nlu_tools_ruby/schema/nlu_training_data.json",
|
|
4
|
+
"title": "NluTrainingData",
|
|
5
|
+
"description": "NLU training data schema",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"training_data": {
|
|
9
|
+
"type": "array",
|
|
10
|
+
"description": "array of intents which need to be imported into the NLU system",
|
|
11
|
+
"items": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"properties": {
|
|
14
|
+
"intent" : {
|
|
15
|
+
"description": "intent associated with the utterences",
|
|
16
|
+
"type": "string"
|
|
17
|
+
},
|
|
18
|
+
"utterences": {
|
|
19
|
+
"description": "the training sentences",
|
|
20
|
+
"type": "array",
|
|
21
|
+
"items": {
|
|
22
|
+
"type": "string"
|
|
23
|
+
},
|
|
24
|
+
"minItems": 1,
|
|
25
|
+
"uniqueItems": true
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"required": ["intent", "utterences"]
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"required": ["training_data"]
|
|
33
|
+
}
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: nlu_tools
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Girish Nair
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2019-10-
|
|
11
|
+
date: 2019-10-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -94,6 +94,34 @@ dependencies:
|
|
|
94
94
|
- - "~>"
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
96
|
version: 0.1.6
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: json_schemer
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - "~>"
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: 0.2.7
|
|
104
|
+
type: :runtime
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - "~>"
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: 0.2.7
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: thor
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - "~>"
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: 0.20.3
|
|
118
|
+
type: :runtime
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - "~>"
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: 0.20.3
|
|
97
125
|
description: A Toolset for NLU evaluation
|
|
98
126
|
email:
|
|
99
127
|
- getgirish@gmail.com
|
|
@@ -115,6 +143,8 @@ files:
|
|
|
115
143
|
- bin/console
|
|
116
144
|
- bin/setup
|
|
117
145
|
- data/.keep
|
|
146
|
+
- data/simple_test.json
|
|
147
|
+
- data/simple_train.json
|
|
118
148
|
- exe/nlu_toolset
|
|
119
149
|
- lib/nlu_tools.rb
|
|
120
150
|
- lib/nlu_tools/cli.rb
|
|
@@ -122,6 +152,8 @@ files:
|
|
|
122
152
|
- lib/nlu_tools/cli/test.rb
|
|
123
153
|
- lib/nlu_tools/version.rb
|
|
124
154
|
- nlu_tools.gemspec
|
|
155
|
+
- schema/nlu_testing_data.json
|
|
156
|
+
- schema/nlu_training_data.json
|
|
125
157
|
homepage: https://rubygems.org/gems/nlu_tools
|
|
126
158
|
licenses:
|
|
127
159
|
- MIT
|