【问题标题】:Cased VS uncased BERT models in spacy and train dataspacy 和 train 数据中的 Cased VS uncased BERT 模型
【发布时间】:2020-05-19 23:20:00
【问题描述】:
我想使用 spacy 的预训练 BERT 模型进行文本分类,但我对 cased/uncased 模型有点困惑。我在某处读到cased 模型只有在字母大小写有可能对任务有所帮助时才应该使用。在我的具体情况下:我正在处理德语文本。在德语中,所有名词都以大写字母开头。所以,我认为,(如果我错了,请纠正我)这是必须使用cased 模型的确切情况。 (在spacy 中也没有适用于德语的uncased 模型)。
但是在这种情况下必须如何处理数据?
我应该(在预处理训练数据时)保持原样(我的意思是不使用.lower() 函数)还是没有任何区别?
【问题讨论】:
标签:
python
spacy
bert-language-model
【解决方案1】:
作为非德语使用者,您对名词大写的评论确实使德语的大小写似乎比英语更相关,但这显然并不意味着大小写模型会提供更好的性能所有任务。
对于像词性检测这样的事情,案例可能会根据您描述的原因非常有用,但对于情绪分析这样的事情,拥有更大词汇量所增加的复杂性是否值得这些好处还不太清楚。 (作为人类,您可能会想像对所有小写文本进行情感分析一样容易。)
鉴于唯一可用的模型是带壳版本,我会选择它 - 我相信它仍然是您可以获得的最好的预训练德国模型之一。大小写模型具有不同大小写单词的单独词汇条目(例如,英语中的 the 和 The 将是不同的标记)。所以是的,在预处理过程中,您不想通过调用 .lower() 来删除该信息,只需保持原样。
【解决方案2】:
简单来说,BERT cased 不会小写以大写字母开头的单词,例如德语中的名词。
在口音扮演重要角色的情况下,BERT cased 很有帮助。
例如德语中的 schön
如果我们使用 BERT uncased 将 schön 转换为 schon,它将具有不同的含义。
schön 的意思是美丽,而 schon 的意思是已经
【解决方案3】:
“BERT cased”和“BERT uncased”之间的区别可以在不同的上下文中找到。例如,在对话系统中,用户很少将文本以正确的形式放置,因此通常会找到小写的单词。也许,在这种情况下,未封装的 BERT 具有优势。