gpt4 book ai didi

python - 使用 NLTK 生成字典以将推文分类为预定义的类别

转载 作者:行者123 更新时间:2023-12-03 16:56:52 25 4
gpt4 key购买 nike

我有一个 Twitter 用户列表 (screen_names),我需要根据他们的兴趣将他们分为 7 个预定义的类别 - 教育、艺术、体育、商业、政治、汽车、技术。
我在 Python 中提取了用户的最后 100 条推文,并在清理推文后为每个用户创建了一个语料库。

正如这里提到的 Tweet classification into multiple categories on (Unsupervised data/tweets) :
我正在尝试生成每个类别下的常用词词典,以便我可以将其用于分类。

有没有一种方法可以自动为一组自定义单词生成这些词典?

然后我可以使用这些来使用 tf-idf 分类器对推特数据进行分类,并获得推文与每个类别的对应程度。最高值将为我们提供最可能的推文类别。

但是由于分类是基于这些预先生成的字典,我正在寻找一种方法来为自定义类别列表自动生成它们。

示例词典:

Education - ['book','teacher','student'....]

Automobiles - ['car','auto','expo',....]

示例输入/输出:
**Input :** 
UserA - "students visited share learning experience eye opening
article important preserve linaugural workshop students teachers
others know coding like know alphabets vision driving codeindia office
initiative get students tagging wrong people apologies apologies real
people work..."
.
.
UserN - <another corpus of cleaned tweets>


**Expected output** :
UserA - Education (61%)
UserN - Automobiles (43%)

最佳答案

TL; 博士

标签是监督机器学习所必需的。如果您没有包含 Xs(输入文本)和 Y(输出标签)的训练数据,那么 (i) 监督学习可能不是您想要的,或者 (ii) 您必须创建一个包含文本和它们对应的标签。

在龙

让我们试着把它分解,看看反射(reflect)你在寻找什么。

I have a list twitter users (screen_names) and I need to categorise them into 7 pre-defined categories - Education, Art, Sports, Business, Politics, Automobiles, Technology



因此,您的最终任务是将推文标记为 7 类。

I have extracted last 100 tweets of the users in Python and created a corpus for each user after cleaning the tweets.



如果你想从头开始训练一个有监督的机器学习模型,100 个数据点绝对不足以做任何事情。

另一件事是 corpus的定义.语料库是文本的主体,因此将任何字符串列表称为语料库都没有错。然而, 要进行任何有监督的训练,每个文本都应带有相应的标签

但是我看到有些人在没有任何标签的情况下进行无监督分类!

现在,这是矛盾的 =)

Unsupervised Classification



是的,有“ 无监督学习”,这通常意味着学习输入的表示,通常输入的表示用于(i)生成或(ii)样本。

从表示生成 意味着从表示中创建一个数据点,该数据点类似于无监督模型从中学习的数据。在文本处理/NLP 的情况下,这通常意味着从头开始生成新句子,例如 https://transformer.huggingface.co/

采样表示 意味着给无监督模型一个文本,并且该模型有望提供一些无监督模型从中学习的信号。例如。给定一个语言模型和一个新句子,我们想估计这个句子的概率,然后我们用这个概率来比较不同句子的概率。

Algorithmia 有一个很好的总结博客 https://algorithmia.com/blog/introduction-to-unsupervised-learning和更现代的视角 https://sites.google.com/view/berkeley-cs294-158-sp20/home

这是一大堆信息,但您没有告诉我如何#$%^&-ing 进行无监督分类!

是的,矛盾的解释还没有结束。如果我们看一下文本分类,我们到底在做什么?

我们正在将输入文本拟合到一些预定义的类别中。在您的情况下,标签是预定义的,但

问: 信号究竟来自哪里?

A:当然,从推文中,不要分散我的注意力!告诉我怎么分类!!!

问: 你如何告诉模型推文应该是这个标签而不是另一个标签?

A:来自无监督学习,对吧?这不是无监督学习应该做的吗?要将输入文本映射到输出标签?

确切地说,这就是矛盾,

Supervised learning maps the input texts to output labels not unsupervised learning



那我该怎么办?我需要使用无监督学习,我想做分类。

那么问题来了:
  • 你有标签数据吗?
  • 如果没有,那么如何获得标签?
  • 使用代理,找到告诉你某条推文是某个标签的信号,例如从主题标签或做出一些假设,即有些人总是在某个类别上发推文
  • 使用现有的推文分类器来标记您的数据,然后在数据上训练分类模型
  • 我需要为这些分类器付费吗?大多数情况下,是的,你这样做。 https://english.api.rakuten.net/search/text%20classification
  • 如果是,那么多少钱?
  • 如果太少,
  • 那么如何创造更多呢?也许 https://machinelearningmastery.com/a-gentle-introduction-to-the-bootstrap-method/
  • 或者使用一些现代的训练后算法 https://towardsdatascience.com/https-medium-com-chaturangarajapakshe-text-classification-with-transformer-models-d370944b50ca

  • 我一直听说的所有这些人工智能怎么样,我可以用 3 行代码进行分类。

    他们不使用听起来像芝麻街字符的无监督语言模型,例如埃尔莫、伯特、厄尼?

    我猜你的意思是类似 https://github.com/ThilinaRajapakse/simpletransformers#text-classification
    from simpletransformers.classification import ClassificationModel
    import pandas as pd


    # Train and Evaluation data needs to be in a Pandas Dataframe of two columns. The first column is the text with type str, and the second column is the label with type int.
    train_data = [['Example sentence belonging to class 1', 1], ['Example sentence belonging to class 0', 0]]
    train_df = pd.DataFrame(train_data)

    eval_data = [['Example eval sentence belonging to class 1', 1], ['Example eval sentence belonging to class 0', 0]]
    eval_df = pd.DataFrame(eval_data)

    # Create a ClassificationModel
    model = ClassificationModel('bert', 'bert-base') # You can set class weights by using the optional weight argument

    # Train the model
    model.train_model(train_df)

    请注意以下评论:

    Train and Evaluation data needs to be in a Pandas Dataframe of two columns. The first column is the text with type str, and the second column is the label with type int.



    是的,这是更现代的方法:
  • 首先使用预训练的语言模型将您的文本转换为输入表示
  • 然后输入输入表示和 它们对应的标签 到分类器

  • 请注意,您仍然无法避免需要标签来训练监督分类器的事实

    等一下,你的意思是我一直听到的所有这些 AI 都不是“无监督分类”。

    热那亚。真的没有“无监督分类”这样的东西(还),不知何故(i)标签需要手动定义,(ii)输入到标签之间的映射应该存在

    定义范式的正确词是 迁移学习 , 语言在哪里
  • 以自我监督的方式学习(实际上并不是真正的无监督),以便模型学习将任何文本转换为某种数字表示
  • 然后使用带有标记数据的数字表示来生成分类器。
  • 关于python - 使用 NLTK 生成字典以将推文分类为预定义的类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60359628/

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