Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F120585952
test_tokenization_xlnet.py
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sat, Jul 5, 10:00
Size
5 KB
Mime Type
text/x-python
Expires
Mon, Jul 7, 10:00 (2 d)
Engine
blob
Format
Raw Data
Handle
27192339
Attached To
R11484 ADDI
test_tokenization_xlnet.py
View Options
# coding=utf-8
# Copyright 2020 The HuggingFace Team. All rights reserved.
#
# 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.
import
os
import
unittest
from
transformers
import
SPIECE_UNDERLINE
,
XLNetTokenizer
,
XLNetTokenizerFast
from
transformers.testing_utils
import
require_sentencepiece
,
require_tokenizers
,
slow
from
.test_tokenization_common
import
TokenizerTesterMixin
SAMPLE_VOCAB
=
os
.
path
.
join
(
os
.
path
.
dirname
(
os
.
path
.
abspath
(
__file__
)),
"fixtures/test_sentencepiece.model"
)
@require_sentencepiece
@require_tokenizers
class
XLNetTokenizationTest
(
TokenizerTesterMixin
,
unittest
.
TestCase
):
tokenizer_class
=
XLNetTokenizer
rust_tokenizer_class
=
XLNetTokenizerFast
test_rust_tokenizer
=
True
def
setUp
(
self
):
super
()
.
setUp
()
# We have a SentencePiece fixture for testing
tokenizer
=
XLNetTokenizer
(
SAMPLE_VOCAB
,
keep_accents
=
True
)
tokenizer
.
sanitize_special_tokens
()
tokenizer
.
save_pretrained
(
self
.
tmpdirname
)
def
test_full_tokenizer
(
self
):
tokenizer
=
XLNetTokenizer
(
SAMPLE_VOCAB
,
keep_accents
=
True
)
tokens
=
tokenizer
.
tokenize
(
"This is a test"
)
self
.
assertListEqual
(
tokens
,
[
"▁This"
,
"▁is"
,
"▁a"
,
"▁t"
,
"est"
])
self
.
assertListEqual
(
tokenizer
.
convert_tokens_to_ids
(
tokens
),
[
285
,
46
,
10
,
170
,
382
])
tokens
=
tokenizer
.
tokenize
(
"I was born in 92000, and this is falsé."
)
self
.
assertListEqual
(
tokens
,
[
SPIECE_UNDERLINE
+
"I"
,
SPIECE_UNDERLINE
+
"was"
,
SPIECE_UNDERLINE
+
"b"
,
"or"
,
"n"
,
SPIECE_UNDERLINE
+
"in"
,
SPIECE_UNDERLINE
+
""
,
"9"
,
"2"
,
"0"
,
"0"
,
"0"
,
","
,
SPIECE_UNDERLINE
+
"and"
,
SPIECE_UNDERLINE
+
"this"
,
SPIECE_UNDERLINE
+
"is"
,
SPIECE_UNDERLINE
+
"f"
,
"al"
,
"s"
,
"é"
,
"."
,
],
)
ids
=
tokenizer
.
convert_tokens_to_ids
(
tokens
)
self
.
assertListEqual
(
ids
,
[
8
,
21
,
84
,
55
,
24
,
19
,
7
,
0
,
602
,
347
,
347
,
347
,
3
,
12
,
66
,
46
,
72
,
80
,
6
,
0
,
4
])
back_tokens
=
tokenizer
.
convert_ids_to_tokens
(
ids
)
self
.
assertListEqual
(
back_tokens
,
[
SPIECE_UNDERLINE
+
"I"
,
SPIECE_UNDERLINE
+
"was"
,
SPIECE_UNDERLINE
+
"b"
,
"or"
,
"n"
,
SPIECE_UNDERLINE
+
"in"
,
SPIECE_UNDERLINE
+
""
,
"<unk>"
,
"2"
,
"0"
,
"0"
,
"0"
,
","
,
SPIECE_UNDERLINE
+
"and"
,
SPIECE_UNDERLINE
+
"this"
,
SPIECE_UNDERLINE
+
"is"
,
SPIECE_UNDERLINE
+
"f"
,
"al"
,
"s"
,
"<unk>"
,
"."
,
],
)
def
test_tokenizer_lower
(
self
):
tokenizer
=
XLNetTokenizer
(
SAMPLE_VOCAB
,
do_lower_case
=
True
)
tokens
=
tokenizer
.
tokenize
(
"I was born in 92000, and this is falsé."
)
self
.
assertListEqual
(
tokens
,
[
SPIECE_UNDERLINE
+
""
,
"i"
,
SPIECE_UNDERLINE
+
"was"
,
SPIECE_UNDERLINE
+
"b"
,
"or"
,
"n"
,
SPIECE_UNDERLINE
+
"in"
,
SPIECE_UNDERLINE
+
""
,
"9"
,
"2"
,
"0"
,
"0"
,
"0"
,
","
,
SPIECE_UNDERLINE
+
"and"
,
SPIECE_UNDERLINE
+
"this"
,
SPIECE_UNDERLINE
+
"is"
,
SPIECE_UNDERLINE
+
"f"
,
"al"
,
"se"
,
"."
,
],
)
self
.
assertListEqual
(
tokenizer
.
tokenize
(
"H
\u00E9
llo"
),
[
"▁he"
,
"ll"
,
"o"
])
def
test_tokenizer_no_lower
(
self
):
tokenizer
=
XLNetTokenizer
(
SAMPLE_VOCAB
,
do_lower_case
=
False
)
tokens
=
tokenizer
.
tokenize
(
"I was born in 92000, and this is falsé."
)
self
.
assertListEqual
(
tokens
,
[
SPIECE_UNDERLINE
+
"I"
,
SPIECE_UNDERLINE
+
"was"
,
SPIECE_UNDERLINE
+
"b"
,
"or"
,
"n"
,
SPIECE_UNDERLINE
+
"in"
,
SPIECE_UNDERLINE
+
""
,
"9"
,
"2"
,
"0"
,
"0"
,
"0"
,
","
,
SPIECE_UNDERLINE
+
"and"
,
SPIECE_UNDERLINE
+
"this"
,
SPIECE_UNDERLINE
+
"is"
,
SPIECE_UNDERLINE
+
"f"
,
"al"
,
"se"
,
"."
,
],
)
@slow
def
test_sequence_builders
(
self
):
tokenizer
=
XLNetTokenizer
.
from_pretrained
(
"xlnet-base-cased"
)
text
=
tokenizer
.
encode
(
"sequence builders"
,
add_special_tokens
=
False
)
text_2
=
tokenizer
.
encode
(
"multi-sequence build"
,
add_special_tokens
=
False
)
encoded_sentence
=
tokenizer
.
build_inputs_with_special_tokens
(
text
)
encoded_pair
=
tokenizer
.
build_inputs_with_special_tokens
(
text
,
text_2
)
assert
encoded_sentence
==
text
+
[
4
,
3
]
assert
encoded_pair
==
text
+
[
4
]
+
text_2
+
[
4
,
3
]
Event Timeline
Log In to Comment