我正在使用多语言数据集解决文本分类问题。我想知道语言在我的数据集中的分布方式以及这些语言是什么。语言的数量可能约为8-12。我正在考虑将这种语言检测作为预处理的一部分。我想弄清楚这些语言,以便能够使用适当的停用词,并查看某些给定语言中的较少数据会如何影响分类的发生。
langid.py或简单的langdetect是否合适?或其他建议?
谢谢
识别文本语言的最简单方法是,列出每种语言的常用语法单词(实际上是您的停用词),对文本进行抽样并计算您的语言中出现了哪些单词(特定的单词列表。然后将它们总结起来,重叠最大的单词列表应该是文本的语言。
如果您想更高级,可以使用n-gram代替单词:从您知道语言的文本中收集n-grams,并将其用作分类符,而不是您的停用词。
您可以使用经过多种语言训练的任何基于变压器的模型。例如,您可以使用XLM-Roberta,它是使用100种不同语言训练的多语言模型。与某些XLM多语言模型不同,它不需要lang张量就能了解所使用的语言(这对您来说是个好习惯),并且应该能够从输入id中确定正确的语言。除了像任何其他基于变压器的模型一样,它还带有其标记程序,因此您可以跳过预处理部分。
您可以使用Huggingface库来使用任何这些模型。
检查XLM Roberta Huggingface文档here