TF-IDF 的文章分类系统

前言

接上,一个聚合类的阅读软件当然少不了文章分类系统,模型之类的根本来不及看,来不及学,就采用了 TF-IDF 算法来写,自己构建词库,自己算,准确率还算比较高的,对于我们这个小项目来说够用了反正

原理

  • 将已分类的文章做分词,保留 TF-IDF 算法前五的名词
  • 将每篇文章的五个名词去重合成一个大的集合作为词库
  • 根据字典生成每篇文章的单独向量
  • 将所有相同类别的文章向量相加求平均得到文章类别的平均向量
  • 将未分类的文章做分词,保留前 20 的名词做向量
  • 与所有文章类别的平均向量做比对,保留匹配度最高的三个

文章分类系统

参考文章:

【python】爬虫篇:通过文章内容使用 TF-IDF 算法对文章进行分类(五)

【python】爬虫篇:最后一篇之 TF-IDF 分类代码篇(六)

项目地址:

本项目已在 Github 上开源:Github 地址

文件

Dictionnary_Builder.py

构建词库和各类文章的平均向量

Post_Classify.py

将未分类的文章和各类文章的平均向量进行比对

数据库表

article

未分类的文章

  • id int 非空 键
  • category varchar 可空
  • content longtext 非空

article_category_data

已分类的文章

  • id int 非空 键
  • category varchar 非空
  • content longtext 非空
  • weight longtext 可空

article_category_weight

各类文章的平均向量

  • id int 非空 键
  • category varchar 非空
  • category_weight longtext 非空

article_dictionary

词库

  • id int 非空 键
  • dictionary longtext 非空

Tips

  • 由于大部分代码和 id 绑定在一起,如果原数据库表有数据可能会有 bug 存在
  • 代码中的分类可调,相应的已分类的文章需要提供