gpt4 book ai didi

python - 推特/ Facebook 评论分类为各种类别

转载 作者:太空狗 更新时间:2023-10-29 22:22:19 25 4
gpt4 key购买 nike

我有一些评论数据集,我想将其分为五类:-

jewelries, clothes, shoes, electronics, food & beverages

所以如果有人谈论 pig 肉,牛排,酒,苏打水,吃:它归类为 f&b

而如果有人谈论说 - 黄金,吊坠,小盒坠子等:它分为珠宝

我想知道,我应该在评论/推文中寻找哪些标签/ token ,以便将其分类为这些类别中的任何一个。最后使用哪个分类器。我只需要一些指导和建议,我会从那里接受。

请帮忙。谢谢

最佳答案

这个答案可能有点长,也许我抽象了一些东西,但这只是给你一个想法和一些建议。

有监督与无监督

正如其他人已经提到的,在机器学习领域有两条主要道路:受监管 无人监督 学习。正如您现在可能已经知道的那样,如果您的语料库(文档)被标记,则您在谈论监督学习。标签是类别,在这种情况下是 bool 值。
例如,如果文本与衣服和鞋子有关,则这些类别的标签应该是真实的。

由于文本可以与多个类别(多个标签)相关,因此我们正在研究多分类器。

用什么?

我认为数据集尚未标记,因为 twitter 不会为您进行分类。因此,您将做出重大决定。

  • 您手动标记数据,这意味着您尝试查看数据集中尽可能多的推文/fb 消息,对于每个消息,您考虑 5 个类别并通过 True/False 回答它们。
  • 您决定使用无监督学习算法,并希望您发现这 5 个类别。由于像聚类这样的方法只会尝试自己查找类别,并且默认情况下这些类别不必与您的 5 个预定义类别相匹配。

  • 我用过不少 监督学习 过去并且对这种类型的学习有很好的经验,因此我将继续解释这条道路。

    特征工程

    你必须想出你想要使用的功能。对于文本分类,一个好的方法是使用文档中每个可能的单词作为一个特征。 True 值表示该词是否存在于文档中,false 表示不存在。

    在此之前,您需要做一些 预处理 .这可以通过使用 NLTK 库提供的各种功能来完成。
  • 代币化 这会将您的文本分解为单词列表。您可以使用 this模块。
  • 停用词移除 这将从标记中删除常用词。词喜欢'a',the',... 你可以看看this .
  • 词干 词干提取会将单词转换为其词干形式。例如:单词“working”、“worked”、“works”将转换为“work”。看看this .

  • 现在,如果您已经对数据进行了预处理,则为文档中存在的每个单词生成一个特征集。存在用于此的自动方法和过滤器,但我不确定如何在 Python 中执行此操作。

    分类

    有多种分类器可用于此目的。我建议深入研究现有的分类器及其好处。您可以使用支持多分类的 nltk 分类器,但老实说我以前从未尝试过。过去我使用过逻辑回归和 SVM。

    培训与测试

    您将使用一部分数据进行训练,另一部分用于验证训练后的模型是否表现良好。我建议你使用 交叉验证 ,因为你会有一个小数据集(你必须手动标记数据,这很麻烦)。交叉验证的好处是您不必将数据集拆分为训练集和测试集。相反,它将运行多轮并迭代数据以获取部分训练数据和部分测试数据。导致所有数据在您的训练数据中至少使用一次。

    预测

    一旦您的模型建立起来并且对“测试数据”的预测结果是合理的。您可以在野外使用您的模型来预测新的 Facebook 消息/推文的类别。

    工具

    NLTK 库非常适合预处理和自然语言处理,但我以前从未将其用于分类。我听说过很多关于 scikit 的好消息 python library .但老实说,我更喜欢使用 Weka ,这是一个用java编写的数据挖掘工具,提供了一个很棒的用户界面,可以大大加快你的任务!

    换个角度:话题建模

    在您的问题中,您声明要将数据集分为五个类别。我想向您展示主题建模的想法。如果您真的只针对这些类别,它可能在您的场景中没有用(这就是为什么我在答案的末尾留下这部分)。但是,如果您的目标是将推文/fb 消息分类为非预定义的类别,则主题建模是可行的方法。

    主题建模是一个 无人监督 学习方法,您可以提前决定要“发现”的主题(类别)的数量。这个数字可能很高(例如 40)现在很酷的事情是该算法将找到 40 个主题,其中包含与某些内容相关的单词。它还将为每个文档输出一个分布,指示该文档与哪些主题相关。通过这种方式,您可以发现比 5 个预定义类别更多的类别。

    现在我不会更深入地研究这个,但如果你想了解更多信息,只需谷歌一下。另外你可以考虑使用 MALLET这是一个很好的主题建模工具。

    关于python - 推特/ Facebook 评论分类为各种类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26213496/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com