我想构建一个语言模型,用于预测句子中下一个词,根据前面的词和/或前面的句子进行预测。
用例:我想自动化撰写报告。因此,模型应该能自动完成我正在写的句子。所以,名词和句子开头的词的大写是非常重要的。
数据:数据是德语的,并且包含大量的技术术语。
我的文本语料库是德语的,目前正在进行预处理。因为我的模型需要预测语法正确的句子,我决定使用/不使用以下预处理步骤:
- 不删除停用词
-
不进行词形还原
-
将所有包含数字的表达式替换为NUMBER
- 标准化同义词和缩写
- 将罕见词替换为RARE
然而,我不确定是否应该将语料库转换为小写。在网上搜索时,我发现了不同的观点。虽然将文本转换为小写是很常见的做法,但这会导致我的模型错误预测名词、句子开头等的大写情况。
我还发现了一个建议,即只将句子开头的词转换为小写,这个建议在斯坦福大学的网页上提到过。
对于这种用例,最佳策略是什么?我应该将文本转换为小写,然后在预测后将词转换为正确的字母大小写吗?我应该保持原来的大小写吗?我应该只将句子开头的词转换为小写吗?
非常感谢任何建议和经验分享!
回答:
我认为对于你的特定用例来说,最好将其转换为小写,因为最终,你需要根据特定上下文来预测词。在你的用例中,你可能不需要预测句子的开头。此外,如果预测到一个名词,你可以稍后将其大写。然而,考虑一下相反的情况。(假设你的语料库是英语的)你的模型可能会将句子开头带有大写字母的词与句子中后续出现的没有大写字母的同一个词区别对待。这可能会导致准确率下降。相比之下,我认为将词转换为小写是一个更好的权衡。我做过一个问答系统的项目,将文本转换为小写是一个不错的权衡。
编辑:由于你的语料库是德语的,最好保留大写,因为这是德语的一个重要方面。
如果有帮助的话,Spacey支持德语。你可以使用它来训练你的模型。