Beispiel #1
0
    def test_parse_X(self):
        from alex.components.slu.dainnclassifier import DAINNClassifier
        
        np.random.seed(0)

        cldb = CategoryLabelDatabase()
        class db:
            database = {
                "task": {
                    "find_connection": ["najít spojení", "najít spoj", "zjistit spojení",
                                        "zjistit spoj", "hledám spojení", 'spojení', 'spoj',
                                       ],
                    "find_platform": ["najít nástupiště", "zjistit nástupiště", ],
                    'weather': ['pocasi', 'jak bude', ],
                },
                "number": {
                    "1": ["jednu"]
                },
                "time": {
                    "now": ["nyní", "teď", "teďka", "hned", "nejbližší", "v tuto chvíli", "co nejdřív"],
                },
            }

        cldb.load(db_mod=db)

        preprocessing = SLUPreprocessing(cldb)
        clf = DAINNClassifier(cldb, preprocessing, features_size=4)

        # Train a simple classifier.
        das = {
            '1': DialogueAct('inform(task=weather)'),
            '2': DialogueAct('inform(time=now)'),
            '3': DialogueAct('inform(task=weather)'),
            '4': DialogueAct('inform(task=connection)'),
        }
        utterances = {
            '1': Utterance('pocasi pocasi pocasi pocasi pocasi'),
            '2': Utterance('hned ted nyni hned ted nyni'),
            '3': Utterance('jak bude jak bude jak bude jak bude'),
            '4': Utterance('kdy a odkat mi to jede'),
        }
        clf.extract_classifiers(das, utterances, verbose=False)
        clf.prune_classifiers(min_classifier_count=0)
        clf.gen_classifiers_data(min_pos_feature_count=0,
                                 min_neg_feature_count=0,
                                 verbose2=False)

        clf.train(inverse_regularisation=1e1, verbose=False)

        # Parse some sentences.
        utterance_list = UtteranceNBList()
        utterance_list.add(0.7, Utterance('pocasi'))
        utterance_list.add(0.7, Utterance('jak bude pocasi'))
        utterance_list.add(0.2, Utterance('hned'))
        utterance_list.add(0.2, Utterance('hned'))
        da_confnet = clf.parse_X(utterance_list, verbose=False)

        self.assertTrue(da_confnet.get_prob(DialogueActItem(dai='inform(task=weather)')) != 0.0)
        self.assertTrue(da_confnet.get_prob(DialogueActItem(dai='inform(time=now)')) != 0.0)
Beispiel #2
0
    def setUpClass(cls):
        cfg = {
            'SLU': {
                'debug': True,
                'type': PTICSHDCSLU,
                PTICSHDCSLU: {
                    'preprocessing_cls': PTICSSLUPreprocessing
                },
            },
        }
        slu_type = cfg['SLU']['type']
        cldb = CategoryLabelDatabase()

        class db:
            database = {
                "task": {
                    "find_connection": [
                        "najít spojení",
                        "najít spoj",
                        "zjistit spojení",
                        "zjistit spoj",
                        "hledám spojení",
                        'spojení',
                        'spoj',
                    ],
                    "find_platform": [
                        "najít nástupiště",
                        "zjistit nástupiště",
                    ],
                    'weather': [
                        'pocasi',
                    ],
                },
                "number": {
                    "1": ["jednu"]
                },
                "time": {
                    "now": [
                        "nyní", "teď", "teďka", "hned", "nejbližší",
                        "v tuto chvíli", "co nejdřív"
                    ],
                    "18": ["osmnáct", "osmnact"]
                },
                "date_rel": {
                    "tomorrow": ["zítra", "zitra"],
                }
            }

        cldb.load(db_mod=db)
        preprocessing = cfg['SLU'][slu_type]['preprocessing_cls'](cldb)
        cls.slu = slu_type(preprocessing, cfg)
Beispiel #3
0
    def setUpClass(cls):
        cfg = {
            'SLU': {
                'debug': True,
                'type': PTICSHDCSLU,
                PTICSHDCSLU: {
                    'preprocessing_cls': PTICSSLUPreprocessing
                },
                },
            }
        slu_type = cfg['SLU']['type']
        cldb = CategoryLabelDatabase()
        class db:
            database = {
                "task": {
                    "find_connection": ["najít spojení", "najít spoj", "zjistit spojení",
                                        "zjistit spoj", "hledám spojení", 'spojení', 'spoj',
                                        ],
                    "find_platform": ["najít nástupiště", "zjistit nástupiště", ],
                    'weather': ['pocasi', ],
                    },
                "number": {
                    "1": ["jednu"]
                },
                "time": {
                    "now": ["nyní", "teď", "teďka", "hned", "nejbližší", "v tuto chvíli", "co nejdřív"],
                    "18": ["osmnáct", "osmnact"]
                },
                "date_rel": {
                    "tomorrow": ["zítra", "zitra"],
                    }
            }

        cldb.load(db_mod=db)
        preprocessing = cfg['SLU'][slu_type]['preprocessing_cls'](cldb)
        cls.slu = slu_type(preprocessing, cfg)