TF-IDF 的文章分类系统
Category:
杂七杂八
前言
接上,一个聚合类的阅读软件当然少不了文章分类系统,模型之类的根本来不及看,来不及学,就采用了 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 存在
- 代码中的分类可调,相应的已分类的文章需要提供