Example #1
0
def test_dump_trainable_entities(entity_extractor: Optional[Text],
                                 expected_output: Text):
    training_data_json = {
        "rasa_nlu_data": {
            "common_examples": [{
                "text":
                "test",
                "intent":
                "greet",
                "entities": [{
                    "start": 0,
                    "end": 4,
                    "value": "random",
                    "entity": "word"
                }],
            }]
        }
    }
    if entity_extractor is not None:
        training_data_json["rasa_nlu_data"]["common_examples"][0]["entities"][
            0]["extractor"] = entity_extractor

    training_data_object = RasaReader().read_from_json(training_data_json)
    md_dump = MarkdownWriter().dumps(training_data_object)
    assert md_dump.splitlines()[1] == expected_output
def task(source, dest, cred_file, percent):

    # load Rasa NLU training data
    r = MarkdownReader()
    with open(source, "r") as fin:
        nlu = fin.read()

    nlu_train = r.reads(nlu)

    translate_client = translate.Client.from_service_account_json(cred_file)

    def trans(text):
        trans_text = translate_client.translate(text,
                                                source_language="en",
                                                target_language="zh-TW")
        logger.info(u'origin: {}, translated: {}'.format(
            example.text, trans_text['translatedText']))
        return trans_text['translatedText']

    nlu_train.training_examples = random_select_samples(
        nlu_train.training_examples, percent)
    for example in nlu_train.training_examples:
        example.text = trans(example.text)
        if example.get("entities"):
            for entity in example.get("entities"):
                entity["value"] = trans(entity['value'])

    # Generate Rasa NLU translated training data
    w = MarkdownWriter()
    w.dump(dest, nlu_train)
Example #3
0
def test_dump_entities(entity: Dict[Text, Any], expected_output: Text):
    training_data_json = {
        "rasa_nlu_data": {
            "common_examples": [
                {"text": "test", "intent": "greet", "entities": [entity]}
            ]
        }
    }
    training_data_object = RasaReader().read_from_json(training_data_json)
    md_dump = MarkdownWriter().dumps(training_data_object)
    assert md_dump.splitlines()[1] == expected_output
    def nlu_as_markdown(self) -> Text:
        """Generates the markdown representation of the NLU part of TrainingData."""
        from rasa.nlu.training_data.formats import (  # pytype: disable=pyi-error
            MarkdownWriter,
        )

        return MarkdownWriter().dumps(self)
Example #5
0
def _as_md_message(parse_data: Dict[Text, Any]) -> Text:
    """Display the parse data of a message in markdown format."""
    from rasa.nlu.training_data.formats import MarkdownWriter

    if parse_data.get("text", "").startswith(INTENT_MESSAGE_PREFIX):
        return parse_data.get("text")

    if not parse_data.get("entities"):
        parse_data["entities"] = []
    # noinspection PyProtectedMember
    return MarkdownWriter()._generate_message_md(parse_data)
Example #6
0
def md_format_message(text, intent, entities):
    from rasa.nlu.training_data.formats import MarkdownWriter, MarkdownReader

    message_from_md = MarkdownReader()._parse_training_example(text)
    deserialised_entities = deserialise_entities(entities)
    return MarkdownWriter()._generate_message_md(
        {
            "text": message_from_md.text,
            "intent": intent,
            "entities": deserialised_entities,
        }
    )
Example #7
0
    def as_markdown(self) -> Text:
        """Generates the markdown representation of the TrainingData."""
        from rasa.nlu.training_data.formats import MarkdownWriter

        return MarkdownWriter().dumps(self)