我有一个Logistic回归模型,当与英语数据集一起使用时,它工作得很好。但是,当我以不同的语言传递相同格式的数据集时,(语言是从右到左的乌尔都语,UTF-8编码的)模型无法预测。
我知道,对于乌尔都语、阿拉伯语和印地语,预处理是不同的,但即使是单独执行,模型也根本无法预测。
我想知道为什么同一模型不能直接在不同的语言上执行。好的或坏的结果是另一个话题。我如何建立一个可扩展到足以在英语和阿拉伯语上执行的模型?这样做的限制是什么?
发布于 2019-06-07 10:29:20
我们需要更多地了解你的模型是如何工作的。Logistic回归意味着模型使用乙状体函数将数字输入转换为数字输出。但你的输入不是数字,而是文字。
这意味着在进行Logistic回归之前,您已经在做一些事情来将文本转换为数字。所以你的问题有点让人困惑。
另外,您是否正在培训英语文本模型,并在单独的英语测试集上进行评估,然后再对阿拉伯语文本进行第二个模型的培训,并对阿拉伯语测试数据进行评估?如果你试着在一种语言上训练一个模型,然后在另一种语言上对它进行评估,它就行不通了。
你用的是哪个图书馆?NLTK?斯克洛?所有这些都有简单的文本分类器。
您可能使用的是一个单词包模型,其中每个单词都被赋予一个ID并转换成一个稀疏的向量,整个文档被转换成一个长的向量,其大小是您的词汇表的长度。您可能正在使用tf*国防军阶段,它对诸如"the“这样的单词进行加权,其权重比内容词的权重要低。
如果你改变语言,像这样的模型不一定会中断。然而,有几点你需要知道:
无论语言是RTL还是LTR,对分类器都没有影响,因为这只会影响浏览器或文字处理器在屏幕上显示文本的方式。在阿拉伯语文本文件中,字节与英文文本文件的顺序相同。
但是,任何模型体系结构都可以很好地与任何语言一起工作,前提是预处理能够正确地适应该语言。如果您使用基于字符的模型和神经网络,您甚至可以建立一个对任何语言都有效的模型,而不必担心是否要适应预处理,例如伯特有一个多语言预训练模型,可以直接在几乎任何语言上运行。然而,这些模型往往更大,需要一台强大的计算机,甚至是GPU。
如果您希望使用您提到的四种语言中的任何一种语言来处理文本,您可以培训四个单独的模型,并有一个语言标识组件,该组件首先识别语言并将输入传递给正确的模型。
发布于 2019-05-08 08:55:59
我不完全理解你对某些语言的逻辑回归任务的背景。但我会给你一个总体情况。
任何与语言相关的东西都必须考虑两件主要的事情--句法和语义。
这两件事因语言不同而完全不同。例如,如果你试着逐字翻译英语说法语,它可能看起来很好,但在语义上(语法意义)它可能看起来完全没有意义。
语言是一个“序列”,序列中的顺序非常重要。因此,不管模型试图在多维数据空间中学习哪种语言,即使预处理是正确的,使用一种语言也不能正确地映射到另一种语言。
https://datascience.stackexchange.com/questions/51585
复制相似问题