Python 我应该如何使用TF-IDF对我收集的数据进行文本分类?

Python 我应该如何使用TF-IDF对我收集的数据进行文本分类?,python,machine-learning,text-classification,tf-idf,Python,Machine Learning,Text Classification,Tf Idf,我正在做一个个人项目来建立一个文本分类器。我从8个类别中搜集了大约3000篇新闻文章。我在每一篇文章中都有每一个单词,并且在一个数据框中有文章的分类标签 我在网上看到的答案是指在整个文章/文本块上使用tfidf。有没有办法分析单个单词 以下是我的数据当前的大致情况: Word: Category: Mobile Science/tech Phone Science/tech Google Science/tech Facebook Scienc

我正在做一个个人项目来建立一个文本分类器。我从8个类别中搜集了大约3000篇新闻文章。我在每一篇文章中都有每一个单词,并且在一个数据框中有文章的分类标签

我在网上看到的答案是指在整个文章/文本块上使用tfidf。有没有办法分析单个单词

以下是我的数据当前的大致情况:

Word:       Category:

Mobile      Science/tech
Phone       Science/tech
Google      Science/tech
Facebook    Science/tech
Implant     Science/tech
Interest    Business/economy
Bank        Business/economy
IMF         Business/economy
Downturn    Business/economy
President   Politics
Donald      Politics
Trump       Politics
etc...        etc...

我为糟糕的格式道歉;我对此有些陌生。

用tf-idf无法分析单个单词,如果你问这个问题,我相信tf-idf在你的脑海中是不清楚的

我会尽量弄清楚tf idf

TF-IDF是一种计算文本中某些单词相对于语料库(文本集)的“分数”或“权重”的方法。这将赋予单词在文本中的重要性。因此,对于每个出现给定单词的文本,您将得到一个分数

TF-IDF的第一部分是TF:

  • 词频计算的TF使一个单词的分数增加,文本中使用的单词越多,TF越大
第二部分是IDF:

  • IDF表示反向文档频率,这是另一个系数,该系数应随着在整个语料库中重复出现一个术语的次数而减小
通过将这两个系数相乘,您将得到文本中单词相对于语料库的“重要性”


举个例子,如果单词“Mobile”出现在两个文本中,一个是关于商业(比如手机销售)的,另一个是关于科技的,那么语料库中就会有两个“Mobile”的分数,当你在一篇未知文章中遇到这个词时,你可以将未知文章中的不同分数相加,你就可以说,相当准确地说,这篇未知的文章在谈论什么

用tf-idf无法分析单个单词,如果你问这个问题,我相信tf-idf在你的脑海中是不清楚的

我会尽量弄清楚tf idf

TF-IDF是一种计算文本中某些单词相对于语料库(文本集)的“分数”或“权重”的方法。这将赋予单词在文本中的重要性。因此,对于每个出现给定单词的文本,您将得到一个分数

TF-IDF的第一部分是TF:

  • 词频计算的TF使一个单词的分数增加,文本中使用的单词越多,TF越大
第二部分是IDF:

  • IDF表示反向文档频率,这是另一个系数,该系数应随着在整个语料库中重复出现一个术语的次数而减小
通过将这两个系数相乘,您将得到文本中单词相对于语料库的“重要性”


举个例子,如果单词“Mobile”出现在两个文本中,一个是关于商业(比如手机销售)的,另一个是关于科技的,那么语料库中就会有两个“Mobile”的分数,当你在一篇未知文章中遇到这个词时,你可以将未知文章中的不同分数相加,你就可以说,相当准确地说,这篇未知的文章在谈论什么

由于
TFIDF
用于查找表示文档/文章的最佳关键字,因此在单个单词上使用
TFIDF
没有任何意义。
TFIDF
通过查看单词在文档中的频率以及包含这些单词的文档的反向频率来计算单词的分数

在您的情况下,单个单词被视为文档,并且由于文档中没有该单词的任何频率,因此它将获得较高的TFIDF分数,从而导致
过拟合
模型。过度拟合是因为你的模型在预测类别的词语上不够灵活

所以这里最好的解决方案是在整篇文章中使用TFIDF


如果您真的想使用单个单词进行分类。你可以做以下事情

  • 计算每个单词的单词嵌入向量并设置为X
  • 一个热编码类别并设置为Y
  • 用准备好的数据训练并测试Logistic回归/KNN/SVM
  • 选择具有最佳精度的模型

  • 这不是一个最好的解决方案,但甚至可能不会产生好的结果。但是试试看结果,调整特征生成或引入新的特征生成。它将帮助您了解机器学习的各个方面。

    因为
    TFIDF
    用于查找表示文档/文章的最佳关键字,在单个单词上使用
    TFIDF
    没有任何意义。
    TFIDF
    通过查看单词在文档中的频率以及包含这些单词的文档的反向频率来计算单词的分数

    在您的情况下,单个单词被视为文档,并且由于文档中没有该单词的任何频率,因此它将获得较高的TFIDF分数,从而导致
    过拟合
    模型。过度拟合是因为你的模型在预测类别的词语上不够灵活

    所以这里最好的解决方案是在整篇文章中使用TFIDF


    如果您真的想使用单个单词进行分类。你可以做以下事情

  • 计算每个单词的单词嵌入向量并设置为X
  • 一个热编码类别并设置为Y
  • 用准备好的数据训练并测试Logistic回归/KNN/SVM
  • 选择具有最佳精度的模型

  • 这不是一个最好的解决方案,但甚至可能不会产生好的结果。但是试试看结果,调整特征生成或引入新的特征生成。它将帮助您了解机器学习的各个方面。

    TF-IDF在您的案例中会比较每篇文章(文档)中单词(术语)的频率。此处显示的当前数据可能没有用处,除非