Beispiel #1
0
def test_markdown_empty_section():
    data = load_data("data/test/markdown_single_sections/empty_section.md")
    assert data.regex_features == [{"name": "greet", "pattern": r"hey[^\s]*"}]

    assert not data.entity_synonyms
    assert len(data.lookup_tables) == 1
    assert data.lookup_tables[0]["name"] == "chinese"
    assert "Chinese" in data.lookup_tables[0]["elements"]
    assert "Chines" in data.lookup_tables[0]["elements"]
Beispiel #2
0
def edit():
    if request.method == 'POST':
        #Create new file
        if 'create' in request.form:
            new = request.form['new_name'] + '.md'
            return redirect(url_for('content', name=new, content=""))
        #Open existing file
        elif 'open' in request.form:
            #Save at local directory
            curr = request.files['file']
            curr.save(os.path.join(app.config['UPLOAD_FOLDER'],secure_filename(curr.filename)))
            return redirect(url_for('content', name=secure_filename(curr.filename))) 
        #Convert file type (md <-> json)
        elif 'convert' in request.form:
            #Save at local directory
            curr = request.files['convert_file']
            curr.save(os.path.join(app.config['UPLOAD_FOLDER'],secure_filename(curr.filename)))
            return redirect(url_for('convert', name=secure_filename(curr.filename))) 
        #Merge training data
        elif 'merge' in request.form:
            from rasa.nlu import training_data, load_data
            #Save at local directory
            curr_1 = request.files['merge_file_1']
            curr_1.save(os.path.join(app.config['UPLOAD_FOLDER'],secure_filename(curr_1.filename)))
            curr_2 = request.files['merge_file_2']
            curr_2.save(os.path.join(app.config['UPLOAD_FOLDER'],secure_filename(curr_2.filename)))
            file1 = os.path.join(app.config['UPLOAD_FOLDER'],secure_filename(curr_1.filename))
            #app.config['UPLOAD_FOLDER'] + secure_filename(curr_1.filename)
            file2 = os.path.join(app.config['UPLOAD_FOLDER'],secure_filename(curr_2.filename))
            #app.config['UPLOAD_FOLDER'] + secure_filename(curr_2.filename)
            #Perform Merge
            td = training_data.load_data(file1)
            td = td.merge(load_data(file2))
            content = td.nlu_as_markdown() # always save as markdown
            new_name = request.form['merge_name']
            return redirect(url_for('content', name=new_name, content=content, merge=True))
        #Train-test split
        else:
            from rasa.nlu import training_data, load_data

            curr = request.files['train_test_split']
            curr.save(os.path.join(app.config['UPLOAD_FOLDER'],secure_filename(curr.filename)))
            fraction = int(request.form['rangeSlider'])/100
            file = os.path.join(app.config['UPLOAD_FOLDER'],secure_filename(curr.filename))
            #app.config['UPLOAD_FOLDER'] + secure_filename(curr.filename)
            td = training_data.load_data(file)
            #Peform Train Test Split
            data_train, data_test = td.train_test_split(train_frac=fraction)
            train_name = os.path.splitext(os.path.basename(curr.filename))[0] + "_train"
            test_name = os.path.splitext(os.path.basename(curr.filename))[0] + "_test"
            data_train = data_train.nlu_as_markdown()
            data_test = data_test.nlu_as_markdown()
            return redirect(url_for('split', train_name=train_name, test_name=test_name, data_train=data_train, data_test=data_test))
    else:
        return render_template('/edit/index.html') 
Beispiel #3
0
def test_validate_required_components_from_data(
        config_path: Text, data_path: Text,
        expected_warning_excerpts: List[Text]):
    loaded_config = config.load(config_path)
    trainer = Trainer(loaded_config)
    training_data = load_data(data_path)
    with pytest.warns(UserWarning) as record:
        components.validate_required_components_from_data(
            trainer.pipeline, training_data)
    assert len(record) == 1
    assert all([excerpt in record[0].message.args[0]]
               for excerpt in expected_warning_excerpts)
Beispiel #4
0
    def __init__(self, languages=None):

        if languages is None:
            languages = ['en', 'de']

        pipeline = [{"name": "WhitespaceTokenizer"},
                    {"name": "CRFEntityExtractor"},
                    {"name": "EntitySynonymMapper"},
                    {"name": "CountVectorsFeaturizer"},
                    {"name": "EmbeddingIntentClassifier"}]

        self.interpreters = {}
        for lang in languages:
            filepath = resource_filename(__name__, f'nlu_{lang}.md')
            training_data = load_data(filepath)
            trainer = Trainer(RasaNLUModelConfig({"pipeline": pipeline}))
            self.interpreters[lang] = trainer.train(training_data)
Beispiel #5
0
def test_section_value_with_delimiter():
    td_section_with_delimiter = load_data(
        "data/test/markdown_single_sections/section_with_delimiter.md"
    )
    assert td_section_with_delimiter.entity_synonyms == {"10:00 am": "10:00"}
Beispiel #6
0
def test_markdown_not_existing_section():
    with pytest.raises(ValueError):
        load_data("data/test/markdown_single_sections/not_existing_section.md")