我在torchtext中遇到了一个问题,并为此苦苦挣扎了很长一段时间。我试图使用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]])这有什么问题吗?我能做些什么来修复它吗?谢谢!
发布于 2018-12-17 11:11:14
根据文档,here numericalize接受预先标记化的输入,所以您不能只传递一个字符串。您希望在单个示例中使用以下两种方法之一:
TEXT.preprocess("Hello, how are you today?")或者在批处理中这样:
TEXT.process(["Hello, how are you today?"])https://stackoverflow.com/questions/53742792
复制相似问题