如何从拥抱者文本文字标记器中提取位置输入输出指标?

时间:2020-05-15 14:22:36

标签: python nlp pytorch huggingface-transformers

我想用训练有素的俄罗斯伯特解决压力预测任务。

输入数据如下:

граммовсверху| 000100000001000

零表示没有压力。一个代表应力位置特征。

我想将其映射为单词->元音编号索引

所以它将像 граммов-> 1 сверху-> 1

因此,对于每个令牌,它应该是带有softmax的线性层。

我了解这部分,但是我很难处理文本预处理,因为文本tokenizator可以将一个单词拆分为子单词令牌。

Tokenizator接受输入字符串并返回类似这样的令牌

bert_tokenizer.encode('граммов сверху')
->
[101, 44505, 26656, 102]

那么,如何获得输入字符和单词之间的位置映射?

所需的输出应类似于[[0,7],[8,14]]

我试图阅读文档 https://huggingface.co/transformers/main_classes/tokenizer.html

并发现convert_ids_to_tokens函数 就像

encoded = bert_tokenizer.encode('граммов сверху')
bert_tokenizer.convert_ids_to_tokens(encoded)
->
['[CLS]', 'граммов', 'сверху', '[SEP]']

但是我不确定如何使用原始的字符串和重音索引来计算令牌的重音位置编号。

1 个答案:

答案 0 :(得分:1)

事实证明,令牌生成器具有return_offsets_mapping参数,这解决了我的问题。