- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Python爬取十篇新闻统计TF-IDF由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
统计十篇新闻TF-IDF 。
统计TF-IDF词频,每篇文章的 top10 的高频词存储为 json 文件 。
TF-IDF 。
TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与文本挖掘的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF-IDF加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。除了TF-IDF以外,互联网上的搜索引擎还会使用基于连结分析的评级方法,以确定文件在搜寻结果中出现的顺序。 假如一篇文件的总词语数是100个,而词语“母牛”出现了3次,那么“母牛”一词在该文件中的词频就是3/100=0.03。一个计算文件频率(DF)的方法是测定有多少份文件出现过“母牛”一词,然后除以文件集里包含的文件总数。所以,如果“母牛”一词在1,000份文件出现过,而文件总数是10,000,000份的话,其逆向文件频率就是log(10,000,000 / 1,000)=4。最后的TF-IDF的分数为0.03 * 4=0.12。 —— [ 维基百科 ] 。
博主选择的是chinadaily的十篇新闻. 。
1.使用http request请求 2.使用Beautiful Soup来抓取文章标题和内容 3.统计TF-IDF 4.保存到json文件中 。
代码块 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
@requires_authorization
#coding=utf-8
import
requests
import
bs4
import
sys
import
math
import
json
reload
(sys)
sys.setdefaultencoding(
'utf-8'
)
url_list
=
[
'http://www.chinadaily.com.cn/china/2016-04/20/content_24701635.htm'
,
'http://www.chinadaily.com.cn/china/2016-04/20/content_24700746.htm'
,
'http://www.chinadaily.com.cn/china/2016-04/20/content_24681482.htm'
,
'http://www.chinadaily.com.cn/china/2016-04/19/content_24675530.htm'
,
'http://www.chinadaily.com.cn/china/2016-04/19/content_24675455.htm'
,
'http://www.chinadaily.com.cn/china/2016-04/19/content_24674074.htm'
,
'http://www.chinadaily.com.cn/china/2016-04/19/content_24655536.htm'
,
'http://www.chinadaily.com.cn/china/2016-04/18/content_24643685.htm'
,
'http://www.chinadaily.com.cn/china/2016-04/18/content_24636917.htm'
,
'http://www.chinadaily.com.cn/china/2016-04/15/content_24562198.htm'
]
articles_title
=
[]
articles_content
=
[]
for
pos,url
in
enumerate
(url_list):
r
=
requests.get(url)
soup1
=
bs4.BeautifulSoup(r.text)
soup2
=
bs4.BeautifulSoup(
str
(soup1.find_all(
id
=
"Title_e"
)))
articles_title.append(soup2.h1.string)
mystr
=
""
soup3
=
bs4.BeautifulSoup(
str
(soup1.find_all(
id
=
"Content"
)))
for
x
in
soup3.find_all(
"p"
):
mystr
=
mystr
+
x.string
str_p
=
""
contents
=
[]
for
pos,x
in
enumerate
(mystr):
if
x
=
=
'.'
or
x
=
=
','
:
if
pos < (
len
(mystr)
-
1
)
and
mystr[pos
+
1
] >
=
'0'
and
mystr[pos
+
1
] <
=
'9'
:
str_p
=
str_p
+
x
elif
str_p
=
=
"":
continue
else
:
contents.append(str_p)
str_p
=
""
elif
x
=
=
'('
or
x
=
=
')'
or
x
=
=
' '
or
x
=
=
'"'
or
x
=
=
'['
or
x
=
=
']'
or
x
=
=
'-'
:
if
str_p
=
=
"":
continue
else
:
contents.append(str_p)
str_p
=
""
else
:
str_p
=
str_p
+
x
articles_content.append(contents)
Dict_idf
=
{}
DictList
=
[]
for
content
in
articles_content:
Dict_tf
=
{}
for
x
in
content:
if
not
Dict_tf.has_key(x):
Dict_tf[x]
=
1.0
if
not
Dict_idf.has_key(x):
Dict_idf[x]
=
1.0
else
:
Dict_idf[x]
+
=
1.0
else
:
Dict_tf[x]
+
=
1.0
for
k, v
in
Dict_tf.items():
Dict_tf[k]
=
v
/
len
(content)
DictList.append(Dict_tf)
for
k, v
in
Dict_idf.items():
Dict_idf[k]
=
math.log(
float
(
len
(url_list))
/
v)
for
pos,x
in
enumerate
(DictList):
for
k,v
in
x.items():
DictList[pos][k]
=
v
*
Dict_idf[k]
DictList[pos]
=
sorted
(x.iteritems(), key
=
lambda
d: d[
1
], reverse
=
True
)
"""
[
[
article_titile:"XXXX"
[
{
word:"hello"
value:3.5
}
{
word:"hello"
value:3.5
}
{
word:"hello"
value:3.5
}
...
]
]
]
"""
data
=
[]
for
pos
in
range
(
10
):
data2
=
[]
data2.append(
"article_titile:"
)
data2.append(articles_title[pos])
data2.append([{
"word"
: k,
"value"
:
round
(v,
4
)}
for
k,v
in
DictList[pos][:
10
]])
data.append(data2)
# Writing JSON data
with
open
(
'data.json'
,
'w'
) as f:
json.dump(data, f)
|
使用json.cn查看数据
github地址:https://github.com/mqsee/learngit 。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:http://blog.csdn.net/coraline_m/article/details/51204988 。
最后此篇关于Python爬取十篇新闻统计TF-IDF的文章就讲到这里了,如果你想了解更多关于Python爬取十篇新闻统计TF-IDF的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我最近开始接触网络编程,我完全不知所措。我已经开始学习基础知识、html、css 和 javascript。在我的第一个网页上,我有兴趣为我发布更新的地方实现一个下拉新闻部分。我能举出的最好的例子就是
我的 Wordpress 主题在我放大评论框时没有扩展其内容区域,因此整个内容都在页脚上。页脚保持固定在页面底部,但当我展开评论框时不会自行向下推... 我尝试阅读其他问题,但我没有解决那个问题。 代
我正在运行 TYPO3 V6 和最新版本的 tx_news(不是 tt_news),当我尝试更改 LIST 显示的排序顺序时,插件中的设置不会覆盖 Typoscript 设置。似乎没有办法更改 Lis
根据 Google 允许您的文章/新闻出现在 Google 新闻中: Display a three-digit number. The URL for each article must conta
我想问一下是否可以使用表单提交后发送到用户邮件的唯一代码创建注册,我不确定如何正确地做。 for example : The user enters his email and the system
我目前正在使用在 Google 新闻语料库上训练的 Word2Vec 模型(来自 here)由于这只针对 2013 年之前的新闻进行训练,因此我需要根据 2013 年之后的新闻更新向量并在词汇表中添加
所有的麻烦都开始了,我无法按画廊的右箭头(右箭头出现在图片中) 我看到只有当我将栏移到右侧时,我才能点击箭头。 如您所见,我在 Firefox 中打开了 F12,指向了网站的右侧部分。 我看到它是空的
我有一些代码运行良好,它只是添加了一个水平新闻提要(或我列出的任何信息)它运行良好,没有闪烁,但是当我向它添加更多数据时,它似乎需要一段时间才能加载并且速度变化?我还有很多信息要添加到其中,但我不想在
我有点坚持 RewriteRule 301,从旧新闻 ID 更改为新新闻 ID 这是我尝试过的: RewriteRule ^/news/0(.*)$ /news/$1 [L,R=301] 假设新闻 U
我对 Google 新闻 RSS 提要的使用有疑问。 Google 新闻帮助说明了这一点: Why Google might block an RSS feed In some cases, Goog
我想在我的网站上加入新闻,但主要主题必须是“书籍”或“作者”等。基本上,我需要选择我提到的这两个或作者姓名等自定义主题。 但我不知道怎么做,因为文档真的很差(或者我找不到)。 添加它的查询参数是什么?
最好的方法是什么? 我想解析新闻,然后使用关键字之类的内容过滤它们并找到匹配项。 有人已经这样做了吗?而且,这是合法的吗? 最佳答案 您可以使用 google 新闻网址 http://news.goo
我有一个获取热门新闻头条的 js 函数。它已按 promise 返回,但我无法访问这些文章。这是我的代码 function news09() { var url = 'https://ne
我想让我的 TableView 加载更多动画,例如 Facebook 新闻,并在底部显示动画指示器事件。 有什么指导可以帮助我做到这一点吗?谢谢。 最佳答案 有几种方法可以做到这一点 在最后一个 in
我正在为我的网站创建一个新闻系统。我有一个主页 {index.php}(显示所有文章)和一个文章页面 (article.php) 我遇到的问题是在文章页面上选择内容。 当你点击 index.php 上
我已成功调用新闻 API 并将结果放入 DataFrame,但仅限于第 1 页。 def get_articles(keyword): all_articles = newsapi.get_eve
我有一个适合我网站的新闻 slider ,我想使用它,但我遇到了一个小问题。完成 HTML 和 CSS 后,我需要旋转“展示柜”,现在我已经尝试使用 Jquery 的不同指令,但一点运气都没有。有人可
因此,我必须根据编写的 javascript 文件(如下)创建搜索查询,并且还必须使用此 URL 来创建搜索查询。在 URL 末尾,您可以添加任何您喜欢的搜索词。例如,我们将搜索食物:https://
我在 TYPO3 8.7.13 中使用来自 Georg Ringer 的新闻扩展。 如果没有选择图像进行预览,扩展程序会显示一个虚拟图像。是否可以改用文章中的第一张图片? 谢谢 最佳答案 当然,您需要
我是typo3 的新手,我需要有关新闻扩展和$TCA 配置的帮助。 我做了一个名为“Activité”的扩展,它从 News 扩展而来。这很顺利。我创建了一些自定义字段,并且能够从“常规”选项卡中已经
我是一名优秀的程序员,十分优秀!