From b58b19f68f979287516b4a228ebb024e24168b37 Mon Sep 17 00:00:00 2001 From: jhandsel <64368631+jhandsel@users.noreply.github.com> Date: Mon, 9 May 2022 16:15:51 +0100 Subject: [PATCH 1/7] chore(.gitignore): add python gitignore --- .gitignore | 132 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9628d14 --- /dev/null +++ b/.gitignore @@ -0,0 +1,132 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# Repo specific +cbert_model/ From 31d40ac045aa0dad4529db0819994aec279c8c4b Mon Sep 17 00:00:00 2001 From: Jennifer Handsel Date: Tue, 10 May 2022 00:20:32 +0900 Subject: [PATCH 2/7] refactor: move code into subdirectory --- .../args_of_text_classifier.py | 0 {aug_data => code/aug_data}/TREC/dev.tsv | 0 {aug_data => code/aug_data}/TREC/test.tsv | 0 .../aug_data}/TREC/train_origin.tsv | 0 {aug_data => code/aug_data}/mpqa/dev.tsv | 0 {aug_data => code/aug_data}/mpqa/test.tsv | 0 .../aug_data}/mpqa/train_origin.tsv | 0 {aug_data => code/aug_data}/rt-polarity/dev.tsv | 0 .../aug_data}/rt-polarity/test.tsv | 0 .../aug_data}/rt-polarity/train_origin.tsv | 0 {aug_data => code/aug_data}/stsa.binary/dev.tsv | 0 .../aug_data}/stsa.binary/test.tsv | 0 .../aug_data}/stsa.binary/train_origin.tsv | 0 {aug_data => code/aug_data}/stsa.fine/dev.tsv | 0 {aug_data => code/aug_data}/stsa.fine/test.tsv | 0 .../aug_data}/stsa.fine/train_origin.tsv | 0 {aug_data => code/aug_data}/subj/dev.tsv | 0 {aug_data => code/aug_data}/subj/test.tsv | 0 .../aug_data}/subj/train_origin.tsv | 0 cbert_augdata.py => code/cbert_augdata.py | 0 cbert_finetune.py => code/cbert_finetune.py | 0 cbert_utils.py => code/cbert_utils.py | 0 {datasets => code/datasets}/TREC/dev.tsv | 0 {datasets => code/datasets}/TREC/test.tsv | 0 {datasets => code/datasets}/TREC/train.tsv | 0 {datasets => code/datasets}/TREC/train_dev.tsv | 0 {datasets => code/datasets}/mpqa/dev.tsv | 0 {datasets => code/datasets}/mpqa/test.tsv | 0 {datasets => code/datasets}/mpqa/train.tsv | 0 {datasets => code/datasets}/mpqa/train_dev.tsv | 0 {datasets => code/datasets}/rt-polarity/dev.tsv | 0 .../datasets}/rt-polarity/test.tsv | 0 .../datasets}/rt-polarity/train.tsv | 0 .../datasets}/rt-polarity/train_dev.tsv | 0 {datasets => code/datasets}/stsa.binary/dev.tsv | 0 .../datasets}/stsa.binary/test.tsv | 0 .../datasets}/stsa.binary/train.tsv | 0 .../datasets}/stsa.binary/train_dev.tsv | 0 {datasets => code/datasets}/stsa.fine/dev.tsv | 0 {datasets => code/datasets}/stsa.fine/test.tsv | 0 {datasets => code/datasets}/stsa.fine/train.tsv | 0 .../datasets}/stsa.fine/train_dev.tsv | 0 {datasets => code/datasets}/subj/dev.tsv | 0 {datasets => code/datasets}/subj/test.tsv | 0 {datasets => code/datasets}/subj/train.tsv | 0 {datasets => code/datasets}/subj/train_dev.tsv | 0 evaluator.py => code/evaluator.py | 0 global.config => code/global.config | 0 nets.py => code/nets.py | 0 .../text_classification}/__init__.py | 0 .../text_classification}/nets.py | 0 .../text_classification}/nlp_utils.py | 0 .../text_classification}/text_datasets.py | 0 .../train_text_classifier.py | 0 triggers.py => code/triggers.py | 0 utils.py => code/utils.py | 0 .../__pycache__/__init__.cpython-35.pyc | Bin 161 -> 0 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 139 -> 0 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 137 -> 0 bytes .../__pycache__/nets.cpython-35.pyc | Bin 11028 -> 0 bytes .../__pycache__/nets.cpython-36.pyc | Bin 10389 -> 0 bytes .../__pycache__/nets.cpython-37.pyc | Bin 10336 -> 0 bytes .../__pycache__/nlp_utils.cpython-35.pyc | Bin 3698 -> 0 bytes .../__pycache__/nlp_utils.cpython-36.pyc | Bin 3563 -> 0 bytes .../__pycache__/nlp_utils.cpython-37.pyc | Bin 3387 -> 0 bytes .../__pycache__/text_datasets.cpython-35.pyc | Bin 6644 -> 0 bytes .../__pycache__/text_datasets.cpython-36.pyc | Bin 5947 -> 0 bytes .../__pycache__/text_datasets.cpython-37.pyc | Bin 5819 -> 0 bytes 68 files changed, 0 insertions(+), 0 deletions(-) rename args_of_text_classifier.py => code/args_of_text_classifier.py (100%) rename {aug_data => code/aug_data}/TREC/dev.tsv (100%) rename {aug_data => code/aug_data}/TREC/test.tsv (100%) rename {aug_data => code/aug_data}/TREC/train_origin.tsv (100%) rename {aug_data => code/aug_data}/mpqa/dev.tsv (100%) rename {aug_data => code/aug_data}/mpqa/test.tsv (100%) rename {aug_data => code/aug_data}/mpqa/train_origin.tsv (100%) rename {aug_data => code/aug_data}/rt-polarity/dev.tsv (100%) rename {aug_data => code/aug_data}/rt-polarity/test.tsv (100%) rename {aug_data => code/aug_data}/rt-polarity/train_origin.tsv (100%) rename {aug_data => code/aug_data}/stsa.binary/dev.tsv (100%) rename {aug_data => code/aug_data}/stsa.binary/test.tsv (100%) rename {aug_data => code/aug_data}/stsa.binary/train_origin.tsv (100%) rename {aug_data => code/aug_data}/stsa.fine/dev.tsv (100%) rename {aug_data => code/aug_data}/stsa.fine/test.tsv (100%) rename {aug_data => code/aug_data}/stsa.fine/train_origin.tsv (100%) rename {aug_data => code/aug_data}/subj/dev.tsv (100%) rename {aug_data => code/aug_data}/subj/test.tsv (100%) rename {aug_data => code/aug_data}/subj/train_origin.tsv (100%) rename cbert_augdata.py => code/cbert_augdata.py (100%) rename cbert_finetune.py => code/cbert_finetune.py (100%) rename cbert_utils.py => code/cbert_utils.py (100%) rename {datasets => code/datasets}/TREC/dev.tsv (100%) rename {datasets => code/datasets}/TREC/test.tsv (100%) rename {datasets => code/datasets}/TREC/train.tsv (100%) rename {datasets => code/datasets}/TREC/train_dev.tsv (100%) rename {datasets => code/datasets}/mpqa/dev.tsv (100%) rename {datasets => code/datasets}/mpqa/test.tsv (100%) rename {datasets => code/datasets}/mpqa/train.tsv (100%) rename {datasets => code/datasets}/mpqa/train_dev.tsv (100%) rename {datasets => code/datasets}/rt-polarity/dev.tsv (100%) rename {datasets => code/datasets}/rt-polarity/test.tsv (100%) rename {datasets => code/datasets}/rt-polarity/train.tsv (100%) rename {datasets => code/datasets}/rt-polarity/train_dev.tsv (100%) rename {datasets => code/datasets}/stsa.binary/dev.tsv (100%) rename {datasets => code/datasets}/stsa.binary/test.tsv (100%) rename {datasets => code/datasets}/stsa.binary/train.tsv (100%) rename {datasets => code/datasets}/stsa.binary/train_dev.tsv (100%) rename {datasets => code/datasets}/stsa.fine/dev.tsv (100%) rename {datasets => code/datasets}/stsa.fine/test.tsv (100%) rename {datasets => code/datasets}/stsa.fine/train.tsv (100%) rename {datasets => code/datasets}/stsa.fine/train_dev.tsv (100%) rename {datasets => code/datasets}/subj/dev.tsv (100%) rename {datasets => code/datasets}/subj/test.tsv (100%) rename {datasets => code/datasets}/subj/train.tsv (100%) rename {datasets => code/datasets}/subj/train_dev.tsv (100%) rename evaluator.py => code/evaluator.py (100%) rename global.config => code/global.config (100%) rename nets.py => code/nets.py (100%) rename {text_classification => code/text_classification}/__init__.py (100%) rename {text_classification => code/text_classification}/nets.py (100%) rename {text_classification => code/text_classification}/nlp_utils.py (100%) rename {text_classification => code/text_classification}/text_datasets.py (100%) rename train_text_classifier.py => code/train_text_classifier.py (100%) rename triggers.py => code/triggers.py (100%) rename utils.py => code/utils.py (100%) delete mode 100755 text_classification/__pycache__/__init__.cpython-35.pyc delete mode 100755 text_classification/__pycache__/__init__.cpython-36.pyc delete mode 100755 text_classification/__pycache__/__init__.cpython-37.pyc delete mode 100755 text_classification/__pycache__/nets.cpython-35.pyc delete mode 100755 text_classification/__pycache__/nets.cpython-36.pyc delete mode 100755 text_classification/__pycache__/nets.cpython-37.pyc delete mode 100755 text_classification/__pycache__/nlp_utils.cpython-35.pyc delete mode 100755 text_classification/__pycache__/nlp_utils.cpython-36.pyc delete mode 100755 text_classification/__pycache__/nlp_utils.cpython-37.pyc delete mode 100755 text_classification/__pycache__/text_datasets.cpython-35.pyc delete mode 100755 text_classification/__pycache__/text_datasets.cpython-36.pyc delete mode 100755 text_classification/__pycache__/text_datasets.cpython-37.pyc diff --git a/args_of_text_classifier.py b/code/args_of_text_classifier.py similarity index 100% rename from args_of_text_classifier.py rename to code/args_of_text_classifier.py diff --git a/aug_data/TREC/dev.tsv b/code/aug_data/TREC/dev.tsv similarity index 100% rename from aug_data/TREC/dev.tsv rename to code/aug_data/TREC/dev.tsv diff --git a/aug_data/TREC/test.tsv b/code/aug_data/TREC/test.tsv similarity index 100% rename from aug_data/TREC/test.tsv rename to code/aug_data/TREC/test.tsv diff --git a/aug_data/TREC/train_origin.tsv b/code/aug_data/TREC/train_origin.tsv similarity index 100% rename from aug_data/TREC/train_origin.tsv rename to code/aug_data/TREC/train_origin.tsv diff --git a/aug_data/mpqa/dev.tsv b/code/aug_data/mpqa/dev.tsv similarity index 100% rename from aug_data/mpqa/dev.tsv rename to code/aug_data/mpqa/dev.tsv diff --git a/aug_data/mpqa/test.tsv b/code/aug_data/mpqa/test.tsv similarity index 100% rename from aug_data/mpqa/test.tsv rename to code/aug_data/mpqa/test.tsv diff --git a/aug_data/mpqa/train_origin.tsv b/code/aug_data/mpqa/train_origin.tsv similarity index 100% rename from aug_data/mpqa/train_origin.tsv rename to code/aug_data/mpqa/train_origin.tsv diff --git a/aug_data/rt-polarity/dev.tsv b/code/aug_data/rt-polarity/dev.tsv similarity index 100% rename from aug_data/rt-polarity/dev.tsv rename to code/aug_data/rt-polarity/dev.tsv diff --git a/aug_data/rt-polarity/test.tsv b/code/aug_data/rt-polarity/test.tsv similarity index 100% rename from aug_data/rt-polarity/test.tsv rename to code/aug_data/rt-polarity/test.tsv diff --git a/aug_data/rt-polarity/train_origin.tsv b/code/aug_data/rt-polarity/train_origin.tsv similarity index 100% rename from aug_data/rt-polarity/train_origin.tsv rename to code/aug_data/rt-polarity/train_origin.tsv diff --git a/aug_data/stsa.binary/dev.tsv b/code/aug_data/stsa.binary/dev.tsv similarity index 100% rename from aug_data/stsa.binary/dev.tsv rename to code/aug_data/stsa.binary/dev.tsv diff --git a/aug_data/stsa.binary/test.tsv b/code/aug_data/stsa.binary/test.tsv similarity index 100% rename from aug_data/stsa.binary/test.tsv rename to code/aug_data/stsa.binary/test.tsv diff --git a/aug_data/stsa.binary/train_origin.tsv b/code/aug_data/stsa.binary/train_origin.tsv similarity index 100% rename from aug_data/stsa.binary/train_origin.tsv rename to code/aug_data/stsa.binary/train_origin.tsv diff --git a/aug_data/stsa.fine/dev.tsv b/code/aug_data/stsa.fine/dev.tsv similarity index 100% rename from aug_data/stsa.fine/dev.tsv rename to code/aug_data/stsa.fine/dev.tsv diff --git a/aug_data/stsa.fine/test.tsv b/code/aug_data/stsa.fine/test.tsv similarity index 100% rename from aug_data/stsa.fine/test.tsv rename to code/aug_data/stsa.fine/test.tsv diff --git a/aug_data/stsa.fine/train_origin.tsv b/code/aug_data/stsa.fine/train_origin.tsv similarity index 100% rename from aug_data/stsa.fine/train_origin.tsv rename to code/aug_data/stsa.fine/train_origin.tsv diff --git a/aug_data/subj/dev.tsv b/code/aug_data/subj/dev.tsv similarity index 100% rename from aug_data/subj/dev.tsv rename to code/aug_data/subj/dev.tsv diff --git a/aug_data/subj/test.tsv b/code/aug_data/subj/test.tsv similarity index 100% rename from aug_data/subj/test.tsv rename to code/aug_data/subj/test.tsv diff --git a/aug_data/subj/train_origin.tsv b/code/aug_data/subj/train_origin.tsv similarity index 100% rename from aug_data/subj/train_origin.tsv rename to code/aug_data/subj/train_origin.tsv diff --git a/cbert_augdata.py b/code/cbert_augdata.py similarity index 100% rename from cbert_augdata.py rename to code/cbert_augdata.py diff --git a/cbert_finetune.py b/code/cbert_finetune.py similarity index 100% rename from cbert_finetune.py rename to code/cbert_finetune.py diff --git a/cbert_utils.py b/code/cbert_utils.py similarity index 100% rename from cbert_utils.py rename to code/cbert_utils.py diff --git a/datasets/TREC/dev.tsv b/code/datasets/TREC/dev.tsv similarity index 100% rename from datasets/TREC/dev.tsv rename to code/datasets/TREC/dev.tsv diff --git a/datasets/TREC/test.tsv b/code/datasets/TREC/test.tsv similarity index 100% rename from datasets/TREC/test.tsv rename to code/datasets/TREC/test.tsv diff --git a/datasets/TREC/train.tsv b/code/datasets/TREC/train.tsv similarity index 100% rename from datasets/TREC/train.tsv rename to code/datasets/TREC/train.tsv diff --git a/datasets/TREC/train_dev.tsv b/code/datasets/TREC/train_dev.tsv similarity index 100% rename from datasets/TREC/train_dev.tsv rename to code/datasets/TREC/train_dev.tsv diff --git a/datasets/mpqa/dev.tsv b/code/datasets/mpqa/dev.tsv similarity index 100% rename from datasets/mpqa/dev.tsv rename to code/datasets/mpqa/dev.tsv diff --git a/datasets/mpqa/test.tsv b/code/datasets/mpqa/test.tsv similarity index 100% rename from datasets/mpqa/test.tsv rename to code/datasets/mpqa/test.tsv diff --git a/datasets/mpqa/train.tsv b/code/datasets/mpqa/train.tsv similarity index 100% rename from datasets/mpqa/train.tsv rename to code/datasets/mpqa/train.tsv diff --git a/datasets/mpqa/train_dev.tsv b/code/datasets/mpqa/train_dev.tsv similarity index 100% rename from datasets/mpqa/train_dev.tsv rename to code/datasets/mpqa/train_dev.tsv diff --git a/datasets/rt-polarity/dev.tsv b/code/datasets/rt-polarity/dev.tsv similarity index 100% rename from datasets/rt-polarity/dev.tsv rename to code/datasets/rt-polarity/dev.tsv diff --git a/datasets/rt-polarity/test.tsv b/code/datasets/rt-polarity/test.tsv similarity index 100% rename from datasets/rt-polarity/test.tsv rename to code/datasets/rt-polarity/test.tsv diff --git a/datasets/rt-polarity/train.tsv b/code/datasets/rt-polarity/train.tsv similarity index 100% rename from datasets/rt-polarity/train.tsv rename to code/datasets/rt-polarity/train.tsv diff --git a/datasets/rt-polarity/train_dev.tsv b/code/datasets/rt-polarity/train_dev.tsv similarity index 100% rename from datasets/rt-polarity/train_dev.tsv rename to code/datasets/rt-polarity/train_dev.tsv diff --git a/datasets/stsa.binary/dev.tsv b/code/datasets/stsa.binary/dev.tsv similarity index 100% rename from datasets/stsa.binary/dev.tsv rename to code/datasets/stsa.binary/dev.tsv diff --git a/datasets/stsa.binary/test.tsv b/code/datasets/stsa.binary/test.tsv similarity index 100% rename from datasets/stsa.binary/test.tsv rename to code/datasets/stsa.binary/test.tsv diff --git a/datasets/stsa.binary/train.tsv b/code/datasets/stsa.binary/train.tsv similarity index 100% rename from datasets/stsa.binary/train.tsv rename to code/datasets/stsa.binary/train.tsv diff --git a/datasets/stsa.binary/train_dev.tsv b/code/datasets/stsa.binary/train_dev.tsv similarity index 100% rename from datasets/stsa.binary/train_dev.tsv rename to code/datasets/stsa.binary/train_dev.tsv diff --git a/datasets/stsa.fine/dev.tsv b/code/datasets/stsa.fine/dev.tsv similarity index 100% rename from datasets/stsa.fine/dev.tsv rename to code/datasets/stsa.fine/dev.tsv diff --git a/datasets/stsa.fine/test.tsv b/code/datasets/stsa.fine/test.tsv similarity index 100% rename from datasets/stsa.fine/test.tsv rename to code/datasets/stsa.fine/test.tsv diff --git a/datasets/stsa.fine/train.tsv b/code/datasets/stsa.fine/train.tsv similarity index 100% rename from datasets/stsa.fine/train.tsv rename to code/datasets/stsa.fine/train.tsv diff --git a/datasets/stsa.fine/train_dev.tsv b/code/datasets/stsa.fine/train_dev.tsv similarity index 100% rename from datasets/stsa.fine/train_dev.tsv rename to code/datasets/stsa.fine/train_dev.tsv diff --git a/datasets/subj/dev.tsv b/code/datasets/subj/dev.tsv similarity index 100% rename from datasets/subj/dev.tsv rename to code/datasets/subj/dev.tsv diff --git a/datasets/subj/test.tsv b/code/datasets/subj/test.tsv similarity index 100% rename from datasets/subj/test.tsv rename to code/datasets/subj/test.tsv diff --git a/datasets/subj/train.tsv b/code/datasets/subj/train.tsv similarity index 100% rename from datasets/subj/train.tsv rename to code/datasets/subj/train.tsv diff --git a/datasets/subj/train_dev.tsv b/code/datasets/subj/train_dev.tsv similarity index 100% rename from datasets/subj/train_dev.tsv rename to code/datasets/subj/train_dev.tsv diff --git a/evaluator.py b/code/evaluator.py similarity index 100% rename from evaluator.py rename to code/evaluator.py diff --git a/global.config b/code/global.config similarity index 100% rename from global.config rename to code/global.config diff --git a/nets.py b/code/nets.py similarity index 100% rename from nets.py rename to code/nets.py diff --git a/text_classification/__init__.py b/code/text_classification/__init__.py similarity index 100% rename from text_classification/__init__.py rename to code/text_classification/__init__.py diff --git a/text_classification/nets.py b/code/text_classification/nets.py similarity index 100% rename from text_classification/nets.py rename to code/text_classification/nets.py diff --git a/text_classification/nlp_utils.py b/code/text_classification/nlp_utils.py similarity index 100% rename from text_classification/nlp_utils.py rename to code/text_classification/nlp_utils.py diff --git a/text_classification/text_datasets.py b/code/text_classification/text_datasets.py similarity index 100% rename from text_classification/text_datasets.py rename to code/text_classification/text_datasets.py diff --git a/train_text_classifier.py b/code/train_text_classifier.py similarity index 100% rename from train_text_classifier.py rename to code/train_text_classifier.py diff --git a/triggers.py b/code/triggers.py similarity index 100% rename from triggers.py rename to code/triggers.py diff --git a/utils.py b/code/utils.py similarity index 100% rename from utils.py rename to code/utils.py diff --git a/text_classification/__pycache__/__init__.cpython-35.pyc b/text_classification/__pycache__/__init__.cpython-35.pyc deleted file mode 100755 index 21439f2a99b61651962161d9452f6b827a301478..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161 zcmWgV<>i{}yD^pl2p)q77+?f49Dul(1xTbYFa&Ed`mJOr0tq9CUw-=K`9;~q1&PV2 z`bDY5sfk6&8Tu}XC5euu>A9(SC5a`O`FZ-uNvTC8@rkAB`X#9qCGp8QiN(d4X_?6o g+4%U(yv&mLc)fzkTO2mI`6;D2sdgZHih-B`08ODQ6951J diff --git a/text_classification/__pycache__/__init__.cpython-36.pyc b/text_classification/__pycache__/__init__.cpython-36.pyc deleted file mode 100755 index c9c00f7433e7910d28c0168be253e0b6408b43ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139 zcmXr!<>mTXml?wV1dl-k3@`#24nSPY0whuxf*CX!{Z=v*frJsnFAM#Q{M=Oiiu82- zf};Fl{p6(7qLTQ;(sccj)QXb$@(ng`kg45G3$Aaj`AOZ#$feZ&AE@lA|DGb33nv8xc8Hzx{2;!HKeo=mYiGFfX zVr71wzO$2SP>6m>YDGzWa!z7#ab{X(a$-p)P$oV;GcU6wK3=b&@)n0pZhlH>PO2Tq Jtj|Eq000<8AgBNU diff --git a/text_classification/__pycache__/nets.cpython-35.pyc b/text_classification/__pycache__/nets.cpython-35.pyc deleted file mode 100755 index 8f441717b99efeab4a8f03c87c5261b94fea542d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11028 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 diff --git a/text_classification/__pycache__/nets.cpython-36.pyc b/text_classification/__pycache__/nets.cpython-36.pyc deleted file mode 100755 index 9e3a0bc08ca0741ea9bb93a64cc1fb672b2e4f61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10389 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 HeB*xsoqqM3 diff --git a/text_classification/__pycache__/nets.cpython-37.pyc b/text_classification/__pycache__/nets.cpython-37.pyc deleted file mode 100755 index ced762f013fd8e89ddf6cc743aa8269ef7e8ae89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10336 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 IEqV3-0EzG3#{d8T diff --git a/text_classification/__pycache__/nlp_utils.cpython-37.pyc b/text_classification/__pycache__/nlp_utils.cpython-37.pyc deleted file mode 100755 index 3a793bb87b2c2a6c98ae86240327bf04612a14ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3387 zcma)8&2QYs6`vV?EJdvp#Zhc4bsfVA(r(d8sU09`ASi*H8vO_a#}c4oQDZ@IxH2W~ zay6W_R|5AW7j}T8MK3+|pgs2Q=&{G%=9-hyV{f^%zc<_u$x+denBkibzIpS0zxQS~ z7ZyT>=O2Ih=c9kkG4>5LCXWN*QGDSj*286UB2m1v*=THQWv5qYmG+F6%>JxT16ucNQ9ZsBSk^2-N*M@4JJgdaU*6&Yon^%Vq-MYS05 zp)*)5*=Ow0d%qV$cjygnlrCD!L%(!N-(xGl{6prjb#`=fmmMwb0%OUg^H(vf4K}q? zI%n>PS*)4#zZUrSC(slO=d@SWPI<`>z2ZqZSBgWX1`pV{w^jzw*xY4h4FJ`))B}`yDF@ARtX3Tex3E`o!z&_Rl^te!35SCkWCY>BhNC zyZgpZl*(1naE(ZF#?EUhiR2gs zN(t{^*wTqScLgQjb^F3^KgHNi?4qWJ6p>6MEIvo|f)fG1q%R0Kbf2^5ybUi(_gO$O zb;{u>q3)F487tip=d5(pr=`2kOYa)IsQDSZCcP1P#@`wfeoX%g{uHc4FFPbkBQ)%Vp+`~%TPAhl9yT{CmVx8XWDAkI6zjXR{g zTIuAbrB$Sm0nf+6WUAq5!!dr;0|uaax8Fem^z8J8uPCG{2x^g(Ed+AY3VRTIv|t8e zMHbeKhEQvh`O2bGQQ9h_kzxrI10(^c>;fDr>O=HRGaI2XDFp!rk6(Sx+Q3GN2@c!L z_BiKz?9t$EP5n$t$Oh}@A49NyzJ+AQhX@Mt^r^6riG3V>BheoF9ZCAP-u-Y+b6 z0n(D9zA1hbQPZgU4H`4-hR7`HgVM1P1=3SQA=5a>OzyL3dmqt*KL32*_~5V2(4`2P zda8*ArMUx9vOlsR4ygl&P7^7<7Qos)@Fq**O5^ym zoXwSP>7a$gh)@oyBu7`4Xpj~c(4wtwqu69^(W+Nyo$`xV*~B)+Y7swFtg*?Ad~K;i zNoW$aAH{k1NuqSCNRDP<3l_=bNg5}(rNf*WP9S2yyQ}jEgh6`2NMY1Nwn7QfliuR2>?O8L781(4O zBPAv%#s?~HW44DZZqC_>B*Kk;wTD^YnAfJ7tBrj|o~WZ@ejVrEEtExm^6vNX$rK(+ z0GGg1C4llgJd?1nfn>q?A^yD#p@-<7AoTX7*35wTo`#&y_7@Bx8w@|b%nZx8D!orv zp(btFj!~YqYz!zG&M~oC;s5Y(7k`g;S}HC04jq#WC8^9Au}!r6Nm z94CtUf{Rn_VR77 x#OgLR>3FD;G^HS`{+zd_v1Nkwis&13S1Bm3;sg?SdEE(Xfg3J{^>99%`!9U(%3A;c diff --git a/text_classification/__pycache__/text_datasets.cpython-35.pyc b/text_classification/__pycache__/text_datasets.cpython-35.pyc deleted file mode 100755 index 17f598d9eab2080b21eb2474f2735b395952369b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6644 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 diff --git a/text_classification/__pycache__/text_datasets.cpython-36.pyc b/text_classification/__pycache__/text_datasets.cpython-36.pyc deleted file mode 100755 index 14eefae88e7f6a92a5494d28c5378aabd1a3ef85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5947 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 Date: Tue, 10 May 2022 00:54:26 +0900 Subject: [PATCH 3/7] feat(docker): create basic docker container --- README.md | 27 ++++++++++++++++++++++- docker/Dockerfile | 24 ++++++++++++++++++++ docker/nvidia_gpgkey | 52 ++++++++++++++++++++++++++++++++++++++++++++ requirements.txt | 7 ++++++ 4 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 docker/Dockerfile create mode 100644 docker/nvidia_gpgkey create mode 100644 requirements.txt diff --git a/README.md b/README.md index b037525..f3b62d6 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,29 @@ -# cbert_aug +# Changes to make reproducible + +Build docker environment: +``` +docker build -f docker/Dockerfile -t cbert_cuda110 . +``` + +Connect interactively to instance: +``` +docker run --gpus all -it cbert_cuda110 /bin/bash +``` + +Fine tune BERT on Subjective/Objective dataset (takes ~20 minutes): +(see file for other options) +``` +python3 cbert_finetune.py +``` +Model is saved to `cbert_model`. + +Generate augmented data: +``` +python3 cbert_augdata.py +``` +The data are output to `aug_data/` + +# Original README Thanks @liuyaxin 's effort to rewrite the code with huggingface's latest transformer library. If you want to reproduce the results in paper, you can switch to the develop branch. diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..dc748ad --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,24 @@ +from nvidia/cuda:11.0.3-cudnn8-devel-ubuntu20.04 + +WORKDIR /cbert + +COPY requirements.txt requirements.txt +COPY code code + +# Disable nvidia repos as their GPG key isn't recognized +RUN mv /etc/apt/sources.list.d/cuda.list /etc/apt/sources.list.d/cuda.list.bak +RUN mv /etc/apt/sources.list.d/nvidia-ml.list /etc/apt/sources.list.d/nvidia-ml.list.bak + +RUN apt-get update &&\ + apt-get install --no-install-recommends --no-install-suggests -y gnupg2 \ + ca-certificates \ + git \ + build-essential \ + python3-dev \ + python3-pip \ + wget \ + curl \ + rsync + + +RUN pip install -r requirements.txt diff --git a/docker/nvidia_gpgkey b/docker/nvidia_gpgkey new file mode 100644 index 0000000..e70a0dc --- /dev/null +++ b/docker/nvidia_gpgkey @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +X7sqI6cXUDG4BjpS70ZRWF2x51ZTiq7DLTV/gGw2okfVjoWjzQY0ebrLd4IoNs80 +lIHmXxa+JdwB6WupCUzKCKLcPsX/yPAmswPNGAuIMAv+PWhUUSMVtzOZldnlogGM +hbJ9UD2txFGGh9WoYc2vgX9KAaKryXcC6QMabv7JJU24HEJJDgbJEvtFM5PS8QMF +bXIZsYgICWpQXVChBbduXo9sD2TUDWYAniNaaw4LKxPRG+Ix4HAqkh1oNOLojO30 +DO3r1/62FKE5/ykg3iSMTDR0iOES/leXCCIO9fRJT8+eucxyOQoY5ti7tjt1wm3H +nTB+Rz3E/E2qeLs2PN82aseccm1G06pmsMCUiWtmSV6HjdO2XufYprrGLSu0RrT3 +sz5WHGUOY2iO40xHhSiXg3TcLZRpv30DQzxoUrx9Ff//rXLFznh+MksuvVD2roUR +BGz/en31FxAcBoex9nNraeOekbFen5b7Xrq9wnzM5xZvJN2QYB3vS0khz/ZgFyy5 +444ALa9gwb29FZCfA4m59S2QoB8uPQGM+8gnusE6J8y4fvI59ugafidIkt86dZ3m +FsEME5XNmBGdNEo2flRVFfpG1IWds2Ba3IsdbYd9nzmbBW7/n0InVRDrIg== +=9QWY +-----END PGP PUBLIC KEY BLOCK----- diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..4b159ac --- /dev/null +++ b/requirements.txt @@ -0,0 +1,7 @@ +torch==1.11.0 +transformers==2.1.0 +cython==0.29.28 +chainer==7.8.1 +cupy-cuda110==7.8.0 +scikit_learn==1.0.2 +progressbar==2.5 From 8d4c9c550c8d53735435a2b957ec884741d2bf8d Mon Sep 17 00:00:00 2001 From: Jennifer Handsel Date: Tue, 10 May 2022 02:50:38 +0900 Subject: [PATCH 4/7] chore(.gitignore): add vim .swp files --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 9628d14..2ec1a77 100644 --- a/.gitignore +++ b/.gitignore @@ -128,5 +128,8 @@ dmypy.json # Pyre type checker .pyre/ +# Vim +*.swp + # Repo specific cbert_model/ From 87591360efbdbf8ed81d3ed702b331152450ecc6 Mon Sep 17 00:00:00 2001 From: Jennifer Handsel Date: Tue, 10 May 2022 05:36:47 +0900 Subject: [PATCH 5/7] chore(.gitignore): add log and result folders --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 2ec1a77..6b4bcd4 100644 --- a/.gitignore +++ b/.gitignore @@ -133,3 +133,5 @@ dmypy.json # Repo specific cbert_model/ +aug_data_*/ +result/ From 643fad73cdc513d682c5acac00acd04cced4a46d Mon Sep 17 00:00:00 2001 From: Jennifer Handsel Date: Tue, 10 May 2022 05:41:26 +0900 Subject: [PATCH 6/7] chore(docker): make docker save results in mounted folder --- README.md | 18 ++++++++++++------ docker/Dockerfile | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index f3b62d6..6749632 100644 --- a/README.md +++ b/README.md @@ -5,9 +5,12 @@ Build docker environment: docker build -f docker/Dockerfile -t cbert_cuda110 . ``` -Connect interactively to instance: +Mount `code` directory and connect interactively to instance: ``` -docker run --gpus all -it cbert_cuda110 /bin/bash +docker run \ +--gpus all \ +--mount type=bind,source="$(pwd)"/code,target=/cbert/code \ +-it cbert_cuda110 /bin/bash ``` Fine tune BERT on Subjective/Objective dataset (takes ~20 minutes): @@ -15,13 +18,16 @@ Fine tune BERT on Subjective/Objective dataset (takes ~20 minutes): ``` python3 cbert_finetune.py ``` -Model is saved to `cbert_model`. +Model is saved to `cbert_model/`. -Generate augmented data: +Generate augmented data for Subjective/Objective dataset: ``` -python3 cbert_augdata.py +python3 cbert_augdata.py --num_train_epochs 1 ``` -The data are output to `aug_data/` +The data are output to `aug_data_/subj`, where `` depends on the +parameters used for the data augmentation. +- `train_origin.tsv`: unaugmented data +- `train.tsv`: unaugmented data + augmented data (appended) # Original README diff --git a/docker/Dockerfile b/docker/Dockerfile index dc748ad..0390ddd 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -3,7 +3,6 @@ from nvidia/cuda:11.0.3-cudnn8-devel-ubuntu20.04 WORKDIR /cbert COPY requirements.txt requirements.txt -COPY code code # Disable nvidia repos as their GPG key isn't recognized RUN mv /etc/apt/sources.list.d/cuda.list /etc/apt/sources.list.d/cuda.list.bak @@ -22,3 +21,4 @@ RUN apt-get update &&\ RUN pip install -r requirements.txt +WORKDIR /cbert/code From 5dfbce64f34315bdeaa7915387df8ec3e0bbc6d3 Mon Sep 17 00:00:00 2001 From: Stian Hanssen Date: Wed, 11 May 2022 14:33:42 +0900 Subject: [PATCH 7/7] fix(Dockerfile): avoid crash if source list is not found --- docker/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 0390ddd..cba6a34 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,12 +1,12 @@ -from nvidia/cuda:11.0.3-cudnn8-devel-ubuntu20.04 +from nvidia/cuda:11.0.3-cudnn8-devel-ubuntu20.04 WORKDIR /cbert COPY requirements.txt requirements.txt # Disable nvidia repos as their GPG key isn't recognized -RUN mv /etc/apt/sources.list.d/cuda.list /etc/apt/sources.list.d/cuda.list.bak -RUN mv /etc/apt/sources.list.d/nvidia-ml.list /etc/apt/sources.list.d/nvidia-ml.list.bak +RUN mv -f /etc/apt/sources.list.d/cuda.list /etc/apt/sources.list.d/cuda.list.bak 2>/dev/null; true +RUN mv -f /etc/apt/sources.list.d/nvidia-ml.list /etc/apt/sources.list.d/nvidia-ml.list.bak 2>/dev/null; true RUN apt-get update &&\ apt-get install --no-install-recommends --no-install-suggests -y gnupg2 \