RSS源介绍:https://zhidao.baidu.com/question/2051890587299176627.html

http://www.rssboard.org/rss-profile

这个老铁讲的好:https://www.cnblogs.com/MrLJC/p/3731213.html

多个entry就是entries,所以我通过

这样的方式来枚举每一条RSS源,

枚举后,

书中这样子便是先把总结弄出来

便是这样

wordList中便是这样的

通过下面的函数选出使用频率最高的30个词汇:

def calMostFreq(vocabList,fulltext):  #返回使用频率最高的30个词
freqDict = {} #dict
for token in vocabList:
freqDict[token] = fulltext.count(token)
sortedFreq = sorted(freqDict.items(),key=operator.itemgetter(1),reverse=True) #按第二关键字(索引从0开始)
return sortedFreq[:30]

这是剔除了这30个词汇后,词汇表中的词

这词一看就很个性,”cosplay“……

关于sorted(key=lambda),这位小哥写的和细,https://www.cnblogs.com/zle1992/p/6271105.html

全部代码:

from bayes import *
import operator
import feedparser
def calMostFreq(vocabList,fulltext): #返回使用频率最高的30个词
freqDict = {} #dict
for token in vocabList:
freqDict[token] = fulltext.count(token)
sortedFreq = sorted(freqDict.items(),key=operator.itemgetter(1),reverse=True) #按第二关键字(索引从0开始)
return sortedFreq[:30] def localWords(feed1,feed0):
docList = [];classList = [];fulltext = []
minLen = min(len(feed1['entries']),len(feed0['entries']))
# print("adsas")
# print(len(feed1['entries']))
# print(len(feed0['entries']))
#for i in range(minLen):
for i in range(minLen):
# print(feed1['entries'][i])
# print("\n")
wordList = textParse(feed1['entries'][i]['summary'])
#print(wordList)
docList.append(wordList) #没合
fulltext.extend(wordList) #合了
classList.append(1) #类别属性
wordList = textParse(feed0['entries'][i]['summary'])
#print(wordList)
docList.append(wordList) #没合
fulltext.extend(wordList) #合了
classList.append(0) #类别属性
vocabList = createVocabList(docList) #创建不重复词的集合
top30words = calMostFreq(vocabList,fulltext)
#print(top30words)
#print(vocabList)
for mp in top30words:
if mp[0] in vocabList:
vocabList.remove(mp[0])
#下面再用交叉验证的方式,来筛选训练集和测试集
trainingSet = list(range(minLen*2)) #总过的summary个数
print(trainingSet)
testSet = []
for i in range(20):
randIndex = int(random.uniform(0,len(trainingSet)))
testSet.append(randIndex) #保留索引
del(trainingSet[randIndex])
trainMat = [];trainClasses = []
for docIndex in trainingSet: #训练
trainMat.append(bagOfWordsVec(vocabList,docList[docIndex]))
trainClasses.append(classList[docIndex])
p0V,p1V,pSpam = trainNB0(array(trainMat),array(trainClasses))
numOError = 0
for docIndex in testSet:
wordVector = bagOfWordsVec(vocabList,docList[docIndex])
if classifyNB(array(wordVector),p0V,p1V,pSpam)!=classList[docIndex]:
numOError += 1
print("the error text %s" % docList[docIndex])
print("error rate: %f " % (float(numOError)/len(testSet)))
return vocabList,p0V,p1V
def getTopWords(ny,sf):
vocabList,p0V,p1V = localWords(ny,sf)
topNY = [];topSF = []
for i in range(len(p0V)):
if p0V[i] > -6.0: topSF.append((vocabList[i],p0V[i])) #概率大约是0.247%
if p1V[i] > -6.0: topNY.append((vocabList[i],p1V[i]))
sortedSF = sorted(topSF,key=lambda pair:pair[1],reverse = True) #按照第二个参数排序
print("SF*SF*SF*SF*SF*SF")
for item in sortedSF:
print(item)
sortedNY = sorted(topNY,key=lambda pair:pair[1],reverse = True) #按照第二个参数排序
print("NY*NY*NY*NY*NY")
for item in sortedNY:
print(item)
def main():
print(log(e))
ny = feedparser.parse('http://newyork.craigslist.org/stp/index.rss')
sf = feedparser.parse('http://sfbay.craigslist.org/stp/index.rss')
getTopWords(ny,sf)
main()

使用Naive Bayes从个人广告中获取区域倾向的更多相关文章

  1. 【Machine Learning in Action --4】朴素贝叶斯从个人广告中获取区域倾向

    背景:广告商往往想知道关于一个人的一些特定人口统计信息,以便能更好地定向推销广告. 我们将分别从美国的两个城市中选取一些人,通过分析这些人发布的信息,来比较这两个城市的人们在广告用词上是否不同.如果结 ...

  2. 【机器学习实战】第4章 朴素贝叶斯(Naive Bayes)

    第4章 基于概率论的分类方法:朴素贝叶斯 朴素贝叶斯 概述 贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类.本章首先介绍贝叶斯分类算法的基础——贝叶斯定理.最后,我们 ...

  3. 机器学习算法 --- Naive Bayes classifier

    一.引言 在开始算法介绍之前,让我们先来思考一个问题,假设今天你准备出去登山,但起床后发现今天早晨的天气是多云,那么你今天是否应该选择出去呢? 你有最近这一个月的天气情况数据如下,请做出判断. 这个月 ...

  4. [机器学习] 分类 --- Naive Bayes(朴素贝叶斯)

    Naive Bayes-朴素贝叶斯 Bayes' theorem(贝叶斯法则) 在概率论和统计学中,Bayes' theorem(贝叶斯法则)根据事件的先验知识描述事件的概率.贝叶斯法则表达式如下所示 ...

  5. 【十大算法实现之naive bayes】朴素贝叶斯算法之文本分类算法的理解与实现

    关于bayes的基础知识,请参考: 基于朴素贝叶斯分类器的文本聚类算法 (上) http://www.cnblogs.com/phinecos/archive/2008/10/21/1315948.h ...

  6. 基于Naive Bayes算法的文本分类

    理论 什么是朴素贝叶斯算法? 朴素贝叶斯分类器是一种基于贝叶斯定理的弱分类器,所有朴素贝叶斯分类器都假定样本每个特征与其他特征都不相关.举个例子,如果一种水果其具有红,圆,直径大概3英寸等特征,该水果 ...

  7. Python机器学习算法 — 朴素贝叶斯算法(Naive Bayes)

    朴素贝叶斯算法 -- 简介 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法.最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Baye ...

  8. 《数据挖掘导论》实验课——实验四、数据挖掘之KNN,Naive Bayes

    实验四.数据挖掘之KNN,Naive Bayes 一.实验目的 1. 掌握KNN的原理 2. 掌握Naive Bayes的原理 3. 学会利用KNN与Navie Bayes解决分类问题 二.实验工具 ...

  9. 机器学习---用python实现朴素贝叶斯算法(Machine Learning Naive Bayes Algorithm Application)

    在<机器学习---朴素贝叶斯分类器(Machine Learning Naive Bayes Classifier)>一文中,我们介绍了朴素贝叶斯分类器的原理.现在,让我们来实践一下. 在 ...

随机推荐

  1. 如何用纯 CSS 创作一个方块旋转动画

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/gjgyWm 可交互视频 ...

  2. thinkcmf5更新模板代码分析,解决模板配置json出错导致数据库保存的配置项内容丢失问题

    private function updateThemeFiles($theme, $suffix = 'html') { $dir = 'themes/' . $theme; $themeDir = ...

  3. 【python学习】新手基础程序练习(一)

    首先得先编一下程序员必须编的程序——Hello World……(这应该是程序员情结...) #coding=utf-8 #Version:python3.7.0 #Tools:Pycharm 2017 ...

  4. python里字典的用法介绍

    一.什么是字典 字典是python里的一种数据类型,特点是元素的无序性,和键key的唯一性.字典的创建方法是{key:values},字典里的键key只能是不可变的数据类型(整型,字符串或者是元组), ...

  5. org.apache.catalina.webresources.Cache.backgroundProcess The background cache eviction process was unable to free [10] percent of the cache for Context [/filestore] - consider increasing the maximum s

    需要耐心啊,太急于求成,希望直接就得到解决方法了...以至于正确方法都已经出现了,我却没有耐心看下去,所以反而又耽误了不少时间.... 项目加载100+张图片,还有一个小的MP4,所以console警 ...

  6. hierarchy viewer不能获取userbuild手机版本的UI布局

    步骤很详细:http://maider.blog.sohu.com/255485243.html 其中的第7步命令需要更改为: java -jar smali-2.0.3.jar ./out -o c ...

  7. [转载]C语言头文件的作用

    最近在工作当中遇到了一点小问题,关于C语言头文件的应用问题,主要还是关于全局变量的定义和声明问题.学 习C语言已经有好几年了,工作使用也近半年了,但是对于这部分的东西的确还没有深入的思考过.概念上还是 ...

  8. django_orm操作

    查询操作和性能优化 1.基本操作 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23   增   models.Tb1.object ...

  9. Django--------问题:在terminal命令行创建超级用户时入到password时输入为什么没有反应?

    首先如果遇到这样的问题不用担心,一般一会儿就可以解决: 其实,输入的时候并不是没有反应,只是你输入的时候命令行没有将你的输入显示出来,关键是输入行对Password:********也不是采用这种方式 ...

  10. [python][oldboy][dict] 遍历字典

    # coding=utf8 dict_info = {"abc": 1, 1: "liuzhipeng"} for k, v in dict_info.item ...