我想用训练有素的俄罗斯伯特解决压力预测任务。
输入数据如下:
граммовсверху| 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]']
但是我不确定如何使用原始的字符串和重音索引来计算令牌的重音位置编号。
答案 0 :(得分:1)
事实证明,令牌生成器具有return_offsets_mapping参数,这解决了我的问题。