Esempio n. 1
0
def duckling_interpreter(component_builder, tmpdir_factory):
    conf = RasaNLUModelConfig({"pipeline": [{"name": "ner_duckling"}]})
    return utilities.interpreter_for(
            component_builder,
            data="./data/examples/rasa/demo-rasa.json",
            path=tmpdir_factory.mktemp("projects").strpath,
            config=conf)
Esempio n. 2
0
def duckling_interpreter(component_builder, tmpdir_factory):
    conf = RasaNLUModelConfig({"pipeline": [{"name": "ner_duckling_http"}]})
    return utilities.interpreter_for(
        component_builder,
        data="./data/examples/rasa/demo-rasa.json",
        path=tmpdir_factory.mktemp("projects").strpath,
        config=conf)
Esempio n. 3
0
def test_example_component(component_builder, tmpdir_factory):
    conf = RasaNLUModelConfig({"pipeline": [
        {"name": "tests.example_component.MyComponent"}]})

    interpreter = utilities.interpreter_for(
        component_builder,
        data="./data/examples/rasa/demo-rasa.json",
        path=tmpdir_factory.mktemp("projects").strpath,
        config=conf)

    r = interpreter.parse("test")
    assert r is not None
Esempio n. 4
0
def test_example_component(component_builder, tmpdir_factory):
    conf = RasaNLUModelConfig({"pipeline": [
        {"name": "tests.example_component.MyComponent"}]})

    interpreter = utilities.interpreter_for(
        component_builder,
        data="./data/examples/rasa/demo-rasa.json",
        path=tmpdir_factory.mktemp("projects").strpath,
        config=conf)

    r = interpreter.parse("test")
    assert r is not None
Esempio n. 5
0
def test_interpreter(pipeline_template, component_builder):
    test_data = "data/examples/rasa/demo-rasa.json"
    _conf = utilities.base_test_conf(pipeline_template)
    _conf["data"] = test_data
    td = training_data.load_data(test_data)
    interpreter = utilities.interpreter_for(component_builder, _conf)

    texts = ["good bye", "i am looking for an indian spot"]

    for text in texts:
        result = interpreter.parse(text, time=None)
        assert result['text'] == text
        assert not result['intent']['name'] or result['intent']['name'] in td.intents
        assert result['intent']['confidence'] >= 0
        # Ensure the model doesn't detect entity types that are not present
        # Models on our test data set are not stable enough to require the exact entities to be found
        for entity in result['entities']:
            assert entity['entity'] in td.entities
Esempio n. 6
0
def test_samples(pipeline_template, component_builder):
    _conf = utilities.base_test_conf(pipeline_template)
    _conf["data"] = "./data/examples/rasa/demo-rasa.json"

    interpreter = utilities.interpreter_for(component_builder, _conf)
    available_intents = [
        "greet", "restaurant_search", "affirm", "goodbye", "None"
    ]
    samples = [("good bye", {
        'intent': 'goodbye',
        'entities': []
    }),
               ("i am looking for an indian spot", {
                   'intent':
                   'restaurant_search',
                   'entities': [{
                       "start": 20,
                       "end": 26,
                       "value": "indian",
                       "entity": "cuisine"
                   }, {
                       "end": 26,
                       "entity": "NORP",
                       "start": 20,
                       "value": "indian"
                   }]
               })]

    for text, gold in samples:
        result = interpreter.parse(text, time=None)
        assert result['text'] == text, \
            "Wrong text for sample '{}'".format(text)
        assert result['intent']['name'] in available_intents, \
            "Wrong intent for sample '{}'".format(text)
        assert result['intent']['confidence'] >= 0, \
            "Low confidence for sample '{}'".format(text)

        # This ensures the model doesn't detect entities that are not present
        # Models on our test data set are not stable enough to require the entities to be found
        for entity in result['entities']:
            del entity["extractor"]
            assert entity in gold['entities'], \
                "Wrong entities for sample '{}'".format(text)
def test_samples(pipeline_template, component_builder):
    _conf = utilities.base_test_conf(pipeline_template)
    _conf["data"] = "./data/examples/rasa/demo-rasa.json"

    interpreter = utilities.interpreter_for(component_builder, _conf)
    available_intents = ["greet", "restaurant_search", "affirm", "goodbye", "None"]
    samples = [
        (
            "good bye",
            {
                'intent': 'goodbye',
                'entities': []
            }
        ),
        (
            "i am looking for an indian spot",
            {
                'intent': 'restaurant_search',
                'entities': [{"start": 20, "end": 26, "value": "indian", "entity": "cuisine"}]
            }
        )
    ]

    for text, gold in samples:
        result = interpreter.parse(text, time=None)
        assert result['text'] == text, \
            "Wrong text for sample '{}'".format(text)
        assert result['intent']['name'] in available_intents, \
            "Wrong intent for sample '{}'".format(text)
        assert result['intent']['confidence'] >= 0, \
            "Low confidence for sample '{}'".format(text)

        # This ensures the model doesn't detect entities that are not present
        # Models on our test data set are not stable enough to require the entities to be found
        for entity in result['entities']:
            del entity["extractor"]
            assert entity in gold['entities'], \
                "Wrong entities for sample '{}'".format(text)
Esempio n. 8
0
def duckling_interpreter(component_builder):
    _conf = utilities.base_test_conf("")
    _conf["pipeline"] = ["ner_duckling"]
    _conf["data"] = "./data/examples/rasa/demo-rasa.json"
    return utilities.interpreter_for(component_builder, _conf)
Esempio n. 9
0
def duckling_interpreter(component_builder):
    _conf = utilities.base_test_conf("")
    _conf["pipeline"] = ["ner_duckling"]
    _conf["data"] = "./data/examples/rasa/demo-rasa.json"
    return utilities.interpreter_for(component_builder, _conf)