Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
chenpangpang
transformers
Commits
62df4ba5
Commit
62df4ba5
authored
Aug 28, 2019
by
thomwolf
Browse files
add dilbert tokenizer and tests
parent
4ce5f36f
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
114 additions
and
5 deletions
+114
-5
pytorch_transformers/__init__.py
pytorch_transformers/__init__.py
+3
-2
pytorch_transformers/tests/tokenization_bert_test.py
pytorch_transformers/tests/tokenization_bert_test.py
+3
-3
pytorch_transformers/tests/tokenization_dilbert_test.py
pytorch_transformers/tests/tokenization_dilbert_test.py
+46
-0
pytorch_transformers/tokenization_dilbert.py
pytorch_transformers/tokenization_dilbert.py
+62
-0
No files found.
pytorch_transformers/__init__.py
View file @
62df4ba5
...
...
@@ -7,6 +7,7 @@ from .tokenization_gpt2 import GPT2Tokenizer
from
.tokenization_xlnet
import
XLNetTokenizer
,
SPIECE_UNDERLINE
from
.tokenization_xlm
import
XLMTokenizer
from
.tokenization_roberta
import
RobertaTokenizer
from
.tokenization_dilbert
import
DilBertTokenizer
from
.tokenization_utils
import
(
PreTrainedTokenizer
)
...
...
@@ -41,8 +42,8 @@ from .modeling_xlm import (XLMConfig, XLMPreTrainedModel , XLMModel,
from
.modeling_roberta
import
(
RobertaConfig
,
RobertaForMaskedLM
,
RobertaModel
,
RobertaForSequenceClassification
,
ROBERTA_PRETRAINED_CONFIG_ARCHIVE_MAP
,
ROBERTA_PRETRAINED_MODEL_ARCHIVE_MAP
)
from
.modeling_dilbert
import
(
DilBertConfig
,
DilBertForMaskedLM
,
DilBertModel
,
DilBertForSequenceClassification
,
DilBertForQuestionAnswering
,
DILBERT_PRETRAINED_CONFIG_ARCHIVE_MAP
,
DILBERT_PRETRAINED_MODEL_ARCHIVE_MAP
)
DilBertForSequenceClassification
,
DilBertForQuestionAnswering
,
DILBERT_PRETRAINED_CONFIG_ARCHIVE_MAP
,
DILBERT_PRETRAINED_MODEL_ARCHIVE_MAP
)
from
.modeling_utils
import
(
WEIGHTS_NAME
,
CONFIG_NAME
,
TF_WEIGHTS_NAME
,
PretrainedConfig
,
PreTrainedModel
,
prune_layer
,
Conv1D
)
...
...
pytorch_transformers/tests/tokenization_bert_test.py
View file @
62df4ba5
...
...
@@ -42,7 +42,7 @@ class BertTokenizationTest(CommonTestCases.CommonTokenizerTester):
vocab_writer
.
write
(
""
.
join
([
x
+
"
\n
"
for
x
in
vocab_tokens
]))
def
get_tokenizer
(
self
):
return
BertT
okenizer
.
from_pretrained
(
self
.
tmpdirname
)
return
self
.
t
okenizer
_class
.
from_pretrained
(
self
.
tmpdirname
)
def
get_input_output_texts
(
self
):
input_text
=
u
"UNwant
\u00E9
d,running"
...
...
@@ -50,7 +50,7 @@ class BertTokenizationTest(CommonTestCases.CommonTokenizerTester):
return
input_text
,
output_text
def
test_full_tokenizer
(
self
):
tokenizer
=
BertT
okenizer
(
self
.
vocab_file
)
tokenizer
=
self
.
t
okenizer
_class
(
self
.
vocab_file
)
tokens
=
tokenizer
.
tokenize
(
u
"UNwant
\u00E9
d,running"
)
self
.
assertListEqual
(
tokens
,
[
"un"
,
"##want"
,
"##ed"
,
","
,
"runn"
,
"##ing"
])
...
...
@@ -126,7 +126,7 @@ class BertTokenizationTest(CommonTestCases.CommonTokenizerTester):
self
.
assertFalse
(
_is_punctuation
(
u
" "
))
def
test_sequence_builders
(
self
):
tokenizer
=
BertT
okenizer
.
from_pretrained
(
"bert-base-uncased"
)
tokenizer
=
self
.
t
okenizer
_class
.
from_pretrained
(
"bert-base-uncased"
)
text
=
tokenizer
.
encode
(
"sequence builders"
)
text_2
=
tokenizer
.
encode
(
"multi-sequence build"
)
...
...
pytorch_transformers/tests/tokenization_dilbert_test.py
0 → 100644
View file @
62df4ba5
# coding=utf-8
# Copyright 2018 The Google AI Language Team Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from
__future__
import
absolute_import
,
division
,
print_function
,
unicode_literals
import
os
import
unittest
from
io
import
open
from
pytorch_transformers.tokenization_dilbert
import
(
DilBertTokenizer
)
from
.tokenization_tests_commons
import
CommonTestCases
from
.tokenization_bert_test
import
BertTokenizationTest
class
DilBertTokenizationTest
(
BertTokenizationTest
):
tokenizer_class
=
DilBertTokenizer
def
get_tokenizer
(
self
):
return
DilBertTokenizer
.
from_pretrained
(
self
.
tmpdirname
)
def
test_sequence_builders
(
self
):
tokenizer
=
DilBertTokenizer
.
from_pretrained
(
"dilbert-base-uncased"
)
text
=
tokenizer
.
encode
(
"sequence builders"
)
text_2
=
tokenizer
.
encode
(
"multi-sequence build"
)
encoded_sentence
=
tokenizer
.
add_special_tokens_single_sentence
(
text
)
encoded_pair
=
tokenizer
.
add_special_tokens_sentences_pair
(
text
,
text_2
)
assert
encoded_sentence
==
[
101
]
+
text
+
[
102
]
assert
encoded_pair
==
[
101
]
+
text
+
[
102
]
+
text_2
+
[
102
]
if
__name__
==
'__main__'
:
unittest
.
main
()
pytorch_transformers/tokenization_dilbert.py
0 → 100644
View file @
62df4ba5
# coding=utf-8
# Copyright 2018 The Google AI Language Team Authors and The HuggingFace Inc. team.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Tokenization classes for DilBERT."""
from
__future__
import
absolute_import
,
division
,
print_function
,
unicode_literals
import
collections
import
logging
import
os
import
unicodedata
from
io
import
open
from
.tokenization_bert
import
BertTokenizer
logger
=
logging
.
getLogger
(
__name__
)
VOCAB_FILES_NAMES
=
{
'vocab_file'
:
'vocab.txt'
}
PRETRAINED_VOCAB_FILES_MAP
=
{
'vocab_file'
:
{
'dilbert-base-uncased'
:
"https://s3.amazonaws.com/models.huggingface.co/bert/bert-base-uncased-vocab.txt"
,
'dilbert-base-uncased-distilled-squad'
:
"https://s3.amazonaws.com/models.huggingface.co/bert/bert-large-uncased-vocab.txt"
,
}
}
PRETRAINED_POSITIONAL_EMBEDDINGS_SIZES
=
{
'dilbert-base-uncased'
:
512
,
'dilbert-base-uncased-distilled-squad'
:
512
,
}
class
DilBertTokenizer
(
BertTokenizer
):
r
"""
Constructs a DilBertTokenizer.
:class:`~pytorch_transformers.DilBertTokenizer` is identical to BertTokenizer and runs end-to-end tokenization: punctuation splitting + wordpiece
Args:
vocab_file: Path to a one-wordpiece-per-line vocabulary file
do_lower_case: Whether to lower case the input. Only has an effect when do_wordpiece_only=False
do_basic_tokenize: Whether to do basic tokenization before wordpiece.
max_len: An artificial maximum length to truncate tokenized sequences to; Effective maximum length is always the
minimum of this value (if specified) and the underlying BERT model's sequence length.
never_split: List of tokens which will never be split during tokenization. Only has an effect when
do_wordpiece_only=False
"""
vocab_files_names
=
VOCAB_FILES_NAMES
pretrained_vocab_files_map
=
PRETRAINED_VOCAB_FILES_MAP
max_model_input_sizes
=
PRETRAINED_POSITIONAL_EMBEDDINGS_SIZES
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment