# Copyright 2017 Mycroft AI, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
[docs]class MatchData(object):
"""
A set of data describing how a query fits into an intent
Attributes:
name (str): Name of matched intent
sent (str): The query after entity extraction
conf (float): Confidence (from 0.0 to 1.0)
matches (dict of str -> str): Key is the name of the entity and
value is the extracted part of the sentence
"""
def __init__(self, name, sent, matches=None, conf=0.0):
self.name = name
self.sent = sent
self.matches = matches or {}
self.conf = conf
# Converts parameters from lists of tokens to one combined string
def detokenize(self):
self.sent = ' '.join(self.sent)
new_matches = {}
for token, sent in self.matches.items():
new_token = token.replace('{', '').replace('}', '')
new_matches[new_token] = ' '.join(sent)
self.matches = new_matches