NLP – 在预处理过程中何时将文本转换为小写

我想构建一个语言模型,用于预测句子中下一个词,根据前面的词和/或前面的句子进行预测。

用例:我想自动化撰写报告。因此,模型应该能自动完成我正在写的句子。所以,名词和句子开头的词的大写是非常重要的。

数据:数据是德语的,并且包含大量的技术术语。

我的文本语料库是德语的,目前正在进行预处理。因为我的模型需要预测语法正确的句子,我决定使用/不使用以下预处理步骤:

  • 不删除停用词
  • 不进行词形还原

  • 将所有包含数字的表达式替换为NUMBER

  • 标准化同义词和缩写
  • 将罕见词替换为RARE

然而,我不确定是否应该将语料库转换为小写。在网上搜索时,我发现了不同的观点。虽然将文本转换为小写是很常见的做法,但这会导致我的模型错误预测名词、句子开头等的大写情况。

我还发现了一个建议,即只将句子开头的词转换为小写,这个建议在斯坦福大学的网页上提到过。

对于这种用例,最佳策略是什么?我应该将文本转换为小写,然后在预测后将词转换为正确的字母大小写吗?我应该保持原来的大小写吗?我应该只将句子开头的词转换为小写吗?

非常感谢任何建议和经验分享!


回答:

我认为对于你的特定用例来说,最好将其转换为小写,因为最终,你需要根据特定上下文来预测词。在你的用例中,你可能不需要预测句子的开头。此外,如果预测到一个名词,你可以稍后将其大写。然而,考虑一下相反的情况。(假设你的语料库是英语的)你的模型可能会将句子开头带有大写字母的词与句子中后续出现的没有大写字母的同一个词区别对待。这可能会导致准确率下降。相比之下,我认为将词转换为小写是一个更好的权衡。我做过一个问答系统的项目,将文本转换为小写是一个不错的权衡。

编辑:由于你的语料库是德语的,最好保留大写,因为这是德语的一个重要方面。

如果有帮助的话,Spacey支持德语。你可以使用它来训练你的模型。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注