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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 57668b33bec11c4b6f381cb623b58ecb55d160e4c9b581929c1be7dc8a7c75d5
4
- data.tar.gz: 40e5cf7c30e7a193b30eb35734f4d3ae57760bf98b8ae96c23352c4581635a74
3
+ metadata.gz: 205a7f60e574bca2be39388e5cc4b570649d07593d10b4072cbe4f8a8ee91051
4
+ data.tar.gz: 2519efe88b93f42abc13408453ee1bac35c608781a6162cfc3e260cee9edb913
5
5
  SHA512:
6
- metadata.gz: 25075378cd1ae7605043e2df602899f053e76c29cd40beb45b7161c3be147ae40abf43992b28fca2d2f31ebe2e8e37373b165fa501abc82cc8d9a4355cf3c925
7
- data.tar.gz: 36191f7979f3dd4c9d9ba8aa3515a017cf417857167ddf47169d45245d08c9eaa2148df58c689f6ce964a686fa8144c1c833e1c47507d3d2bbe9e93e46cc21a0
6
+ metadata.gz: b437466a2f80dc1a6a3ce032986afceca1073215cd96afb458fec8c7709dcbbbdc6d3dcd487fb3f28a119f931ace1e1a5856dc43a22c2ba442e546c099197fe4
7
+ data.tar.gz: 11d6bfc0e6e6369638c0a205c3654e616825c8a72ab112f62bc4ae1cfcf5fcdf476e4ce228f20ed508594c3866c315fd660ba17f1768d31f4f17a4ce9ce36fbd
@@ -1,3 +1,9 @@
1
+ 0.1.1 (16/Oct/2019)
2
+ ---
3
+ * added sample data for training & testing
4
+ * added import file schema validation
5
+ * added testing file schema validation
6
+
1
7
  0.1.0 (09/Oct/2019)
2
8
  ---
3
9
  * Initial release
@@ -1,8 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nlu_tools (0.1.0)
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.220.0)
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.19.0)
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.7.1)
41
- google-protobuf (~> 3.2)
42
- googleapis-common-protos (>= 1.3.5, < 2.0)
43
- googleauth (>= 0.6.2, < 0.10.0)
44
- grpc (>= 1.7.2, < 2.0)
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.9.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.7)
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.11.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/[USERNAME]/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.
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/[USERNAME]/nlu_tools/blob/master/CODE_OF_CONDUCT.md).
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
+ }
@@ -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
- d = NluAdapter.new(:Dialogflow,
33
- project_id: options[:project_id],
34
- session_id: 'SESSION1')
35
- intents.each do |intent|
36
- i = d.new_intent(intent['intent'], intent['train'])
37
- d.create_intent(i)
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
- puts intents.size
69
- l = NluAdapter.new(:Lex,
70
- bot_name: options[:botname],
71
- bot_alias: 'BotAlias',
72
- user_id: 'user-1')
73
- lex_intents = []
74
- intents.each do |intent|
75
- intent_name = intent['intent'].gsub('-', '_')
76
- puts '---'
77
- i = l.new_intent(intent_name, intent['train'])
78
- lex_intents << i
79
- end
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
- ic = l.new_intent_collection(options[:botname], lex_intents)
82
- l.create_intent_collection(ic)
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
@@ -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
- na = NluAdapter.new(:Dialogflow,
46
- project_id: options[:project_id],
47
- session_id: 'SESSION1')
48
- new_intents = {}
49
- intents.each do |intent|
50
- new_intents[intent['intent']] = intent['test']
51
- end
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
- run_tests(na, new_intents, options[:output_file], options[:output_type])
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
- na = NluAdapter.new(:Lex,
99
- bot_name: options[:botname],
100
- bot_alias: 'BotAlias',
101
- user_id: 'user-1')
102
- new_intents = {}
103
- intents.each do |intent|
104
- intent_name = intent['intent'].gsub('-', '_')
105
- new_intents[intent_name] = intent['test']
106
- end
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
- run_tests(na, new_intents, options[:output_file], options[:output_type])
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NluTools
4
- VERSION = '0.1.0'
4
+ VERSION = '0.1.1'
5
5
  end
@@ -43,4 +43,6 @@ Gem::Specification.new do |spec|
43
43
  spec.add_development_dependency 'rubocop', '~> 0.75.0'
44
44
 
45
45
  spec.add_dependency('nlu_adapter', '~> 0.1.6')
46
+ spec.add_dependency('json_schemer', '~> 0.2.7')
47
+ spec.add_dependency('thor', '~> 0.20.3')
46
48
  end
@@ -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.0
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-08 00:00:00.000000000 Z
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