基于朴素贝叶斯的关于互联网金融新闻分类(python实现)

        中国互联网金融发展迅速,2014年是中国互联网金融起步的一年,但在短短的一年时间内,互联网金融创业者们融资额度一再创高,雨后春笋般涌现出各类互联网金融产品让用户眼花缭乱,随着创业门槛的降低,在即将到来的2015年,互联网金融必将在中国掀起热潮。

        在当下互联网金融持续升温的今天,作为一个毫无金融背景的工科生,也希望能够搭上互联网金融这趟快速列车,跑在同龄人的前面。在一份偶然的实习机会中,有幸接触了这一领域,也把自己的一部分收获与大家分享,使用朴素贝叶斯算法对互联网金融的新闻进行分类。

        分类属于监督学习,进行分类前需要有固定分类的训练集,那么第一步就是对互联网金融新闻划分类别。从传统金融意义上来讲,对新闻可划分为:银行、证券以及保险。此三类作为传统金融的三大领域。接下来就是划分互联网金融的类别,互联网金融的三大热门形式是网贷、众筹和支付。根据金融常出现的另外三个词:投资、理财以及虚拟货币中的比特币,再分出三类。所以训练集中的新闻总共分为9类:银行、证券、保险、网贷、众筹、支付、投资、理财、比特币。

        训练集数据的获取自然是通过爬虫从网站中爬取新闻正文,然后提取关键词进行判断,关键词提取可以采用tf-idf算法进行提取,找到所爬正文中属于我们要找的9类的文章,然后为这些文章建立向量,在这里向量的构建并没有采取针对整篇文章的词语建立的方式,而是针对提取的20个关键字来建立向量(这里涉及到朴素贝叶斯算法的一些背景知识,在这里不做过多赘述,参考文章前可以了解一下相关背景知识),既能够基本反映出文章内容,又起到降维的作用。训练集数据收集完成之后,就是具体使用朴素贝叶斯算法实现的过程。直接贴出代码以供参考:

'''

    @author: lecheng
    2014/11/15
        
'''
import os 
import sys
from numpy import *
from data import get_content
from slicewords import extract_keywords
import db

#保险 0
#比特币 1
#理财 2
#投资 3
#网贷 4
#银行 5
#证券 6
#支付 7
#众筹 8

def get_data_by_type(type):
    
    '''从数据库中获取某类型的新闻关键字列表'''
    table = db.db['m0_content']#m0_content是存训练集数据的mongo数据库
    word_lists = []
    contents = table.find({'type':type})
    for content in contents:
        keywords = extract_keywords(content.get('content'))
        word_lists += [keywords]
    return word_lists

def load_data():
    
    '''数据初始化'''
    dataset = [[],[]]
    word_list = get_data_by_type("保险")
    for i in word_list:
        dataset[0] += [i]
        dataset[1] += [0]
    print('load baoxin success')
    word_list = get_data_by_type("比特币")
    for i in word_list:
        dataset[0] += [i]
        dataset[1] += [1]
    print('load bitebi success')
    word_list = get_data_by_type("理财")
    for i in word_list:
        dataset[0] += [i]
        datas
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值