def initialize_intent_parser(self): self._intents_container = IntentContainer("%s_cache" % self._name) self._adapt_intent_engine = DomainIntentDeterminationEngine() self._adapt_intent_engine.register_domain(self._name) for intent_name, intent_file_path in self.get_intent_names(): #print ("###### IntentBuilder: %s, %s" % (intent_name, intent_file_path)) adapt_intent_builder = IntentBuilder(intent_name) for intent_name, intent_example_sentences_array in self.intent_training_file_content( intent_file_path, 'intent'): #print ("add intent %s, %s" % (intent_name, intent_example_sentences_array)) self._intents_container.add_intent( intent_name, intent_example_sentences_array) for entity_name, entities_array in self.intent_training_file_content( intent_file_path, 'entities'): #print ("add entity %s, %s " % (entity_name, entities_array)) self._intents_container.add_entity(entity_name, entities_array) # adapt if entity_name.endswith("_keyword"): for k in entities_array: #print ("add keyword %s to %s" % (k, intent_name)) self._adapt_intent_engine.register_entity( k, entity_name, domain=self._name) adapt_intent_builder.require(entity_name) adapt_intent = adapt_intent_builder.build() self._adapt_intent_engine.register_intent_parser(adapt_intent, domain=self._name) self._intents_container.train(debug=False)
def __init__(self): self.engine = DomainIntentDeterminationEngine() self.exact_matches = {} # Load all files in ./intents matches = [] for root, dirnames, filenames in os.walk( os.path.join(os.path.dirname(__file__), 'intents')): for filename in fnmatch.filter(filenames, '*.json'): path = os.path.join(root, filename) matches.append(path) if len(matches) == 0: raise Exception("No intent specifications found at ", os.path.join(os.path.dirname(__file__), 'intents')) for path in matches: with open(path) as file: if not self.loadIntentSpec( root.split('/')[-1], json.load(file)): logging.warning( "Something went wrong during parsing of ", os.path.join(os.path.dirname(__file__), 'intents'))
def setUp(self): """Setting up testing env.""" self.engine = DomainIntentDeterminationEngine()
import json import sys from adapt.entity_tagger import EntityTagger from adapt.tools.text.tokenizer import EnglishTokenizer from adapt.tools.text.trie import Trie from adapt.intent import IntentBuilder from adapt.parser import Parser from adapt.engine import DomainIntentDeterminationEngine tokenizer = EnglishTokenizer() trie = Trie() tagger = EntityTagger(trie, tokenizer) parser = Parser(tokenizer, tagger) engine = DomainIntentDeterminationEngine() engine.register_domain('Domain1') engine.register_domain('Domain2') # define vocabulary weather_keyword = ["weather"] for wk in weather_keyword: engine.register_entity(wk, "WeatherKeyword", domain='Domain1') weather_types = ["snow", "rain", "wind", "sleet", "sun"] for wt in weather_types: engine.register_entity(wt, "WeatherType", domain='Domain1')
def __init__(self): self.engine = DomainIntentDeterminationEngine() self.engine.register_regex_entity("(?P<Wildcard>.*)", domain="wildcard") self._intents = {}