Ejemplo n.º 1
0
    def semantic_info(self, robot_code, speech):
        """
        取得普通的语义信息
        :param robot_code: 机器码
        :param speech: 对话
        :return:
        """
        match_dict_list = Nlu_Framework.match(force_utf8_new(speech))
        logging.warn(match_dict_list)
        if not match_dict_list:
            current_status = RobotStatus.get_robot_status(robot_code)
            logging.warn(current_status)
            match_dict_list = Nlu_Framework.match(force_utf8_new(speech),
                                                  {'status': current_status})
            logging.warn(match_dict_list)

        assert len(match_dict_list) <= 1, 'match_dict_list len great than 1'

        # 没命中语义,走其它逻辑
        if not match_dict_list:
            return None

        # 语义信息
        match_info = match_dict_list[0]

        self._update_robot_status(robot_code, match_info['service'])
        return match_info
Ejemplo n.º 2
0
 def test_yaml(self):
     # self._generage()
     file_list = glob.glob('./test/conf/*')
     for file_name in file_list:
         print 'test' + file_name
         yaml_info_list = load_from_yaml(file_name)
         for yaml_info in yaml_info_list:
             match_dict_list = Nlu_Framework.match(force_utf8_new(yaml_info['input']))
             self.assertDictEqual(force_utf8_new(match_dict_list[0]),
                                  force_utf8_new(yaml_info['output']))
Ejemplo n.º 3
0
 def _generage(self):
     """
     第一次产生测试yaml的方法
     :return:
     """
     file_list = glob.glob('./test/conf/*')
     for file_name in file_list:
         yaml_info_list = load_from_yaml(file_name)
         print file_name
         yaml_list = []
         for yaml_info in yaml_info_list:
             match_dict_list = Nlu_Framework.match(force_utf8_new(yaml_info['input']))
             result_dict = {"input": force_utf8_new(yaml_info['input']),
                            "output": match_dict_list[0]}
             yaml_list.append(result_dict)
         yaml_list = force_utf8_new(yaml_list)
         print yaml.safe_dump_all(yaml_list, allow_unicode=True, encoding='utf-8')
Ejemplo n.º 4
0
from nlu import phone
from nlu import photo
from nlu import profile
from nlu import recognition
from nlu import sight
from nlu import trick
from nlu import vehicle
from nlu import volume
from nlu import xiaoyi
from nlu import store_location
from nlu.nlu_framework import Nlu_Framework
from nlu.media import story
from scene.scene_framework import SceneFramework
from utils.utils import force_utf8_new

Nlu_Framework.register(store_location.StoreLocation)
Nlu_Framework.register(animal.Animal)
Nlu_Framework.register(battery.Battery)
Nlu_Framework.register(dance.Dance)
Nlu_Framework.register(display.Display)
Nlu_Framework.register(entertainment.Entertainment)
Nlu_Framework.register(photo.Photo)
Nlu_Framework.register(recognition.Recognition)
Nlu_Framework.register(xiaoyi.XiaoYi)
Nlu_Framework.register(story.Story)
Nlu_Framework.register(expand_instruction.ExtendInstruction)
Nlu_Framework.register(volume.Volume)
Nlu_Framework.register(mode.Mode)
Nlu_Framework.register(motion.Motion)
Nlu_Framework.register(profile.Profile)
Nlu_Framework.register(vehicle.Vehicle)
Ejemplo n.º 5
0
# Nlu_Framework.register(battery.Battery)
# Nlu_Framework.register(dance.Dance)
# Nlu_Framework.register(display.Display)
# Nlu_Framework.register(entertainment.Entertainment)
# Nlu_Framework.register(photo.Photo)
# Nlu_Framework.register(recognition.Recognition)
# Nlu_Framework.register(xiaoyi.XiaoYi)
# Nlu_Framework.register(story.Story)
# Nlu_Framework.register(expand_instruction.ExtendInstruction)
# Nlu_Framework.register(volume.Volume)
# Nlu_Framework.register(mode.Mode)
# Nlu_Framework.register(motion.Motion)
# Nlu_Framework.register(profile.Profile)
# Nlu_Framework.register(vehicle.Vehicle)
# Nlu_Framework.register(sight.Sight)
Nlu_Framework.register(music.Music)
# Nlu_Framework.register(phone.Phone)
# Nlu_Framework.register(trick.Trick)
# Nlu_Framework.register(store_location.StoreLocation)

# def load_from_file(file_name):
#     """
#     从文件中直接加载词典,只有词,没有属性
#     :param file_name:
#     :param group_name:
#     :return:
#     """
#     with open(file_name) as f:
#         test_list = [line.strip().replace('\n', '') for line in f if line and not line.startswith('=')]
#     return test_list
#
Ejemplo n.º 6
0
"""
# test_rule.py
from nlu.nlu_framework import Nlu_Framework
from nlu.rule import Rule
from utils.utils import range_tag, attach_perperty


class Test(object):
    # 标识是test领域(这个service字段必须存在,命中本类中正则时,会输出这个字段)
    service = 'test'
    # 表示抓取2个字长度的信息,输出字段为name
    name = range_tag(2, 'user_name')

    # 正则规则:我的名字是小明
    name_case1 = '我的名字是' + name

    # 生成规则对象
    rule_case1 = Rule(
        attach_perperty(name_case1, {
            'operation': 'query',
            'rule': 1
        }))


Nlu_Framework.register(Test)

match_dict_list = Nlu_Framework.match('我的名字是小明')

for k, v in match_dict_list[0].items():
    print '{} : {}'.format(k, v)
Ejemplo n.º 7
0
# Nlu_Framework.register(display.Display)
# Nlu_Framework.register(entertainment.Entertainment)
# Nlu_Framework.register(photo.Photo)
# Nlu_Framework.register(recognition.Recognition)
# Nlu_Framework.register(xiaoyi.XiaoYi)
# Nlu_Framework.register(story.Story)
# Nlu_Framework.register(expand_instruction.ExtendInstruction)
# Nlu_Framework.register(volume.Volume)
# Nlu_Framework.register(mode.Mode)
# Nlu_Framework.register(motion.Motion)
# Nlu_Framework.register(profile.Profile)
# Nlu_Framework.register(vehicle.Vehicle)
# Nlu_Framework.register(sight.Sight)
# Nlu_Framework.register(music.Music)
# Nlu_Framework.register(phone.Phone)
Nlu_Framework.register(trick.Trick)

# def load_from_file(file_name):
#     """
#     从文件中直接加载词典,只有词,没有属性
#     :param file_name:
#     :param group_name:
#     :return:
#     """
#     with open(file_name) as f:
#         test_list = [line.strip().replace('\n', '') for line in f if line and not line.startswith('=')]
#     return test_list
#
# test_list = load_from_file('./test/test.csv')
#
#
Ejemplo n.º 8
0
 def setUp(self):
     print 'setUp'
     Nlu_Framework.register(animal.Animal)
     Nlu_Framework.register(battery.Battery)
     Nlu_Framework.register(dance.Dance)
     Nlu_Framework.register(display.Display)
     Nlu_Framework.register(entertainment.Entertainment)
     Nlu_Framework.register(photo.Photo)
     Nlu_Framework.register(recognition.Recognition)
     Nlu_Framework.register(xiaoyi.XiaoYi)
     Nlu_Framework.register(story.Story)
     Nlu_Framework.register(volume.Volume)
     Nlu_Framework.register(expand_instruction.ExtendInstruction)
     Nlu_Framework.register(mode.Mode)
     Nlu_Framework.register(motion.Motion)
     Nlu_Framework.register(profile.Profile)
     Nlu_Framework.register(vehichel.Vehicle)
     Nlu_Framework.register(sight.Sight)
     Nlu_Framework.register(opera.Opera)
     print 'setUp Over'
Ejemplo n.º 9
0
vehicle_name = WordsDict('./dict/vehicle/vehicle.csv',
                         property_name_list=['arid'],
                         group_name='vehicle')

sight_name = WordsDict('./dict/sight/sight.csv',
                       property_name_list=['arid'],
                       group_name='sight')

stop_words = WordsDict('./dict/common/stop_words.csv')
pronoun = WordsDict('./dict/common/pronoun.csv')
adverb = WordsDict('./dict/common/adverb.csv')
modals = WordsDict('./dict/common/modals.csv')
prep = WordsDict('./dict/common/prep.csv')
degree = WordsDict('./dict/common/degree.csv')
honorific = WordsDict('./dict/common/honorific.csv')
interj = WordsDict('./dict/common/interj.csv')
auxiliary = WordsDict('./dict/common/auxiliary.csv')
quantifier = WordsDict('./dict/common/quantifier.csv')
numeral = WordsDict('./dict/common/numeral.csv')
adjective = WordsDict('./dict/common/adjective.csv')
directional = WordsDict('./dict/common/directional.csv')
prefix_unsual = WordsDict('./dict/common/prefix_unsual.csv')

any_w = '(.)*'

from nlu.nlu_framework import Nlu_Framework
Nlu_Framework.register_dict('animal', animal_name)
Nlu_Framework.register_dict('opera', opera_name)
Nlu_Framework.register_dict('vehicle', vehicle_name)
Nlu_Framework.register_dict('sight', sight_name)