【问题标题】:Machine learning with naive bayes on non english words机器学习与非英语单词的朴素贝叶斯
【发布时间】:2016-03-10 12:12:34
【问题描述】:

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

【问题讨论】:

  • 分类器对大多数非英语数据的工作方式应该相同。当然,这种分类算法的效果部分取决于语言(除其他外)。例如,语言是否高度屈折?你能准确地标记语言吗? (某些语言,例如那些缺少空格的语言,是出了名的难以标记化。)
  • 土耳其语形态丰富,但使用拉丁字母,用空格分隔单词。

标签: python nltk naivebayes textblob


【解决方案1】:

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

任何分类器的成败在于选择用于训练它的特征。 NLTK 的分类器需要“特征提取”功能,将句子转换为特征字典。根据its tutorial的说法,textblob默认提供了某种“词袋”功能。大概就是你正在使用的那个,但是你可以很容易地插入你自己的特性函数。

这就是特定语言资源的用武之地:许多分类器使用“停用词列表”来丢弃常见的词,如 andthe。 显然,这个列表必须是特定语言。正如@JustinBarber 在评论中所写,具有大量形态的语言(如土耳其语)有更多的词形,这可能会限制基于词的分类的有效性。如果你“词干”或将你的词词还原,你可能会看到改进;这两个程序都将不同的屈折词形式转换为共同的形式。

更进一步,您没有说明分类器的用途,但您可以为某些文本属性编写自定义识别器,并将它们作为特征插入。例如,如果你在做情绪分析,一些语言(包括英语)的语法结构表明情绪高涨。

更多信息,请阅读NLTK book的几章,尤其是classification的章节。

【讨论】:

    猜你喜欢
    • 2016-05-01
    • 2016-12-11
    • 2021-01-13
    • 2016-06-10
    • 2012-04-28
    • 2019-03-01
    • 2016-11-09
    • 2015-10-28
    • 2011-12-27
    相关资源
    最近更新 更多