机器学习与非英语单词上的朴素贝叶斯

时间:2015-12-05 15:45:33

标签: python nltk naivebayes textblob

我使用python的文本blob库,以及文本blob的Naive bayes分类器。我了解到它使用了nltk朴素贝叶斯分类器。这是一个问题:我输入的句子是非英语(土耳其语)。会有可能吗?我不知道它是如何工作的。但我尝试了10个训练数据,似乎有效。我想知道它是如何工作的,这个nltk的天真宝贝分类器,非英语数据。有什么缺点?

1 个答案:

答案 0 :(得分:4)

虽然受过英语培训的分类器不太可能适用于其他语言,但听起来您正在使用textblob为您的文本域训练分类器。没有什么可以排除使用其他语言的数据,所以真正的问题是你是否获得了可接受的性能。你应该做的第一件事是在几百个新的句子上测试你的分类器(而不是你训练它的那些!)。如果你感到高兴,这就是故事的结局。如果没有,请继续阅读。

任何分类器的成败都是选择要训练它的功能。 NLTK的分类器需要"特征提取"将句子转换为要素字典的函数。根据{{​​3}},textblob提供了一些"词袋"默认情况下的功能据推测,这是您正在使用的那个,但您可以轻松插入自己的功能。

这是语言特定资源的来源:许多分类器使用"停用词列表"丢弃像这样的常用词。显然,这个列表必须是特定于语言的。正如@JustinBarber在评论中所写,具有大量形态学的语言(如土耳其语)有更多的单词形式,这可能会限制基于单词的分类的有效性。如果你"干"你可能会看到改善。或者说出你的话;两个过程都将不同的变形词形式转换为通用形式。

走得更远,你没有说出你的分类器的用途,但你可以为一些文本属性编写自定义识别器,并将它们作为功能插入。例如,如果您正在进行情绪分析,某些语言(包括英语)具有表示高情绪的语法结构。

有关详情,请阅读its tutorial的几个章节,尤其是关于NLTK book的章节。