机器学习实战之朴素贝叶斯(四)示例:从个人广告中获取区域倾向

转载请注明作者和出处:https://blog.csdn.net/weixin_45814668
微信公众号:qiongjian0427
知乎:https://www.zhihu.com/people/qiongjian0427
Github代码获取:https://github.com/qiongjian/Machine-learning/
Python版本: Python3.x

流程

(1)收集数据:从RSS源收集内容,这里需要对RSS创建一个接口。
(2)准备数据:将文本文件解析成词条向量。
(3)分析数据:检查词条确保解析的正确性。
(4)训练算法:使用我们之间建立的trainNB0()函数。
(5)测试算法:观察错误率,确保分类器可用,可以修改切分程序,以降低错误率,提高分类结果。
(6)使用算法:构建一个完整的程序,封装所有内容,给定两个RSS源,该程序会显示最常用的公共词。

简易信息聚合(也叫聚合内容)是一种RSS基于XML标准,在互联网上被广泛采用的内容包装和投递协议。RSS(Really Simple Syndication)是一种描述和同步网站内容的格式,是使用最广泛的XML应用。RSS搭建了信息迅速传播的一个技术平台,使得每个人都成为潜在的信息提供者。

Craigslist是美国最火的。该网站上没有图片,只有密密麻麻的文字,标着各种生活信息,是个巨大无比的网上分类广告加BBS的组合。

这个例子是使用Craigslist上的广告,分别从美国的两个城市中选取一些人,通过分析这些人发布的征婚广告信息,来比较这两个城市的人们在广告用词上是否不同。

由于作者提供的RSS源链接不可访问了,这里改用其他的源。

收集数据:导入RSS源

安装feedparser

在网址后面加上?format=rss,就可以得到该网页的RSS文件了。

from numpy import *
import feedparser
import feedparser
ny = feedparser.parse('https://newyork.craigslist.org/d/rooms-shares/search/roo?format=rss')
print (len(ny['entries']))

在这里插入图片描述
25条。

接下来构建一个类似于spamTest()的函数对测试过程自动化。代码如下:

import random
from numpy import *
import feedparser
import re
import operator  
import numpy as np
def calcMostFreq(vocabList, fullText):
    import operator
    freqDict = {
   }
    for token in vocabList:
        freqDict[token] = fullText.count(token)
    sortedFreq = sorted(freqDict.items(), key=operator.itemgetter(1), reverse=True)
    return sortedFreq[:30]#返回排序最高的30词
def localWords(feed1,feed0):
    import feedparser
    docList=[]
    classList = []
    fullText = []
    minLen = min(len(feed1['entries']), len(feed0['entries'
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值