【问题标题】:Huggingface pre-trainined German tokenizers for sentencepiece embeddings?用于句子嵌入的 Huggingface 预训练德语标记器?
【发布时间】:2021-12-04 22:22:03
【问题描述】:

我一直在关注本指南,https://huggingface.co/transformers/tokenizer_summary.html。例如,我想实现 XLNetTokenizer 来生成子词。该指南显示为英语,但是否有对应的德语?

from transformers import XLNetTokenizer
tokenizer = XLNetTokenizer.from_pretrained("xlnet-base-cased")

此代码 sn-p 用于英语。对于德语,有 https://huggingface.co/bert-base-german-cased,但我特别想尝试 XLNEt 生成的句子标记,因为句子嵌入似乎是最好的。

【问题讨论】:

  • 是什么让你认为 BERT 代币不是用 Sentencepiece 创建的?

标签: python nlp huggingface-transformers huggingface-tokenizers


【解决方案1】:

您是否尝试加载 XLMTokenizer 的 English / German 版本?:

from transformers import XLMTokenizer

tokenizer = XLMTokenizer.from_pretrained("xlm-mlm-ende-1024")
tokenizer.tokenize("Der Landstreicher hatte eine Lieblingstätigkeit")

'''
['der</w>',
 'land',
 'st',
 'reicher</w>',
 'hatte</w>',
 'eine</w>',
 'lieb',
 'ling',
 'stati',
 'gkeit</w>']
'''
tokenizer.tokenize("You are a disgusting handyman")

'''
['you</w>', 'are</w>', 'a</w>', 'disgu', 'sting</w>', 'hand', 'yman</w>']
'''
# Other languages, for example Russian, aren't tokenized correctly.
tokenizer.tokenize("Ты маленький человек") 

'''
['т',
 'ы</w>',
 'м',
 'а',
 'л',
 'е',
 'н',
 'ь',
 'к',
 'и',
 'и</w>',
 'ч',
 'е',
 'л',
 'о',
 'в',
 'е',
 'к</w>']
'''

【讨论】:

  • 有趣,但这不是 SentencePiece 分词器,对吧?
  • 我没有测试过,但我相信它也使用 SentencePiece。
  • 我也可以用它来英语吗?文档页面说它接受过英语和德语文本的培训
  • 更新了答案。似乎两者都适用。
  • 我认为您将 XLM 和 XLNET 混淆了。您链接的文档也适用于 XLNET。
猜你喜欢
  • 2022-10-20
  • 2018-03-12
  • 1970-01-01
  • 2019-01-14
  • 1970-01-01
  • 2021-09-14
  • 2022-01-27
  • 1970-01-01
  • 2019-08-25
相关资源
最近更新 更多