Tokenizer не работает должным образом в torchtext - PullRequest
0 голосов
/ 12 декабря 2018

У меня возникла проблема с факелами, и я долго боролся с ней.Я пытался токенизировать и оцифровать текст, используя torchtext и spacy.Я определил свой токенизатор следующим образом:

def Sp_Tokenizer(text): 
    return [tok.text for tok in spacy_en.tokenizer(text)]

Он работал хорошо:

Sp_Tokenizer('How are you today')

['How', 'are', 'you', 'today']

Затем я передал этот токенизатор в torchtext:

TEXT = data.Field(sequential=True, tokenize=Sp_Tokenizer, lower=False)

и собрал вокабель:

corps = ['How are you', 'I am good today', 'He is not well']
TEXT.build_vocab(corps, vectors="glove.6B.100d")

Тогда я попытался

TEXT.numericalize('How are you today')

Я предполагал, что должен получить тензор с 4 числами (уровень слова), однако то, что я получил, было похоже на уровень символа:

tensor([[ 6,  3, 10,  2,  4, 17,  5,  2, 11,  3, 19,  2,  9,  3,  7,  4, 11]])

Что с этим не так?Есть ли что-нибудь, что я могу сделать, чтобы это исправить?Спасибо!

1 Ответ

0 голосов
/ 17 декабря 2018

В соответствии с документами здесь для числового ввода допускается предварительно токенизированный ввод, поэтому вы не можете просто передать ему строку.Вы хотите либо это для одного примера:

TEXT.preprocess("Hello, how are you today?")

или это для партии:

TEXT.process(["Hello, how are you today?"])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...