From 1d2c0fe31a2778afcc48c8d37014e8c1121e38e1 Mon Sep 17 00:00:00 2001 From: Vincent Date: Thu, 3 Sep 2020 11:27:35 +0200 Subject: [PATCH 01/25] added-tests --- .gitignore | 4 + docs/contributing.md | 2 +- .../tokenizers/stanzatokenizer.py | 127 ++++++++++++++++++ .../test_tokenizers/test_stanza_tokenizer.py | 53 ++++++++ 4 files changed, 185 insertions(+), 1 deletion(-) create mode 100644 rasa_nlu_examples/tokenizers/stanzatokenizer.py create mode 100644 tests/test_tokenizers/test_stanza_tokenizer.py diff --git a/.gitignore b/.gitignore index a77de1f..2ee6d67 100644 --- a/.gitignore +++ b/.gitignore @@ -115,3 +115,7 @@ tests/data/*.bin models/*.tar.gz results/* /.pytype/ + +Untitled*.ipynb +.DS_Store +**/.DS_Store diff --git a/docs/contributing.md b/docs/contributing.md index 91aad5a..e3f564d 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -37,7 +37,7 @@ If the tools that we offer here turn out to be useful then we'd love to hear abo We're also interested in hearing if these tools don't work for your usecase. Any feedback will be shared with the research team at Rasa. We're especially keen to hear feedback on the performance of the word embeddings that we host here. You can leave a message either on [the github issue list](https://github.com/RasaHQ/rasa-nlu-examples/issues) or -on [the Rasa forum](forum.rasa.com/). Be sure to ping **koaning**** on the forum if you mention +on [the Rasa forum](forum.rasa.com/). Be sure to ping **koaning** on the forum if you mention this project, he's the main maintainer. ### Adding a new Component diff --git a/rasa_nlu_examples/tokenizers/stanzatokenizer.py b/rasa_nlu_examples/tokenizers/stanzatokenizer.py new file mode 100644 index 0000000..34cb967 --- /dev/null +++ b/rasa_nlu_examples/tokenizers/stanzatokenizer.py @@ -0,0 +1,127 @@ +import pathlib +from typing import Any, Dict, List, Text + +from rasa.nlu.tokenizers.tokenizer import Token, Tokenizer +from rasa.nlu.training_data import Message +from functools import reduce +from rasa.nlu.tokenizers.spacy_tokenizer import POS_TAG_KEY + +import stanza + + +class StanzaTokenizer(Tokenizer): + """ + The StanzaTokenizer allows for more pos/lemma features to be used in the + Rasa ML pipelines. It is based on the project found here: https://stanfordnlp.github.io/stanza/usage.html + + Not every language here has good performance metrics. To see the details + check out this table: https://stanfordnlp.github.io/stanza/performance.html + + Before running the stanza model in production, be sure to check the license information + since it may differ per language: https://stanfordnlp.github.io/stanza/available_models.html + """ + + defaults = { + # What language to use + "lang": None, + # What package to use + "pkg": "package", + # Where to save the model + "cache_dir": pathlib.Path("~/stanza_resources"), + } + + # the following language should not be tokenized using the WhitespaceTokenizer + language_list = [ + "af", + "grc", + "ar", + "hy", + "eu", + "be", + "bg", + "bxr", + "ca", + "zh", + "lzh", + "cop", + "hr", + "cs", + "da", + "nl", + "en", + "et", + "fi", + "fr", + "gl", + "de", + "got", + "el", + "he", + "hi", + "hu", + "id", + "ga", + "it", + "ja", + "ko", + "kmr", + "lv", + "lt", + "olo", + "mt", + "sme", + "no", + "nn", + "cu", + "fro", + "orv", + "fa", + "pl", + "pt", + "ro", + "ru", + "gd", + "sr", + "sk", + "sl", + "es", + "sv", + "swl", + "ta", + "te", + "tr", + "uk", + "hsb", + "ur", + "ug", + "vi", + "wo", + ] + + def __init__(self, component_config: Dict[Text, Any] = None) -> None: + """Construct a new tokenizer using the Stanza framework.""" + + super().__init__(component_config) + self.nlp = stanza.Pipeline( + lang=component_config["lang"], + processors="tokenize,pos,lemma", + tokenize_no_ssplit=True, + ) + + def tokenize(self, message: Message, attribute: Text) -> List[Token]: + text = message.get(attribute) + + doc = self.nlp(text) + stanza_tokens = reduce(lambda a, b: a + b, doc.sentences).tokens + tokens = [ + Token( + text=t.text, + start=t.start_char, + end=t.end_char, + lemma=t.words[0].lemma, + data={POS_TAG_KEY: t.words[0].pos}, + ) + for t in stanza_tokens + ] + + return tokens diff --git a/tests/test_tokenizers/test_stanza_tokenizer.py b/tests/test_tokenizers/test_stanza_tokenizer.py new file mode 100644 index 0000000..21fbe97 --- /dev/null +++ b/tests/test_tokenizers/test_stanza_tokenizer.py @@ -0,0 +1,53 @@ +import pytest +from rasa.nlu.training_data import Message +from rasa.nlu.constants import TEXT, TOKENS_NAMES +from rasa_nlu_examples.tokenizers.stanzatokenizer import StanzaTokenizer + + +@pytest.mark.parametrize( + "msg,n", zip(["hello", "hello there", "hello there vincent"], [1, 2, 3]) +) +def test_stanza_correct_length(msg, n): + """We should add the correct number of tokens.""" + message = Message(msg) + tok = StanzaTokenizer(component_config={"lang": "en"}) + tok.process(message) + tokens = message.get(TOKENS_NAMES[TEXT]) + # We also generate a __CLS__ token + assert len(tokens) == n + 1 + + +def test_stanza_lemma(): + """We need to attach correct lemmas""" + message = Message("i am running and giving many greetings") + tok = StanzaTokenizer(component_config={"lang": "en"}) + tok.process(message) + tokens = message.get(TOKENS_NAMES[TEXT]) + assert [t.lemma for t in tokens] == [ + "i", + "be", + "run", + "and", + "give", + "many", + "greeting", + "__CLS__", + ] + + +def test_stanza_pos(): + """We need to attach correct POS""" + message = Message("i am running and giving many greetings") + tok = StanzaTokenizer(component_config={"lang": "en"}) + tok.process(message) + tokens = message.get(TOKENS_NAMES[TEXT]) + assert [t.data.get("pos", "") for t in tokens] == [ + "PRON", + "AUX", + "VERB", + "CCONJ", + "VERB", + "ADJ", + "NOUN", + "", + ] From c3d185bd16cac0045630941abe213d87fbf6f1b2 Mon Sep 17 00:00:00 2001 From: Vincent Date: Mon, 7 Sep 2020 15:19:09 +0200 Subject: [PATCH 02/25] its clear we need to do this without spacy --- config.yml | 12 ++++++++++ rasa_nlu_examples/tokenizers/__init__.py | 3 +++ .../tokenizers/stanzatokenizer.py | 3 +-- tests/configs/stanza-tokenizer-config.yml | 22 +++++++++++++++++++ tests/test_cli/test_commandline.py | 1 + 5 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 config.yml create mode 100644 tests/configs/stanza-tokenizer-config.yml diff --git a/config.yml b/config.yml new file mode 100644 index 0000000..e07410d --- /dev/null +++ b/config.yml @@ -0,0 +1,12 @@ +lang: en + +pipeline: +- name: SpacyNLP + model: "stanza-en-model" +- name: SpacyTokenizer +- name: CountVectorsFeaturizer + analyzer: char_wb + min_ngram: 1 + max_ngram: 4 +- name: DIETClassifier + epochs: -1 diff --git a/rasa_nlu_examples/tokenizers/__init__.py b/rasa_nlu_examples/tokenizers/__init__.py index e69de29..85cc3ad 100644 --- a/rasa_nlu_examples/tokenizers/__init__.py +++ b/rasa_nlu_examples/tokenizers/__init__.py @@ -0,0 +1,3 @@ +from rasa_nlu_examples.tokenizers.stanzatokenizer import StanzaTokenizer + +__all__ = ["StanzaTokenizer"] diff --git a/rasa_nlu_examples/tokenizers/stanzatokenizer.py b/rasa_nlu_examples/tokenizers/stanzatokenizer.py index 34cb967..d6e7c14 100644 --- a/rasa_nlu_examples/tokenizers/stanzatokenizer.py +++ b/rasa_nlu_examples/tokenizers/stanzatokenizer.py @@ -1,4 +1,3 @@ -import pathlib from typing import Any, Dict, List, Text from rasa.nlu.tokenizers.tokenizer import Token, Tokenizer @@ -27,7 +26,7 @@ class StanzaTokenizer(Tokenizer): # What package to use "pkg": "package", # Where to save the model - "cache_dir": pathlib.Path("~/stanza_resources"), + "cache_dir": "~/stanza_resources", } # the following language should not be tokenized using the WhitespaceTokenizer diff --git a/tests/configs/stanza-tokenizer-config.yml b/tests/configs/stanza-tokenizer-config.yml new file mode 100644 index 0000000..a118eeb --- /dev/null +++ b/tests/configs/stanza-tokenizer-config.yml @@ -0,0 +1,22 @@ +language: en + +pipeline: +- name: rasa_nlu_examples.tokenizers.StanzaTokenizer + lang: "en" +- name: LexicalSyntacticFeaturizer + "features": [ + ["low", "title", "upper"], + ["BOS", "EOS", "low", "upper", "title", "digit", "pos"], + ["low", "title", "upper"], + ] +- name: CountVectorsFeaturizer + analyzer: char_wb + min_ngram: 1 + max_ngram: 4 +- name: DIETClassifier + epochs: 1 + +policies: + - name: MemoizationPolicy + - name: KerasPolicy + - name: MappingPolicy diff --git a/tests/test_cli/test_commandline.py b/tests/test_cli/test_commandline.py index 276a423..2954bd8 100644 --- a/tests/test_cli/test_commandline.py +++ b/tests/test_cli/test_commandline.py @@ -3,6 +3,7 @@ yml_files = [ + "stanza-tokenizer-config.yml", "fasttext-config.yml", "printer-config.yml", "bytepair-config.yml", From 32f6b846e5a6bddc2db80617d8ccec09b9746782 Mon Sep 17 00:00:00 2001 From: Vincent Date: Tue, 8 Sep 2020 09:13:39 +0200 Subject: [PATCH 03/25] stanza-dependency --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 5b4e521..64cc4b6 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ from setuptools import setup, find_packages -base_packages = ["rasa>=1.10.0", "fasttext==0.9.2", "bpemb==0.3.2"] +base_packages = ["rasa>=1.10.0", "fasttext==0.9.2", "bpemb==0.3.2", "stanza>=1.1.1"] dev_packages = [ "flake8>=3.6.0", From 7b62e6bdb55230c6bb7fce3e05199bc68c3a5983 Mon Sep 17 00:00:00 2001 From: Vincent Date: Tue, 8 Sep 2020 09:39:51 +0200 Subject: [PATCH 04/25] maybe-windows-is-not-supported --- .github/workflows/non-ubuntu-checks.yml | 2 ++ .github/workflows/pythonpackage.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/non-ubuntu-checks.yml b/.github/workflows/non-ubuntu-checks.yml index 38065ba..6a7562a 100644 --- a/.github/workflows/non-ubuntu-checks.yml +++ b/.github/workflows/non-ubuntu-checks.yml @@ -29,6 +29,8 @@ jobs: pip install -e "." pip install --upgrade rasa==${{ matrix.rasa-version }} pip install pytest + - name: Versions of Dependencies + run: pip freeze | grep stanza gensim bpemb fasttext - name: Test with pytest run: | python tests/prepare_everything.py diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index fe0f082..2551a17 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -29,6 +29,8 @@ jobs: pip install -e "." pip install --upgrade rasa==${{ matrix.rasa-version }} pip install pytest + - name: Versions of Dependencies + run: pip freeze | grep stanza gensim bpemb fasttext - name: Test with pytest run: | python tests/prepare_everything.py From afe39e7d17b5354c983ee9417f6ad469022b5064 Mon Sep 17 00:00:00 2001 From: Vincent Date: Tue, 8 Sep 2020 09:56:30 +0200 Subject: [PATCH 05/25] check-grep --- .github/workflows/non-ubuntu-checks.yml | 2 +- .github/workflows/pythonpackage.yml | 2 +- docs/docs/tokenizer/stanza.md | 42 +++++++++++++++++++++++ mkdocs.yml | 2 ++ tests/configs/stanza-tokenizer-config.yml | 2 +- 5 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 docs/docs/tokenizer/stanza.md diff --git a/.github/workflows/non-ubuntu-checks.yml b/.github/workflows/non-ubuntu-checks.yml index 6a7562a..6ff25cb 100644 --- a/.github/workflows/non-ubuntu-checks.yml +++ b/.github/workflows/non-ubuntu-checks.yml @@ -30,7 +30,7 @@ jobs: pip install --upgrade rasa==${{ matrix.rasa-version }} pip install pytest - name: Versions of Dependencies - run: pip freeze | grep stanza gensim bpemb fasttext + run: pip freeze | grep -E 'stanza|gensim|bpemb|fasttext' - name: Test with pytest run: | python tests/prepare_everything.py diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index 2551a17..9920e37 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -30,7 +30,7 @@ jobs: pip install --upgrade rasa==${{ matrix.rasa-version }} pip install pytest - name: Versions of Dependencies - run: pip freeze | grep stanza gensim bpemb fasttext + run: pip freeze | grep -E 'stanza|gensim|bpemb|fasttext' - name: Test with pytest run: | python tests/prepare_everything.py diff --git a/docs/docs/tokenizer/stanza.md b/docs/docs/tokenizer/stanza.md new file mode 100644 index 0000000..b10c6a9 --- /dev/null +++ b/docs/docs/tokenizer/stanza.md @@ -0,0 +1,42 @@ +The [Stanza project](https://stanfordnlp.github.io/stanza/) from Stanford supports tokenizers, lemmatizers as +well as part of speech detection for many languages that are not supported +by spaCy. You can find the available languages [here](https://stanfordnlp.github.io/stanza/available_models.html). + +To use a Stanza model you'll first need to download it. This can be done from python. + +```python +import stanza +# download English model in the ~/stanza_resources dir +stanza.download('en', dir='~/stanza_resources') +``` + +Once downloaded it can be used in a Rasa configuration, like below; + +```yaml +language: en + +pipeline: +- name: rasa_nlu_examples.tokenizers.StanzaTokenizer + lang: "en" + cache_dir: "~/stanza_resources" +- name: LexicalSyntacticFeaturizer + "features": [ + ["low", "title", "upper"], + ["BOS", "EOS", "low", "upper", "title", "digit", "pos"], + ["low", "title", "upper"], + ] +- name: CountVectorsFeaturizer + analyzer: char_wb + min_ngram: 1 + max_ngram: 4 +- name: DIETClassifier + epochs: 1 + +policies: + - name: MemoizationPolicy + - name: KerasPolicy + - name: MappingPolicy +``` + +One thing to note here is that the `LexicalSyntacticFeaturizer` will be able to pick up +the "pos" information with the `StanzaTokenizer` just like you're able to do that with spaCy. diff --git a/mkdocs.yml b/mkdocs.yml index 7926e14..df3b9d0 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -10,6 +10,8 @@ nav: - Contributing: contributing.md - Usage: - Benchmarking Guide: benchmarking.md + - Tokenizers: + - Stanza: docs/tokenizer/stanza.md - Meta: - Printer: docs/meta/printer.md - Featurizers: diff --git a/tests/configs/stanza-tokenizer-config.yml b/tests/configs/stanza-tokenizer-config.yml index a118eeb..72e3268 100644 --- a/tests/configs/stanza-tokenizer-config.yml +++ b/tests/configs/stanza-tokenizer-config.yml @@ -2,7 +2,7 @@ language: en pipeline: - name: rasa_nlu_examples.tokenizers.StanzaTokenizer - lang: "en" + lang: "nl" - name: LexicalSyntacticFeaturizer "features": [ ["low", "title", "upper"], From a54f44d8692c1ee105c4e7f08efd1472baa6560b Mon Sep 17 00:00:00 2001 From: Vincent Date: Tue, 8 Sep 2020 10:06:23 +0200 Subject: [PATCH 06/25] download-stanza-online --- tests/prepare_everything.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/prepare_everything.py b/tests/prepare_everything.py index 278929c..eb84f15 100644 --- a/tests/prepare_everything.py +++ b/tests/prepare_everything.py @@ -1,5 +1,6 @@ import fasttext import pathlib +import stanza if __name__ == "__main__": # This script adds a small fasttext model that is used in testing. @@ -12,3 +13,7 @@ print("local model saved for fasttext") else: print("found local fasttext model") + + # This part of the script will download a stanza model. + # If there's a more lightweight way of doing this I'd love to hear it. + stanza.download("en") From edb2425a652abe6c7c1531d6b3a7e6808b80b9c7 Mon Sep 17 00:00:00 2001 From: Vincent Date: Tue, 8 Sep 2020 10:45:36 +0200 Subject: [PATCH 07/25] cache-dir-fix --- .gitignore | 1 + rasa_nlu_examples/tokenizers/stanzatokenizer.py | 1 + tests/configs/stanza-tokenizer-config.yml | 3 ++- tests/prepare_everything.py | 2 +- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 2ee6d67..3404201 100644 --- a/.gitignore +++ b/.gitignore @@ -119,3 +119,4 @@ results/* Untitled*.ipynb .DS_Store **/.DS_Store +tests/data/stanza diff --git a/rasa_nlu_examples/tokenizers/stanzatokenizer.py b/rasa_nlu_examples/tokenizers/stanzatokenizer.py index d6e7c14..3661bd6 100644 --- a/rasa_nlu_examples/tokenizers/stanzatokenizer.py +++ b/rasa_nlu_examples/tokenizers/stanzatokenizer.py @@ -103,6 +103,7 @@ def __init__(self, component_config: Dict[Text, Any] = None) -> None: super().__init__(component_config) self.nlp = stanza.Pipeline( lang=component_config["lang"], + dir=component_config["cache_dir"], processors="tokenize,pos,lemma", tokenize_no_ssplit=True, ) diff --git a/tests/configs/stanza-tokenizer-config.yml b/tests/configs/stanza-tokenizer-config.yml index 72e3268..0913a7a 100644 --- a/tests/configs/stanza-tokenizer-config.yml +++ b/tests/configs/stanza-tokenizer-config.yml @@ -2,7 +2,8 @@ language: en pipeline: - name: rasa_nlu_examples.tokenizers.StanzaTokenizer - lang: "nl" + lang: "en" + cache_dir: "tests/data/stanza" - name: LexicalSyntacticFeaturizer "features": [ ["low", "title", "upper"], diff --git a/tests/prepare_everything.py b/tests/prepare_everything.py index eb84f15..d0a0517 100644 --- a/tests/prepare_everything.py +++ b/tests/prepare_everything.py @@ -16,4 +16,4 @@ # This part of the script will download a stanza model. # If there's a more lightweight way of doing this I'd love to hear it. - stanza.download("en") + stanza.download("en", dir="tests/data/stanza") From 35a28544c86478890dd81a998988cd39d08b8f8a Mon Sep 17 00:00:00 2001 From: Vincent Date: Tue, 8 Sep 2020 10:56:11 +0200 Subject: [PATCH 08/25] workflow-bug-windows --- .github/workflows/non-ubuntu-checks.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/non-ubuntu-checks.yml b/.github/workflows/non-ubuntu-checks.yml index 6ff25cb..38065ba 100644 --- a/.github/workflows/non-ubuntu-checks.yml +++ b/.github/workflows/non-ubuntu-checks.yml @@ -29,8 +29,6 @@ jobs: pip install -e "." pip install --upgrade rasa==${{ matrix.rasa-version }} pip install pytest - - name: Versions of Dependencies - run: pip freeze | grep -E 'stanza|gensim|bpemb|fasttext' - name: Test with pytest run: | python tests/prepare_everything.py From 236f9460d2f5da19cb0c3f0af162ddcb427f1119 Mon Sep 17 00:00:00 2001 From: Vincent Date: Tue, 8 Sep 2020 11:24:12 +0200 Subject: [PATCH 09/25] tests-fixed --- rasa_nlu_examples/tokenizers/stanzatokenizer.py | 7 ++++--- tests/test_tokenizers/test_stanza_tokenizer.py | 12 +++++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/rasa_nlu_examples/tokenizers/stanzatokenizer.py b/rasa_nlu_examples/tokenizers/stanzatokenizer.py index 3661bd6..e1d8659 100644 --- a/rasa_nlu_examples/tokenizers/stanzatokenizer.py +++ b/rasa_nlu_examples/tokenizers/stanzatokenizer.py @@ -23,10 +23,11 @@ class StanzaTokenizer(Tokenizer): defaults = { # What language to use "lang": None, - # What package to use + # What package to use, details on this can be found here: + # https://stanfordnlp.github.io/stanza/download_models.html "pkg": "package", - # Where to save the model - "cache_dir": "~/stanza_resources", + # Where to load the model + "cache_dir": None, } # the following language should not be tokenized using the WhitespaceTokenizer diff --git a/tests/test_tokenizers/test_stanza_tokenizer.py b/tests/test_tokenizers/test_stanza_tokenizer.py index 21fbe97..66689f3 100644 --- a/tests/test_tokenizers/test_stanza_tokenizer.py +++ b/tests/test_tokenizers/test_stanza_tokenizer.py @@ -10,7 +10,9 @@ def test_stanza_correct_length(msg, n): """We should add the correct number of tokens.""" message = Message(msg) - tok = StanzaTokenizer(component_config={"lang": "en"}) + tok = StanzaTokenizer( + component_config={"lang": "en", "cache_dir": "tests/data/stanza"} + ) tok.process(message) tokens = message.get(TOKENS_NAMES[TEXT]) # We also generate a __CLS__ token @@ -20,7 +22,9 @@ def test_stanza_correct_length(msg, n): def test_stanza_lemma(): """We need to attach correct lemmas""" message = Message("i am running and giving many greetings") - tok = StanzaTokenizer(component_config={"lang": "en"}) + tok = StanzaTokenizer( + component_config={"lang": "en", "cache_dir": "tests/data/stanza"} + ) tok.process(message) tokens = message.get(TOKENS_NAMES[TEXT]) assert [t.lemma for t in tokens] == [ @@ -38,7 +42,9 @@ def test_stanza_lemma(): def test_stanza_pos(): """We need to attach correct POS""" message = Message("i am running and giving many greetings") - tok = StanzaTokenizer(component_config={"lang": "en"}) + tok = StanzaTokenizer( + component_config={"lang": "en", "cache_dir": "tests/data/stanza"} + ) tok.process(message) tokens = message.get(TOKENS_NAMES[TEXT]) assert [t.data.get("pos", "") for t in tokens] == [ From 7fbc4c4aca340024021a4685878dd83afb93d172 Mon Sep 17 00:00:00 2001 From: Vincent Date: Tue, 8 Sep 2020 11:40:55 +0200 Subject: [PATCH 10/25] windows-workflow-yuck --- .github/workflows/non-ubuntu-checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/non-ubuntu-checks.yml b/.github/workflows/non-ubuntu-checks.yml index 38065ba..1ac0eb1 100644 --- a/.github/workflows/non-ubuntu-checks.yml +++ b/.github/workflows/non-ubuntu-checks.yml @@ -26,11 +26,11 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - pip install -e "." pip install --upgrade rasa==${{ matrix.rasa-version }} pip install pytest - name: Test with pytest run: | + pip install -e "." python tests/prepare_everything.py chmod 775 tests/data/custom_fasttext_model.bin pytest From 859dbb47c30021043da8be01a787e0cb78fb8687 Mon Sep 17 00:00:00 2001 From: Vincent Date: Tue, 8 Sep 2020 12:46:03 +0200 Subject: [PATCH 11/25] extra-stanza-tests --- .../test_tokenizers/test_stanza_tokenizer.py | 61 ++++++++++++++++++- 1 file changed, 59 insertions(+), 2 deletions(-) diff --git a/tests/test_tokenizers/test_stanza_tokenizer.py b/tests/test_tokenizers/test_stanza_tokenizer.py index 66689f3..5bff331 100644 --- a/tests/test_tokenizers/test_stanza_tokenizer.py +++ b/tests/test_tokenizers/test_stanza_tokenizer.py @@ -1,6 +1,14 @@ import pytest -from rasa.nlu.training_data import Message -from rasa.nlu.constants import TEXT, TOKENS_NAMES + +from rasa.nlu.training_data import Message, TrainingData +from rasa.nlu.constants import TEXT, TOKENS_NAMES, SPARSE_FEATURE_NAMES +from rasa.nlu.tokenizers.whitespace_tokenizer import WhitespaceTokenizer +from rasa.nlu.featurizers.sparse_featurizer.count_vectors_featurizer import ( + CountVectorsFeaturizer, +) +from rasa.nlu.featurizers.sparse_featurizer.lexical_syntactic_featurizer import ( + LexicalSyntacticFeaturizer, +) from rasa_nlu_examples.tokenizers.stanzatokenizer import StanzaTokenizer @@ -57,3 +65,52 @@ def test_stanza_pos(): "NOUN", "", ] + + +def fetch_sparse_features(txt, tokenizer, featurizer): + message = Message("my advices include to give advice and giving many greetings") + tokenizer.process(message) + featurizer.train(TrainingData([message])) + featurizer.process(message) + return message.get(SPARSE_FEATURE_NAMES[TEXT]).toarray() + + +def test_component_changes_features_cvf(): + """If there are no features we need to add them""" + tok_whitespace = WhitespaceTokenizer() + tok_stanza = StanzaTokenizer( + component_config={"lang": "en", "cache_dir": "tests/data/stanza"} + ) + txt = "i am running and giving many greetings" + feats_whitespace = fetch_sparse_features( + txt, tok_whitespace, CountVectorsFeaturizer() + ) + feats_stanza = fetch_sparse_features(txt, tok_stanza, CountVectorsFeaturizer()) + + # Because the lemma is being used internally we expect less features + assert feats_stanza.shape[1] < feats_whitespace.shape[1] + + +def test_component_changes_features_lex(): + """If there are no features we need to add them""" + tok_whitespace = WhitespaceTokenizer() + tok_stanza = StanzaTokenizer( + component_config={"lang": "en", "cache_dir": "tests/data/stanza"} + ) + txt = "i am running and giving many greetings" + feats = { + "features": [ + ["low", "title", "upper", "pos"], + ["BOS", "EOS", "low", "upper", "title", "digit", "pos"], + ["low", "title", "upper", "pos"], + ] + } + feats_whitespace = fetch_sparse_features( + txt, tok_whitespace, LexicalSyntacticFeaturizer(feats) + ) + feats_stanza = fetch_sparse_features( + txt, tok_stanza, LexicalSyntacticFeaturizer(feats) + ) + + # Because the part of speech tags are now used we'd expect stanza to have more features here. + assert feats_stanza.shape[1] > feats_whitespace.shape[1] From 09465b0beb74974d3bc3805182a0c701897f02f2 Mon Sep 17 00:00:00 2001 From: Vincent Date: Tue, 8 Sep 2020 12:55:14 +0200 Subject: [PATCH 12/25] winbdowzzzz --- .github/workflows/non-ubuntu-checks.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/non-ubuntu-checks.yml b/.github/workflows/non-ubuntu-checks.yml index 1ac0eb1..274b811 100644 --- a/.github/workflows/non-ubuntu-checks.yml +++ b/.github/workflows/non-ubuntu-checks.yml @@ -26,11 +26,12 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - pip install --upgrade rasa==${{ matrix.rasa-version }} - pip install pytest + python -m pip install --upgrade rasa==${{ matrix.rasa-version }} + python -m pip install pytest - name: Test with pytest run: | - pip install -e "." + python -m pip install -e "." + python -m pip freeze python tests/prepare_everything.py chmod 775 tests/data/custom_fasttext_model.bin pytest From c2d0362071771d7b4bbb0ad939eb421ebd32dd13 Mon Sep 17 00:00:00 2001 From: Vincent Date: Tue, 8 Sep 2020 13:13:07 +0200 Subject: [PATCH 13/25] pytorch-install-urgh --- ...non-ubuntu-checks.yml => mac-os-check.yml} | 4 +- .github/workflows/windows-check.yml | 39 +++++++++++++++++++ 2 files changed, 41 insertions(+), 2 deletions(-) rename .github/workflows/{non-ubuntu-checks.yml => mac-os-check.yml} (92%) create mode 100644 .github/workflows/windows-check.yml diff --git a/.github/workflows/non-ubuntu-checks.yml b/.github/workflows/mac-os-check.yml similarity index 92% rename from .github/workflows/non-ubuntu-checks.yml rename to .github/workflows/mac-os-check.yml index 274b811..adaa1d4 100644 --- a/.github/workflows/non-ubuntu-checks.yml +++ b/.github/workflows/mac-os-check.yml @@ -1,4 +1,4 @@ -name: Python Non Ubuntu Test +name: MacOS Tests on: push: @@ -13,7 +13,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [windows-latest, macos-latest] + os: [macos-latest] python-version: [3.7] rasa-version: ["1.10.8"] diff --git a/.github/workflows/windows-check.yml b/.github/workflows/windows-check.yml new file mode 100644 index 0000000..3648298 --- /dev/null +++ b/.github/workflows/windows-check.yml @@ -0,0 +1,39 @@ +name: MacOS Tests + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [windows-latest] + python-version: [3.7] + rasa-version: ["1.10.8"] + + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v1 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install --upgrade rasa==${{ matrix.rasa-version }} + # We unfortunately need to install differently using windows. + python -m pip install torch>=1.6.0 -f https://download.pytorch.org/whl/torch_stable.html + python -m pip install pytest + - name: Test with pytest + run: | + python -m pip install -e "." + python -m pip freeze + python tests/prepare_everything.py + chmod 775 tests/data/custom_fasttext_model.bin + pytest From 05fb98a57a62b9af5e5a8ab8870fb9936bbe99ad Mon Sep 17 00:00:00 2001 From: vincent d warmerdam Date: Tue, 8 Sep 2020 14:29:56 +0200 Subject: [PATCH 14/25] Update rasa_nlu_examples/tokenizers/stanzatokenizer.py Co-authored-by: Tanja --- rasa_nlu_examples/tokenizers/stanzatokenizer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rasa_nlu_examples/tokenizers/stanzatokenizer.py b/rasa_nlu_examples/tokenizers/stanzatokenizer.py index e1d8659..1decd72 100644 --- a/rasa_nlu_examples/tokenizers/stanzatokenizer.py +++ b/rasa_nlu_examples/tokenizers/stanzatokenizer.py @@ -114,7 +114,7 @@ def tokenize(self, message: Message, attribute: Text) -> List[Token]: doc = self.nlp(text) stanza_tokens = reduce(lambda a, b: a + b, doc.sentences).tokens - tokens = [ + return [ Token( text=t.text, start=t.start_char, From 0953b7e4c51973a3559fce3db0203300ebd3ad39 Mon Sep 17 00:00:00 2001 From: vincent d warmerdam Date: Tue, 8 Sep 2020 14:31:11 +0200 Subject: [PATCH 15/25] Apply suggestions from code review Co-authored-by: Tanja --- rasa_nlu_examples/tokenizers/stanzatokenizer.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/rasa_nlu_examples/tokenizers/stanzatokenizer.py b/rasa_nlu_examples/tokenizers/stanzatokenizer.py index 1decd72..70f5a46 100644 --- a/rasa_nlu_examples/tokenizers/stanzatokenizer.py +++ b/rasa_nlu_examples/tokenizers/stanzatokenizer.py @@ -124,5 +124,3 @@ def tokenize(self, message: Message, attribute: Text) -> List[Token]: ) for t in stanza_tokens ] - - return tokens From 4925faa1427ec164d022b8d5cd854295e4452f6a Mon Sep 17 00:00:00 2001 From: vincent d warmerdam Date: Tue, 8 Sep 2020 23:24:59 +0200 Subject: [PATCH 16/25] Update stanza.md --- docs/docs/tokenizer/stanza.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/docs/tokenizer/stanza.md b/docs/docs/tokenizer/stanza.md index b10c6a9..0d50284 100644 --- a/docs/docs/tokenizer/stanza.md +++ b/docs/docs/tokenizer/stanza.md @@ -25,12 +25,13 @@ pipeline: ["BOS", "EOS", "low", "upper", "title", "digit", "pos"], ["low", "title", "upper"], ] +- name: CountVectorsFeaturizer - name: CountVectorsFeaturizer analyzer: char_wb min_ngram: 1 max_ngram: 4 - name: DIETClassifier - epochs: 1 + epochs: 100 policies: - name: MemoizationPolicy From 2d9251cb650c6be4f852eff2df96ff6823e6f1ce Mon Sep 17 00:00:00 2001 From: Vincent Date: Wed, 9 Sep 2020 17:17:04 +0200 Subject: [PATCH 17/25] feedback-tanja --- config.yml | 12 ---------- .../tokenizers/stanzatokenizer.py | 23 ++++++++++--------- 2 files changed, 12 insertions(+), 23 deletions(-) delete mode 100644 config.yml diff --git a/config.yml b/config.yml deleted file mode 100644 index e07410d..0000000 --- a/config.yml +++ /dev/null @@ -1,12 +0,0 @@ -lang: en - -pipeline: -- name: SpacyNLP - model: "stanza-en-model" -- name: SpacyTokenizer -- name: CountVectorsFeaturizer - analyzer: char_wb - min_ngram: 1 - max_ngram: 4 -- name: DIETClassifier - epochs: -1 diff --git a/rasa_nlu_examples/tokenizers/stanzatokenizer.py b/rasa_nlu_examples/tokenizers/stanzatokenizer.py index 70f5a46..f3406e0 100644 --- a/rasa_nlu_examples/tokenizers/stanzatokenizer.py +++ b/rasa_nlu_examples/tokenizers/stanzatokenizer.py @@ -23,15 +23,12 @@ class StanzaTokenizer(Tokenizer): defaults = { # What language to use "lang": None, - # What package to use, details on this can be found here: - # https://stanfordnlp.github.io/stanza/download_models.html - "pkg": "package", # Where to load the model "cache_dir": None, } - # the following language should not be tokenized using the WhitespaceTokenizer - language_list = [ + # the StanzaTokenizer only supports languages from this list + supported_language_list = [ "af", "grc", "ar", @@ -103,10 +100,12 @@ def __init__(self, component_config: Dict[Text, Any] = None) -> None: super().__init__(component_config) self.nlp = stanza.Pipeline( - lang=component_config["lang"], - dir=component_config["cache_dir"], - processors="tokenize,pos,lemma", - tokenize_no_ssplit=True, + lang=component_config["lang"], # the language model from Stanza to user + dir=component_config[ + "cache_dir" + ], # the caching directory to load the model from + processors="tokenize,pos,lemma", # info: https://stanfordnlp.github.io/stanza/pipeline.html#processors + tokenize_no_ssplit=True, # disable sentence segmentation ) def tokenize(self, message: Message, attribute: Text) -> List[Token]: @@ -114,13 +113,15 @@ def tokenize(self, message: Message, attribute: Text) -> List[Token]: doc = self.nlp(text) stanza_tokens = reduce(lambda a, b: a + b, doc.sentences).tokens + # In the code below, if Stanza detects multi-word tokens then we should not + # fill in the lemma/pos information. Otherwise we're good. return [ Token( text=t.text, start=t.start_char, end=t.end_char, - lemma=t.words[0].lemma, - data={POS_TAG_KEY: t.words[0].pos}, + lemma=t.words[0].lemma if len(t.words) == 1 else None, + data={POS_TAG_KEY: t.words[0].pos} if len(t.words) == 1 else None, ) for t in stanza_tokens ] From ec1b6cb1caa41ac52ed4c95848b4502fdb6b12fb Mon Sep 17 00:00:00 2001 From: Vincent Date: Wed, 9 Sep 2020 17:36:56 +0200 Subject: [PATCH 18/25] internal-test-refactor --- .gitignore | 2 +- tests/configs/bytepair-config.yml | 2 +- tests/configs/fasttext-config.yml | 4 +- tests/configs/gensim-config.yml | 2 +- ...r-config.yml => thai-tokenizer-config.yml} | 2 +- .../en/en.wiki.bpe.vs1000.d25.w2v.bin | Bin .../en}/en.wiki.bpe.vs1000.model | Bin tests/data/en/en.wiki.bpe.vs1000.model | Bin 251221 -> 0 bytes .../{ => fasttext}/fasttext-dummy-data.txt | 2 +- .../{ => gensim}/custom_gensim_vectors.kv | Bin tests/data/{ => nlu/en}/nlu.md | 8 +-- tests/data/{ => nlu/en}/stories.md | 0 tests/data/{ => nlu}/th/nlu-th.md | 0 tests/data/{ => nlu}/th/readme.md | 2 +- tests/prepare_everything.py | 8 ++- tests/test_cli/test_commandline.py | 52 +++++++++++++++--- 16 files changed, 61 insertions(+), 23 deletions(-) rename tests/configs/{thai_tokenizer-config.yml => thai-tokenizer-config.yml} (93%) rename tests/data/{ => bytepair}/en/en.wiki.bpe.vs1000.d25.w2v.bin (100%) rename tests/data/{ => bytepair/en}/en.wiki.bpe.vs1000.model (100%) delete mode 100644 tests/data/en/en.wiki.bpe.vs1000.model rename tests/data/{ => fasttext}/fasttext-dummy-data.txt (99%) rename tests/data/{ => gensim}/custom_gensim_vectors.kv (100%) rename tests/data/{ => nlu/en}/nlu.md (92%) rename tests/data/{ => nlu/en}/stories.md (100%) rename tests/data/{ => nlu}/th/nlu-th.md (100%) rename tests/data/{ => nlu}/th/readme.md (86%) diff --git a/.gitignore b/.gitignore index 3404201..e503abc 100644 --- a/.gitignore +++ b/.gitignore @@ -111,7 +111,7 @@ venv.bak/ dmypy.json .idea -tests/data/*.bin +tests/data/fasttext/*.bin models/*.tar.gz results/* /.pytype/ diff --git a/tests/configs/bytepair-config.yml b/tests/configs/bytepair-config.yml index 1566684..8f401b5 100644 --- a/tests/configs/bytepair-config.yml +++ b/tests/configs/bytepair-config.yml @@ -11,7 +11,7 @@ pipeline: lang: en vs: 1000 dim: 25 - cache_dir: "tests/data" + cache_dir: "tests/data/bytepair" - name: DIETClassifier epochs: 1 diff --git a/tests/configs/fasttext-config.yml b/tests/configs/fasttext-config.yml index 02c307f..4fa0471 100644 --- a/tests/configs/fasttext-config.yml +++ b/tests/configs/fasttext-config.yml @@ -8,7 +8,7 @@ pipeline: min_ngram: 1 max_ngram: 4 - name: rasa_nlu_examples.featurizers.dense.FastTextFeaturizer - cache_dir: "tests/data" + cache_dir: "tests/data/fasttext" file: "custom_fasttext_model.bin" - name: DIETClassifier epochs: 1 @@ -16,4 +16,4 @@ pipeline: policies: - name: MemoizationPolicy - name: KerasPolicy - - name: MappingPolicy \ No newline at end of file + - name: MappingPolicy diff --git a/tests/configs/gensim-config.yml b/tests/configs/gensim-config.yml index 772894a..2d14057 100644 --- a/tests/configs/gensim-config.yml +++ b/tests/configs/gensim-config.yml @@ -8,7 +8,7 @@ pipeline: min_ngram: 1 max_ngram: 4 - name: rasa_nlu_examples.featurizers.dense.GensimFeaturizer - cache_dir: "tests/data" + cache_dir: "tests/data/gensim" file: "custom_gensim_vectors.kv" - name: DIETClassifier epochs: 1 diff --git a/tests/configs/thai_tokenizer-config.yml b/tests/configs/thai-tokenizer-config.yml similarity index 93% rename from tests/configs/thai_tokenizer-config.yml rename to tests/configs/thai-tokenizer-config.yml index efae302..80ab870 100644 --- a/tests/configs/thai_tokenizer-config.yml +++ b/tests/configs/thai-tokenizer-config.yml @@ -7,4 +7,4 @@ pipeline: min_ngram: 1 max_ngram: 4 - name: DIETClassifier - epochs: 100 \ No newline at end of file + epochs: 100 diff --git a/tests/data/en/en.wiki.bpe.vs1000.d25.w2v.bin b/tests/data/bytepair/en/en.wiki.bpe.vs1000.d25.w2v.bin similarity index 100% rename from tests/data/en/en.wiki.bpe.vs1000.d25.w2v.bin rename to tests/data/bytepair/en/en.wiki.bpe.vs1000.d25.w2v.bin diff --git a/tests/data/en.wiki.bpe.vs1000.model b/tests/data/bytepair/en/en.wiki.bpe.vs1000.model similarity index 100% rename from tests/data/en.wiki.bpe.vs1000.model rename to tests/data/bytepair/en/en.wiki.bpe.vs1000.model diff --git a/tests/data/en/en.wiki.bpe.vs1000.model b/tests/data/en/en.wiki.bpe.vs1000.model deleted file mode 100644 index 45d5abb5ada2f5981368d4da99aaea0f92b6bf11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 251221 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

>Fn~KfnLq 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 zkN!XU|LFgt|BwDZ`v2(vqyLZoKl=aZ|D*qp{y+Nv=>MbtkN!XU|LFgt|BwDZ`v2(v zqyLZoKl=aZ|D*qp{y+Nv=>MbtkN!XU|LFgt|BwDZ`v2(vqyLZoKl=aZ|D*qp{y+Nv z=>MbtkN!XU|LFgt|BwDZ`v2(vqyLZoKl=aZ|D*qp{y+Nv=>MbtkN!XU|LFgt|BwDZ z`v2(vqyLZoKl=aZ|D*qp{y+Nv=>MbtkN!XU|LFgt|BwDZ`v2(vqyLZoKl=aZ|D*qp z{y+Nv=>MbtkN!XU|LFgt|BwDZ`v2(vqyLZoKl=aZ|D*qp{y+Nv=>MbtkN!XU|LFgt z|BwDZ`v2(vqyLZoKl=aZ|D*qp{y+Nv=>MbtkN!XU|LFgt|BwDZ`v2(vqyLZoKl=aZ z|D*qp{y+Nv=>MbtkN!XU|LFgt|BwDZ`v2(vqyLZoKl=aZ|D*qp{y+Nv=>MbtkN!XU z|LFgt|BwDZ`v2(vqyLZoKl=aZ|D*qp{y+Nv=>MbtkN!XU|LFgt|BwDZ`v2(vqyLZo zKl=aZ|D*qp{y+Nv=>MbtkN!XU|LFgt|BwDZ`v2(vqyLZoKl=aZ|D*qp{y+Nv=>Mbt zkN!XU|LFgt|BwDZ`v2(vqyLZoKl=aZ|D*qp{y+Nv=>MbtkN!XU|LFgt|BwDZ`v2(v zqyLZoKl=aZ|D*qp{y+Nv=>MbtkN!XU|LFgt|BwDZ`v2(vqyLZoKl=aZ|D*qp{y+Nv z=>MbtkN!XU|LFgt|BwDZ`v2(vqyLZoKl=aZ|D*qp{y+Nv=>MbtkN!XU|LFgt|BwDZ z`v2(vqyLZoKl=aZ|D*qp{y+Nv=>MbtkN!XU|LFgt|BwDZ`v2(vqyLZoKl=aZ|D*qp z{y+Nv=>MbtkN!XU|LFgt|BwDZ`v2(vqyLZoKl=aZ|D*qp{y+Nv=>MbtkN!XU|LFgt z|BwDZ`v2(vqyLZoKl=aZ|D*qp{y+Nv=>MbtkN!XU|LFgt|BwDZ`v2(vqyLZoKl=aZ z|D*qp{y+Nv=>MbtkN!XU|LFgt|BwDZ`v2(vqyLZoKl=aZ|D*qp{y+Nv=>MbtkN!XU z|LFgt|BwDZ`v2(vqyLZoKl=aZ|D*qp{y+Nv=>MbtkN!XU|LFgt|BwDZ`v2(vqyLZo zKl=aZ|D*qp{y+Nv=>MbtkN!XU|LFgt|BwDZ`v2(vqyLZoKl=aZ|D*qp{y+Nv=>Mbt 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 zKmC9D|MdUq|I`1c|4;v){y+VH`v3I*>HpLJr~gm?pZ-7nfBOIQ|LOnJ|EK>?|DXOp z{eSxZ^#AGq)BmUcPye6(KmC9D|MdUq|I`1c|4;v){y+VH`v3I*>HpLJr~gm?pZ-7n zfBOIQ|LOnJ|EK>?|DXOp{eSxZ^#AGq)BmUcPye6(KmC9D|MdUq|I`1c|4;v){y+VH z`v3I*>HpLJr~gm?pZ-7nfBOIQ|LOnJ|EK>?|DXOp{eSxZ^#AGq)BmUcPye6(KmC9D z|MdUq|I`1c|4;v){y+VH`v3I*>HpLJr~gm?pZ-7nfBOIQ|LOnJ|EK>?|DXOp{eSxZ z^#AGq)BmUcPye6(KmC9D|MdUq|I`1c|4;v){y+VH`v3I*>HpLJr~gm?pZ-7nfBOIQ z|LOnJ|EK>?|DXOp{eSxZ^#AGq)BmUcPye6(KmC9D|MdUq|I`1c|4;v){y+VH`v3I* z>HpLJr~gm?pZ-7nfBOIQ|LOnJ|EK>?|DXOp{eSxZ^#AGq)BmUcPye6(KmC9D|MdUq z|I`1c|4;v){y+VH`v3I*>HpLJr~gm?pZ-7nfBOIQ|LOnJ|EK>?|DXOp{eSxZ^#AGq z)BmUcPye6(KmC9D|MdUq|I`1c|4;v){y+VH`v3I*>HpLJr~gm?pZ-7nfBOIQ|LOnJ z|EK>?|DXOp{eSxZ^#AGq)BmUcPye6(KmC9D|MdUq|I`1c|4;v){y+VH`v3I*>HpLJ zr~gm?pZ-7nfBOIQ|LOnJ|EK>?|DXOp{eSxZ^#AGq)BmUcPye6(KmC9D|MdUq|I`1c z|4;v){y+VH`v3I*>HpLJr~gm?pZ-7nfBOIQ|LOnJ|EK>?|DXOp{eSxZ^#AGq)BmUc zPye6(KmC9D|MdUq|I`1c|4;v){y+VH`v3I*>HpLJr~gm?pZ-7nfBOIQ|LOnJ|EK>? z|DXOp{eSxZ^#AGq)BmUcPye6(KmC9D|MdUq|I`1c|4;v){y+VH`v3I*>HpLJr~gm? zpZ-7nfBOIQ|LOnJ|EK>?|DXOp{eSxZ^#AGq)BmUcPye6(KmC9D|MdUq|I`1c|4;v) z{y+VH`v3I*>HpLJr~gm?pZ-7nfBOIQ|LOnJ|EK>?|DXOp{eSxZ^#AGq)BmUcPye6( zKmC9D|MdUq|I`1c|4;v){y+VH`v3I*>HpLJr~gm?pZ-7nfBOIQ|LOnJ|EK>?|DXOp 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 z0Yn3c1`rJ(8bCCFXaLawq5(t$hz1Z1AR0h4fM@{G0HOgz1BeC?4ImmoG=OLT(Ey?W zL<5Kh5Dg$2Ks1180MP*Y@%NJk5Dg$2Ks1180MP)V0Yn3c1`rJ(8bCCFXaLawq5(t$ zhz1Z1AR0h4fM@{G0HOgz1BeC?4ImmoG=OLT(Ey?WL<5Kh5Dg$2Ks1180MP)V0Yn3c z1`rJ(8bCCFXaLawq5(t$hz1Z1AR0h4fM@{G0HOgz1BeC?4ImmoG=OLT(Ey?WL<5Kh z5Dg$2Ks1180MP)V0Yn3c1`rJ(8bCCFXaLawq5(t$hz1Z1AR0h4fM@{G0HOgz1BeC? z4ImmoG=OLT(Ey?WL<5Kh5Dg$2Ks1180MP)V0Yn3c1`rJ(8bCCFXaLawq5(t$hz1Z1 zAR0h4fM@{G0HOgz1BeC?4ImmoG=OLT(Ey?WL<5Kh5Dg$2Ks1180MP)V0Yn3c1`rJ( z8bCCFXaLawq5(t$hz1Z1AR0h4fM@{G0HOgz1BeC?4ImmoG=OLT(Ey?WL<5Kh5Dg$2 zKs1180MP)V0Yn3c1`rJ(8bCCFXaLawq5(t$hz1Z1AR0h4fM@{G0HOgz1BeC?4Immo zG=OLT(Ey?WL<5Kh5Dg$2Ks1180MP)V0Yn3c1`rJ(8bCCFXaLawq5(t$hz1Z1AR0h4 zfM@{G0HOgz1BeC?4ImmoG=OLT(Ey?WL<5Kh5Dg$2Ks1180MP)V0Yn3c1`rJ(8bCCF zXaLawq5(t$hz1Z1AR0h4fM@{G0HOgz1BeC?4ImmoG=OLT(Ey?WL<5Kh5Dg$2Ks118 z0MP)V0Yn3c1`rJ(8bCCFXaLawq5(t$hz1Z1AR0h4fM@{G0HOgz1BeC?4ImmoG=OLT z(Ey?WL<5Kh5Dg$2Ks1180MP)V0Yn3c1`rJ(8bCCFXaLawq5(t$hz1Z1AR0h4fM@{G z0HOgz1BeC?4ImmoG=OLT(Ey?WL<5Kh5Dg$2Ks1180MP)V0Yn3c1`rJ(8bCCFXaLaw zq5(t$hz1Z1AR0h4fM@{G0HOgz1BeC?4ImmoG=OLT(Ey?WL<5Kh5Dg$2Ks1180MP)V z0Yn3c1`rJ(8bCCFXaLawq5(t$hz1Z1AR0h4fM@{G0HOgz1BeC?4ImmoG=OLT(Ey?W zL<5Kh5Dg$2Ks1180MP)V0Yn3c1`rJ(8bCCFXaLawq5(t$hz1Z1AR0h4fM@{G0HOgz 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 zG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C z4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU( z0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy z07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=F zfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfP zU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR z7!6=FfYAU(0~ifpG=R|nMgtfPV1I2t4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfP zU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR z7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|n zMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y z(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy0QNWb(*Q;T7!6=FfYAU(0~ifpG=R|n zMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y z(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifp zG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C z4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU( z0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy z07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=F zfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfP zU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR z7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|n zMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y z(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifp zG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C z4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU( z0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy z07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=F zfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfP zU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR z7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|n zMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y z(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifp zG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C z4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU( z0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy z07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=F zfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfP zU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR z7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|n zMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y z(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifp zG=R|nMgtfPU^IZy07e5C4PZ2Y(EvsR7!6=FfYAU(0~ifpG=R|nMgtfPU^IZy07e5C z4PZ2Y(EvsR7!Bb0D;EkK{^7^r!@+ePhkyCa^N)Y=ciz7Kc<1l`-#Z?7&j0>bzy9*v zU!LN@zy9&>{M#Qt_=5+(`wvg~@ge``9S?qdr2l*H<0Jj`u_Rsi`w(qzv$<)%JBItm3cn9 zx%T<&?mvh3-#kCL7US?w4$f{pKl!rq{G?QO_`QP|=lRLq|IeH2^3R)-oX?xHNza>8 zFb+PKHzzY3{?@^di_e>{thtcD-Sh6}sOQ}e3eUS&hR-`N!ojEZe))LsKR&g0w_iW+?v;Js-7NIH zyF29h=JM?G%{iRsn{TSmH!b<|O=Hy<8H0Uap-!FBeCim$Tx}%W1La N Date: Wed, 9 Sep 2020 21:02:00 +0200 Subject: [PATCH 19/25] Update windows-check.yml --- .github/workflows/windows-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/windows-check.yml b/.github/workflows/windows-check.yml index 3648298..35fa597 100644 --- a/.github/workflows/windows-check.yml +++ b/.github/workflows/windows-check.yml @@ -35,5 +35,5 @@ jobs: python -m pip install -e "." python -m pip freeze python tests/prepare_everything.py - chmod 775 tests/data/custom_fasttext_model.bin + chmod 775 tests/data/fasttext/custom_fasttext_model.bin pytest From 00d26a5c338cb2b7ccd2967c8285a82c4fb2ba6e Mon Sep 17 00:00:00 2001 From: vincent d warmerdam Date: Wed, 9 Sep 2020 21:02:34 +0200 Subject: [PATCH 20/25] Update mac-os-check.yml --- .github/workflows/mac-os-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mac-os-check.yml b/.github/workflows/mac-os-check.yml index adaa1d4..a75d811 100644 --- a/.github/workflows/mac-os-check.yml +++ b/.github/workflows/mac-os-check.yml @@ -33,5 +33,5 @@ jobs: python -m pip install -e "." python -m pip freeze python tests/prepare_everything.py - chmod 775 tests/data/custom_fasttext_model.bin + chmod 775 tests/data/fasttext/custom_fasttext_model.bin pytest From b996195f7427a36ef0d7c9ad5c8b01e376cb00ed Mon Sep 17 00:00:00 2001 From: vincent d warmerdam Date: Wed, 9 Sep 2020 21:03:34 +0200 Subject: [PATCH 21/25] Update pythonpackage.yml --- .github/workflows/pythonpackage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index 9920e37..1908883 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -34,5 +34,5 @@ jobs: - name: Test with pytest run: | python tests/prepare_everything.py - chmod 775 tests/data/custom_fasttext_model.bin + chmod 775 tests/data/fasttext/custom_fasttext_model.bin pytest From 30983ff53793fc2610ae851ef042fe093f038767 Mon Sep 17 00:00:00 2001 From: Vincent Date: Thu, 10 Sep 2020 09:07:05 +0200 Subject: [PATCH 22/25] pytest-paths-fixed --- docs/docs/tokenizer/stanza.md | 14 ++++++++++++-- tests/test_featurizers/test_bpemb_featurizer.py | 16 ++++++++-------- .../test_featurizers/test_fasttext_featurizer.py | 2 +- tests/test_featurizers/test_gensim_featurizer.py | 2 +- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/docs/docs/tokenizer/stanza.md b/docs/docs/tokenizer/stanza.md index 0d50284..b40b8fa 100644 --- a/docs/docs/tokenizer/stanza.md +++ b/docs/docs/tokenizer/stanza.md @@ -1,6 +1,8 @@ The [Stanza project](https://stanfordnlp.github.io/stanza/) from Stanford supports tokenizers, lemmatizers as -well as part of speech detection for many languages that are not supported -by spaCy. You can find the available languages [here](https://stanfordnlp.github.io/stanza/available_models.html). +well as part of speech detection for many languages that are not supported by spaCy. You can find the available +languages [here](https://stanfordnlp.github.io/stanza/available_models.html). + +## Model Download To use a Stanza model you'll first need to download it. This can be done from python. @@ -10,6 +12,13 @@ import stanza stanza.download('en', dir='~/stanza_resources') ``` +## Configurable Variables + +- **lang**: then two-letter abbreprivation of the language you want to use +- **cache_dir**: pass it the name of the directory where you've downloaded/saved the embeddings + +## Base Usage + Once downloaded it can be used in a Rasa configuration, like below; ```yaml @@ -41,3 +50,4 @@ policies: One thing to note here is that the `LexicalSyntacticFeaturizer` will be able to pick up the "pos" information with the `StanzaTokenizer` just like you're able to do that with spaCy. +The `CountVectorizer` is now also able to pick up the `lemma` features that are generated. diff --git a/tests/test_featurizers/test_bpemb_featurizer.py b/tests/test_featurizers/test_bpemb_featurizer.py index 2de7b65..550446a 100644 --- a/tests/test_featurizers/test_bpemb_featurizer.py +++ b/tests/test_featurizers/test_bpemb_featurizer.py @@ -8,8 +8,8 @@ lang="en", vs=1000, dim=25, - model_file="tests/data/en/en.wiki.bpe.vs1000.model", - emb_file="tests/data/en/en.wiki.bpe.vs1000.d25.w2v.bin", + model_file="tests/data/bytepair/en/en.wiki.bpe.vs1000.model", + emb_file="tests/data/bytepair/en/en.wiki.bpe.vs1000.d25.w2v.bin", ) config_auto = dict(lang="en", vs=1000, dim=25, vs_fallback=True) tokenizer = WhitespaceTokenizer() @@ -40,8 +40,8 @@ def test_raise_error_missing_model_file(): lang="en", vs=1000, dim=25, - model_file="tests/data/en/en.dinosaur.bpe.vs1000.model", - emb_file="tests/data/en/en.wiki.bpe.vs1000.d25.w2v.bin", + model_file="tests/data/bytepair/en/en.dinosaur.bpe.vs1000.model", + emb_file="tests/data/bytepair/en/en.wiki.bpe.vs1000.d25.w2v.bin", ) with pytest.raises(FileNotFoundError): BytePairFeaturizer(component_config=config_bad) @@ -52,8 +52,8 @@ def test_raise_error_missing_emb_file(): lang="en", vs=1000, dim=25, - model_file="tests/data/en/en.wiki.bpe.vs1000.model", - emb_file="tests/data/en/en.wiki.dinosaur.vs1000.d25.w2v.bin", + model_file="tests/data/bytepair/en/en.wiki.bpe.vs1000.model", + emb_file="tests/data/bytepair/en/en.wiki.dinosaur.vs1000.d25.w2v.bin", ) with pytest.raises(FileNotFoundError): BytePairFeaturizer(component_config=config_bad) @@ -64,8 +64,8 @@ def test_config_missing(): lang="en", vs=1000, dim=25, - model_file="tests/data/en/en.wiki.bpe.vs1000.model", - emb_file="tests/data/en/en.wiki.dinosaur.vs1000.d25.w2v.bin", + model_file="tests/data/bytepair/en/en.wiki.bpe.vs1000.model", + emb_file="tests/data/bytepair/en/en.wiki.dinosaur.vs1000.d25.w2v.bin", ) with pytest.raises(FileNotFoundError): BytePairFeaturizer(component_config=config_bad) diff --git a/tests/test_featurizers/test_fasttext_featurizer.py b/tests/test_featurizers/test_fasttext_featurizer.py index 661e33a..18cf7cf 100644 --- a/tests/test_featurizers/test_fasttext_featurizer.py +++ b/tests/test_featurizers/test_fasttext_featurizer.py @@ -7,7 +7,7 @@ from rasa_nlu_examples.featurizers.dense.fasttext_featurizer import FastTextFeaturizer test_folder = pathlib.Path(__file__).parent.parent.absolute() -cache_dir = str(test_folder / "data") +cache_dir = str(test_folder / "data" / "fasttext") file_name = "custom_fasttext_model.bin" config = {"cache_dir": cache_dir, "file": file_name} diff --git a/tests/test_featurizers/test_gensim_featurizer.py b/tests/test_featurizers/test_gensim_featurizer.py index 8cd6249..475b199 100644 --- a/tests/test_featurizers/test_gensim_featurizer.py +++ b/tests/test_featurizers/test_gensim_featurizer.py @@ -7,7 +7,7 @@ from rasa_nlu_examples.featurizers.dense.gensim_featurizer import GensimFeaturizer test_folder = pathlib.Path(__file__).parent.parent.absolute() -cache_dir = str(test_folder / "data") +cache_dir = str(test_folder / "data" / "gensim") file_name = "custom_gensim_vectors.kv" config = {"cache_dir": cache_dir, "file": file_name} From af69ec6defa2a4eae5394b46429e3c057c5bf744 Mon Sep 17 00:00:00 2001 From: Vincent Date: Thu, 10 Sep 2020 09:26:31 +0200 Subject: [PATCH 23/25] remove-policies-from-nlu-tests --- tests/configs/bytepair-config.yml | 5 ----- tests/configs/fasttext-config.yml | 5 ----- tests/configs/gensim-config.yml | 5 ----- tests/configs/printer-config.yml | 5 ----- tests/configs/stanza-tokenizer-config.yml | 5 ----- 5 files changed, 25 deletions(-) diff --git a/tests/configs/bytepair-config.yml b/tests/configs/bytepair-config.yml index 8f401b5..df04db2 100644 --- a/tests/configs/bytepair-config.yml +++ b/tests/configs/bytepair-config.yml @@ -14,8 +14,3 @@ pipeline: cache_dir: "tests/data/bytepair" - name: DIETClassifier epochs: 1 - -policies: - - name: MemoizationPolicy - - name: KerasPolicy - - name: MappingPolicy diff --git a/tests/configs/fasttext-config.yml b/tests/configs/fasttext-config.yml index 4fa0471..67811c7 100644 --- a/tests/configs/fasttext-config.yml +++ b/tests/configs/fasttext-config.yml @@ -12,8 +12,3 @@ pipeline: file: "custom_fasttext_model.bin" - name: DIETClassifier epochs: 1 - -policies: - - name: MemoizationPolicy - - name: KerasPolicy - - name: MappingPolicy diff --git a/tests/configs/gensim-config.yml b/tests/configs/gensim-config.yml index 2d14057..038e57d 100644 --- a/tests/configs/gensim-config.yml +++ b/tests/configs/gensim-config.yml @@ -12,8 +12,3 @@ pipeline: file: "custom_gensim_vectors.kv" - name: DIETClassifier epochs: 1 - -policies: - - name: MemoizationPolicy - - name: KerasPolicy - - name: MappingPolicy diff --git a/tests/configs/printer-config.yml b/tests/configs/printer-config.yml index d806a3a..9ec31a5 100644 --- a/tests/configs/printer-config.yml +++ b/tests/configs/printer-config.yml @@ -11,8 +11,3 @@ pipeline: max_ngram: 4 - name: DIETClassifier epochs: 1 - -policies: - - name: MemoizationPolicy - - name: KerasPolicy - - name: MappingPolicy \ No newline at end of file diff --git a/tests/configs/stanza-tokenizer-config.yml b/tests/configs/stanza-tokenizer-config.yml index 0913a7a..553f454 100644 --- a/tests/configs/stanza-tokenizer-config.yml +++ b/tests/configs/stanza-tokenizer-config.yml @@ -16,8 +16,3 @@ pipeline: max_ngram: 4 - name: DIETClassifier epochs: 1 - -policies: - - name: MemoizationPolicy - - name: KerasPolicy - - name: MappingPolicy From f783241abbc12b4a1f2945ac8b6288ad84183bea Mon Sep 17 00:00:00 2001 From: vincent d warmerdam Date: Thu, 10 Sep 2020 11:49:51 +0200 Subject: [PATCH 24/25] Update docs/docs/tokenizer/stanza.md Co-authored-by: Tanja --- docs/docs/tokenizer/stanza.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/tokenizer/stanza.md b/docs/docs/tokenizer/stanza.md index b40b8fa..167030f 100644 --- a/docs/docs/tokenizer/stanza.md +++ b/docs/docs/tokenizer/stanza.md @@ -50,4 +50,4 @@ policies: One thing to note here is that the `LexicalSyntacticFeaturizer` will be able to pick up the "pos" information with the `StanzaTokenizer` just like you're able to do that with spaCy. -The `CountVectorizer` is now also able to pick up the `lemma` features that are generated. +The `CountVectorizer` is also able to pick up the `lemma` features that are generated. From 310f49428177f56ef0c3d5a78ea6c65dcb385ece Mon Sep 17 00:00:00 2001 From: Vincent Date: Thu, 10 Sep 2020 11:54:01 +0200 Subject: [PATCH 25/25] removed-policies-from-docs --- docs/docs/featurizer/bytepair.md | 10 ---------- docs/docs/featurizer/fasttext.md | 5 ----- docs/docs/featurizer/gensim.md | 7 +------ docs/docs/meta/printer.md | 5 ----- docs/docs/tokenizer/stanza.md | 5 ----- 5 files changed, 1 insertion(+), 31 deletions(-) diff --git a/docs/docs/featurizer/bytepair.md b/docs/docs/featurizer/bytepair.md index 5c2826e..3bbd18f 100644 --- a/docs/docs/featurizer/bytepair.md +++ b/docs/docs/featurizer/bytepair.md @@ -50,11 +50,6 @@ pipeline: dim: 25 - name: DIETClassifier epochs: 100 - -policies: - - name: MemoizationPolicy - - name: KerasPolicy - - name: MappingPolicy ``` ## Cached Usage @@ -79,11 +74,6 @@ pipeline: cache_dir: "tests/data" - name: DIETClassifier epochs: 100 - -policies: - - name: MemoizationPolicy - - name: KerasPolicy - - name: MappingPolicy ``` Note that in this case we expect two files to be present in the `tests/data` directory; diff --git a/docs/docs/featurizer/fasttext.md b/docs/docs/featurizer/fasttext.md index 98ba236..66000ae 100644 --- a/docs/docs/featurizer/fasttext.md +++ b/docs/docs/featurizer/fasttext.md @@ -27,9 +27,4 @@ pipeline: file: cc.nl.300.bin - name: DIETClassifier epochs: 100 - -policies: - - name: MemoizationPolicy - - name: KerasPolicy - - name: MappingPolicy ``` diff --git a/docs/docs/featurizer/gensim.md b/docs/docs/featurizer/gensim.md index 7acaffd..e258a27 100644 --- a/docs/docs/featurizer/gensim.md +++ b/docs/docs/featurizer/gensim.md @@ -10,7 +10,7 @@ also read the guide on the ## Training Your Own -Training your own gensim model can be done in a few lines of code. A demonstration is shown below. +Training your own gensim model can be done in a few lines of code. A demonstration is shown below. ```python from gensim.models import Word2Vec @@ -57,9 +57,4 @@ pipeline: file: filename.kv - name: DIETClassifier epochs: 100 - -policies: - - name: MemoizationPolicy - - name: KerasPolicy - - name: MappingPolicy ``` diff --git a/docs/docs/meta/printer.md b/docs/docs/meta/printer.md index 5c1c6ce..0f163cc 100644 --- a/docs/docs/meta/printer.md +++ b/docs/docs/meta/printer.md @@ -26,9 +26,4 @@ pipeline: alias: after count vectors - name: DIETClassifier epochs: 100 - -policies: - - name: MemoizationPolicy - - name: KerasPolicy - - name: MappingPolicy ``` diff --git a/docs/docs/tokenizer/stanza.md b/docs/docs/tokenizer/stanza.md index b40b8fa..9409512 100644 --- a/docs/docs/tokenizer/stanza.md +++ b/docs/docs/tokenizer/stanza.md @@ -41,11 +41,6 @@ pipeline: max_ngram: 4 - name: DIETClassifier epochs: 100 - -policies: - - name: MemoizationPolicy - - name: KerasPolicy - - name: MappingPolicy ``` One thing to note here is that the `LexicalSyntacticFeaturizer` will be able to pick up