def __init__(self, **config):
        # Validate options are present
        for option in _configuration_options:
            if option not in config:
                raise ValueError("Missing configuration "
                                 "option {!r}".format(option))

        # Feature extraction
        sparse_features = parse_features(config["sparse_features"])
        densifier = make_pipeline(Vectorizer(sparse_features, sparse=True),
                                  ClassifierAsFeature())
        dense_features = parse_features(config["dense_features"])
        vectorization = make_union(densifier,
                                   Vectorizer(dense_features, sparse=False))

        # Classifier
        try:
            classifier = _valid_classifiers[config["classifier"]]
        except KeyError:
            raise ValueError("Unknown classification algorithm "
                             "{!r}".format(config["classifier"]))
        classifier = classifier(**config["classifier_args"])

        self.pipeline = make_pipeline(vectorization, StandardScaler())
        self.classifier = classifier
Exemple #2
0
    def test_rule_wrapper_returns_int(self):
        with mock.patch("importlib.import_module") as mock_import:
            mocked_module = MockedModule()
            mock_import.return_value = mocked_module
            evidence = _e("test")

            fs = parse_features(["app.rules.custom_rule_feature"])
            self.assertEqual(fs[0](evidence), 1)

            fs = parse_features(["app.rules.custom_only_match_dot"])
            self.assertEqual(fs[0](evidence), 0)

            fs = parse_features(["app.rules.custom_negative_rule_feature"])
            self.assertEqual(fs[0](evidence), 1)

            fs = parse_features(["app.rules.custom_negative_only_match_dot"])
            self.assertEqual(fs[0](evidence), 0)
Exemple #3
0
    def test_rule_wrapper_returns_int(self):
        with mock.patch("importlib.import_module") as mock_import:
            mocked_module = MockedModule()
            mock_import.return_value = mocked_module
            evidence = _e("test")

            fs = parse_features(["app.rules.custom_rule_feature"])
            self.assertEqual(fs[0](evidence), 1)

            fs = parse_features(["app.rules.custom_only_match_dot"])
            self.assertEqual(fs[0](evidence), 0)

            fs = parse_features(["app.rules.custom_negative_rule_feature"])
            self.assertEqual(fs[0](evidence), 1)

            fs = parse_features(["app.rules.custom_negative_only_match_dot"])
            self.assertEqual(fs[0](evidence), 0)
Exemple #4
0
 def test_parse_custom_rule_feature(self):
     with mock.patch("importlib.import_module") as mock_import:
         with mock.patch.object(features, "rule_wrapper") as mock_rule_wrapper:
             mocked_module = MockedModule()
             mock_import.return_value = mocked_module
             fs = parse_features(["app.rules.custom_rule_feature"])
             mock_import.assert_called_with("app.rules")
             self.assertEqual(len(fs), 1)
             self.assertTrue(mock_rule_wrapper.called)
Exemple #5
0
    def test_parse_custom_feature(self):
        with mock.patch("importlib.import_module") as mock_import:
            mocked_module = MockedModule()
            mock_import.return_value = mocked_module
            fs = parse_features(["app.module.custom_feature"])
            mock_import.assert_called_with("app.module")

            self.assertEqual(len(fs), 1)
            self.assertEqual(fs[0](), "custom feature")
Exemple #6
0
    def test_parse_custom_feature(self):
        with mock.patch("importlib.import_module") as mock_import:
            mocked_module = MockedModule()
            mock_import.return_value = mocked_module
            fs = parse_features(["app.module.custom_feature"])
            mock_import.assert_called_with("app.module")

            self.assertEqual(len(fs), 1)
            self.assertEqual(fs[0](), "custom feature")
Exemple #7
0
 def test_parse_custom_rule_feature(self):
     with mock.patch("importlib.import_module") as mock_import:
         with mock.patch.object(features,
                                "rule_wrapper") as mock_rule_wrapper:
             mocked_module = MockedModule()
             mock_import.return_value = mocked_module
             fs = parse_features(["app.rules.custom_rule_feature"])
             mock_import.assert_called_with("app.rules")
             self.assertEqual(len(fs), 1)
             self.assertTrue(mock_rule_wrapper.called)
Exemple #8
0
 def test_invalid_custom_feature(self):
     with self.assertRaises(KeyError):
         parse_features(["does.not.exists"])
Exemple #9
0
 def test_invalid_custom_feature(self):
     with self.assertRaises(KeyError):
         parse_features(["does.not.exists"])