安居多伦多
  • 多市生活
    • 多市生活
    • 加国税务
    • 旅游度假
    • 生活安全
    • 行车安全
    • 窍门集锦
  • 多市书苑
    • 热门
    • 小说
    • 教育
  • 家居信息
    • 家居信息
    • 房屋保养
    • 房屋贷款
    • 房屋租赁
    • 房屋建筑
    • 房前屋后
    • 家居风水
  • 健康保健
    • 健康保健
    • 饮食起居
    • 食品安全
    • 健身锻炼
  • 书苑账户
    • 书苑登入
    • 书苑注册
    • 忘记书苑密码
    • 书苑账户信息
    • 关于我们
    • 联系我们
    • 隐私政策
多伦多书苑
在线书籍:随时阅读,随身听书。
所有书籍 | 人文 | 人物 | 人生 | 健康 | 儿童 | 医学 | 历史 | 历史 | 古典 | 哲学宗教 | 商业 | 外国 | 寓言 | 小说 | 教育 | 风水 | 管理 | 语言 |
为使本公益资源网站能继续提供免费阅读,请勿屏蔽广告。谢谢!报告弹出广告被滥用。
  1. 安居多伦多
  2. 网上书苑
  3. IT
  4. Python
  5. Python机器学习实践指南

Python机器学习实践指南

2022-02-09 1人点赞 0条评论
点赞
x
语速1.0: 2.0
进度0:

上一页   |   返回目录   |   下一页

5.6 设置你的每日个性化新闻简报

为了使用新闻故事来创建个人电子邮件,我们将再次使用 IFTTT。如我们在第 3 章——构建应用程序,发现低价的机票——所做,我们将使用 Maker 频道发送 POST 请求。不过,这一次的有效载荷将是我们的新闻故事。如果你尚未设置 Maker 频道,请先完成这一步。

具体的操作指令可以在第 3 章中找到。你还应设置 Gmail 频道。一旦完成后,我们将添加一个 Recipe 来组合这两个。

首先,在 IFTTT 主页单击 Create Recipe。然后,搜索 Maker Channel,如图 5-35 所示。

5.6 设置你的每日个性化新闻简报

图 5-35

选择 this,然后选择 Receive a web request,如图 5-36 所示。

5.6 设置你的每日个性化新闻简报

图 5-36

然后,为该请求提供一个名称。我在这里使用 news_event,如图 5-37 所示。

5.6 设置你的每日个性化新闻简报

图 5-37

最后,单击 Create Trigger 来完成所有步骤。接下来,单击 that 来设置电子邮件。搜索Gmail 并单击图 5-38 所示的图标。

5.6 设置你的每日个性化新闻简报

图 5-38

选择 Gmail 后,单击 Send an e-mail,如图 5-39 所示。在这里,你可以定制化自己的电子邮件消息。

5.6 设置你的每日个性化新闻简报

图 5-39

输入你的电子邮件地址,主题,最后在电子邮件的正文中包括 Value1。我们将通过 POST请求传递故事标题和链接。单击 Create Recipe 最终完成这项操作。

现在,我们已经准备就绪,可以生成一个按计划运行的脚本,自动发送我们感兴趣的文章。我们将为此创建一个单独的脚本,不过对于现有的代码,还需要序列化向量转化器和模型。

import pickle
pickle.dump(model, open
(r'/Users/alexcombs/Downloads/news_model_pickle.p', 'wb'))
pickle.dump(vect, open
(r'/Users/alexcombs/Downloads/news_vect_pickle.p', 'wb'))

通过这些代码,我们已经保存了所需的模型。在新的脚本中,我们将读取这些模型来生成新的预测。我们将使用相同的计划库运行第 3 章的代码。整合所有这些,我们将获得如下的脚本。

# 进行包的导入

import pandas as pd
fromsklearn.feature_extraction.text import TfidfVectorizer
fromsklearn.svm import LinearSVC
import schedule
import time
import pickle
importjson
importgspread
import requests
from bs4 import BeautifulSoup
from oauth2client.client import SignedJwtAssertionCredentials
# 创建我们的抓取函数
deffetch_news():
try:
vect = pickle.load(open(r'/Users/alexcombs/Downloads/
news_vect_pickle.p', 'rb'))

model = pickle.load(open(r'/Users/alexcombs/Downloads/
news_model_pickle.p', 'rb'))
json_key = json.load(open(r'/Users/alexcombs/Downloads/
APIKEY.json'))
scope = ['https://spreadsheets.google.com/feeds']
credentials = SignedJwtAssertionCredentials(json_key
['client_email'], json_key['private_key'].encode(), scope)
gc = gspread.authorize(credentials)
ws = gc.open("NewStories")
sh = ws.sheet1
zd = list(zip(sh.col_values(2), sh.col_values(3), sh.col_values(4)))
zf = pd.DataFrame(zd, columns=['title', 'urls', 'html'])
zf.replace('', pd.np.nan, inplace=True)
zf.dropna(inplace=True)
defget_text(x):
soup = BeautifulSoup(x, 'lxml')
text = soup.get_text()
return text
zf.loc[:, 'text'] = zf['html'].map(get_text)
tv = vect.transform(zf['text'])
res = model.predict(tv)
rf = pd.DataFrame(res, columns=['wanted'])
rez = pd.merge(rf, zf, left_index=True, right_index=True)
news_str = ''
for t, u in zip(rez[rez['wanted'] == 'y']['title'], rez[rez['wanted'] == 'y']['urls']):
news_str = news_str + t + '\n' + u + '\n'
payload = {"value1": news_str}
r = requests.post('https://maker.ifttt.com/trigger/

news_event/with/key/IFTTT_KEY', data=payload)
# 清理工作表
lenv = len(sh.col_values(1))
cell_list = sh.range('A1:F' + str(lenv))

for cell in cell_list:
cell.value = ""
sh.update_cells(cell_list)
print(r.text)
except:
print('Failed')
schedule.every(480).minutes.do(fetch_news)
while 1:
schedule.run_pending()
time.sleep(1)

这个脚本所做的事情是,每 4 小时运行一次,从 Google 表单下载新闻故事,通过模型对这些故事进行预测,再向 IFTTT 发送 POST 请求来生成电子邮件,该邮件包含了模型预测我们会感兴趣的故事,然后在最终,它会清除电子表格中的故事,以便下一封电子邮件只会发送新的故事。

恭喜!你现在拥有自己的个性化新闻源了!

上一页   |   返回目录   |   下一页

类似书籍

Python机器学习手册:从数据预处理到深度学习
Python机器学习手册:从数据预处理到深度学习
机器学习实战
机器学习实战
Python机器学习——预测分析核心算法
Python机器学习——预测分析核心算法
Author:

标签: 暂无
最后更新:2022-02-09
下一篇 >

本书评论

取消回复

©2021 安居多伦多 - 版权所有

本站由 好事来 Hostlike.com 提供技术支持。