当前位置:   article > 正文

计算机毕业设计Flink+Hadoop广告推荐系统 广告预测 广告数据分析可视化 广告爬虫 大数据毕业设计 Spark Hive 深度学习 机器学

计算机毕业设计Flink+Hadoop广告推荐系统 广告预测 广告数据分析可视化 广告爬虫 大数据毕业设计 Spark Hive 深度学习 机器学

专业

小四号宋体

班级

小四号宋体

姓名

小四号宋体

学号

小四号宋体

指导教师

小四号宋体

题目

基于大数据的B站广告投放分析及可视化

(1.内容包括:课题的来源及意义,国内外发展状况,本课题的研究目标、内容、方法、手段及进度安排、实验方案的可行性分析和已具备的实验条件、具体参考文献等。2.撰写要求:字体为宋体、小四号,字数不少于1500字,1.5倍行距。)

课题的来源及意义

来源

随着互联网的快速发展和数字化转型,广告行业面临着诸多挑战和变革,传统的广告投放方式难以满足市场需求。在当今大数据时代,广告投放的效率和效果对于企业的营销策略至关重要。传统的广告投放方式往往缺乏对投放效果的数据分析和精准把握,因此,利用大数据技术对广告投放进行分析和优化具有重要的实际意义和应用价值。

意义

  • 提高广告投放效果:通过对海量的数据进行深度挖掘和分析,可以实现对受众的精准定位和分类,从而提高广告的投放效果和投资回报率。
  • 降低广告成本:精准的广告投放可以避免广告在不相关受众中浪费,减少广告成本,并使有限的广告预算得到更有效地利用。
  • 提升用户体验:精准的广告投放可以向用户推送符合其个人兴趣和需求的广告内容,提升用户体验,增强用户对广告的认同感。
  • 促进广告行业创新:基于大数据的广告精准投放分析为广告行业的创新提供了新的思路和方法,推动了广告行业向智能化、个性化的方向发展。

国内外发展状况

国内发展状况:

在国内,随着互联网和移动设备的普及,大数据技术在广告行业的应用也得到了快速发展。一些大型的互联网公司,如阿里巴巴、腾讯等,也利用大数据技术进行广告精准投放。他们通过分析用户的搜索记录、浏览记录、购买行为等信息,以实现更精确的广告推送。此外,一些专门的大数据分析和广告优化公司,如字节跳动等,也提供了基于大数据的广告投放分析和优化服务。

国外发展状况:

在国外,大数据技术在广告投放领域的应用已经非常普遍。一些知名的互联网公司,如Google、Facebook、Twitter等,都利用大数据技术进行广告精准投放。他们通过收集和分析用户的行为数据、兴趣爱好、地理位置等信息,以实现更精确的广告推送。此外,一些专门的大数据分析和广告优化公司,如DoubleClick等,也提供了基于大数据的广告投放分析和优化服务。

综上所述,国内外都在基于大数据的广告精准投放领域取得了一定的成果。未来的研究方向包括进一步提高数据处理效率、加强用户行为分析、优化广告投放策略,以及开发更先进和实用的可视化分析工具。

本课题的研究目标

研究目标一:建立广告投放数据收集和分析系统

在课题研究中,首要的研究目标是建立广告投放数据的收集和分析系统。这一系统能够有效地收集和存储广告投放数据,并运用大数据技术进行深入的分析。通过该系统,我们可以获取广告的展示次数、点击次数、转化率等关键指标,为后续的投放优化提供数据支持。

研究目标二:挖掘用户行为和兴趣,实现精准投放

在完成数据收集和分析系统的构建后,课题将进一步研究如何挖掘用户行为和兴趣,以实现广告的精准投放。通过分析B站用户的行为信息,我们可以了解用户的兴趣爱好和需求,从而将广告准确地推送给目标用户。这种精准投放方式能够提高广告的点击率和转化率,提升投放效果。

研究目标三:优化广告投放策略,提高投放效果

课题的最终研究目标是优化广告投放策略,提高投放效果。通过分析和挖掘广告投放数据,我们可以根据用户的反馈调整和优化广告投放策略。例如,我们可以通过分析不同时间段的广告点击率,了解用户在一天中的活跃时间段,从而调整广告的投放时间。此外,我们还可以根据用户的地理位置、年龄、性别等信息进行更精细化的投放策略调整。

内容

  • 数据采集:使用Python等编程语言和相关库,采集B站的广告相关数据,包括广告主、广告投放时间、广告投放位置、广告费用、广告点击量等。采集B站用户的行为数据,包括视频观看记录、点赞、评论、搜索记录等,以及用户的个人信息和标签数据。
  • 数据预处理:收集到的数据可能存在缺失值、异常值或者格式不一致的情况,对采集到的数据进行清洗、去重、缺失值处理、异常值处理等预处理工作,以确保数据的准确性和完整性。
  • 数据存储和处理:在获取到数据后,需要妥善处理和存储数据,确保数据的安全和隐私保护。
  • 数据分析和挖掘:利用大数据分析技术,对收集到的数据进行分析,包括广告投放效果的分析、受众群体特征的挖掘、广告点击与转化的关联分析等,以发现潜在的规律和趋势。
  • 可视化展示:将分析结果以可视化的形式展示出来,包括图表、报告、动态展示等,以便于决策者和用户理解和应用分析结果。为用户提供个性化的视频推荐,或者为广告主提供精准的广告投放服务。

方法、手段

  • 数据采集:通过B站API接口或Python爬虫爬取B站广告投放数据、用户行为数据、视频内容数据。
  • 数据存储:使用Hive构建离线数据仓库存储采集到的数据。
  • 数据分析:用spark实时计算收集到的数据,建立分析模型主要用于分析自变量如广告内容、广告投放时间、用户画像等与因变量如用户点击率、转化率、广告收益等之间的关系。
  • 数据可视化:搭建Flask框架方便实现对数据及操作过程的管理,用Echarts可视化最终结果

进度安排

1.选题开题

选题阶段:2023年09月04日—2023年10月31日

开题阶段:2023年11月01日—2023年11月15日

2.设计制作

初步设计阶段:2023年11月16日—2023年12月15日

整体设计阶段:2023年12月16日—2024年01月15日

完成系统设计:2024年01月16日—2024年02月10日

3.撰写论文

论文初稿:2024年02月11日—2024年2月底

论文二稿:2024年03月01日—2024年3月31日

论文终稿:2024年04月01日—2024年4月20日

4.毕业答辩

毕业答辩时间:2024年4月底

实验方案的可行性分析

1.经济可行性:该项目所需技术在本人计算机上均可进行,无较多成本。

2. 技术可行性:B站作为一个拥有海量用户数据的视频分享平台,提供了丰富的数据来源,可以支持大数据分析和可视化的需求。建立强大的数据处理能力,包括数据清洗、整合、分析和可视化的技术能力,以应对海量数据的处理需求。

3. 法律可行性:在进行数据爬取和处理的过程中,需要遵守相关的法律法规,特别是涉及个人隐私和数据安全的方面。需要评估项目是否符合数据保护法规、网络安全法规、知识产权法规等相关法律法规,是否需要进行信息披露和取得用户授权等。

已具备的实验条件

  • 笔记本:配置有完整Python开发环境、大数据环境。
  • 知识点:查阅并研读了相关论文文献,理清了本项目的基本思路,正在学习大数据、Python相关知识能够完成项目开发。
  • 技术支援:通过github搜集开源案例可用于研究开发。

具体参考文献

[1]王波, 王俊. 大数据时代的广告精准投放[J]. 计算机与现代化, 2017(10): 19-23.

[2]张晨光. 基于大数据的广告投放优化研究[J]. 现代商业, 2018(2): 17-20.

[3]刘鹏, 王伟. 大数据在广告投放中的应用与研究[J]. 现代商业, 2019(3): 9-12.

[4]张素雅. 基于大数据的广告精准投放案例分析[J]. 信息技术与应用, 2020(1): 14-18.

[5]王晓明. 大数据时代广告投放的精准策略[J]. 科技视界, 2021(3): 12-15.

[6]周小玲, 王明宇. 基于大数据的广告投放效果评估与优化[J]. 现代商业, 2022(4): 34-38.

[7]刘建华. 大数据在广告精准投放中的应用及发展[J]. 信息技术与应用, 2023(1): 18-22.

河北传媒学院

本科毕业论文开题报告

专业

小四号宋体

班级

小四号宋体

姓名

小四号宋体

学号

小四号宋体

指导教师

小四号宋体

题目

基于大数据的B站广告投放分析及可视化

(1.内容包括:课题的来源及意义,国内外发展状况,本课题的研究目标、内容、方法、手段及进度安排、实验方案的可行性分析和已具备的实验条件、具体参考文献等。2.撰写要求:字体为宋体、小四号,字数不少于1500字,1.5倍行距。)

课题的来源及意义

来源

随着互联网的快速发展和数字化转型,广告行业面临着诸多挑战和变革,传统的广告投放方式难以满足市场需求。在当今大数据时代,广告投放的效率和效果对于企业的营销策略至关重要。传统的广告投放方式往往缺乏对投放效果的数据分析和精准把握,因此,利用大数据技术对广告投放进行分析和优化具有重要的实际意义和应用价值。

意义

  • 提高广告投放效果:通过对海量的数据进行深度挖掘和分析,可以实现对受众的精准定位和分类,从而提高广告的投放效果和投资回报率。
  • 降低广告成本:精准的广告投放可以避免广告在不相关受众中浪费,减少广告成本,并使有限的广告预算得到更有效地利用。
  • 提升用户体验:精准的广告投放可以向用户推送符合其个人兴趣和需求的广告内容,提升用户体验,增强用户对广告的认同感。
  • 促进广告行业创新:基于大数据的广告精准投放分析为广告行业的创新提供了新的思路和方法,推动了广告行业向智能化、个性化的方向发展。

国内外发展状况

国内发展状况:

在国内,随着互联网和移动设备的普及,大数据技术在广告行业的应用也得到了快速发展。一些大型的互联网公司,如阿里巴巴、腾讯等,也利用大数据技术进行广告精准投放。他们通过分析用户的搜索记录、浏览记录、购买行为等信息,以实现更精确的广告推送。此外,一些专门的大数据分析和广告优化公司,如字节跳动等,也提供了基于大数据的广告投放分析和优化服务。

国外发展状况:

在国外,大数据技术在广告投放领域的应用已经非常普遍。一些知名的互联网公司,如Google、Facebook、Twitter等,都利用大数据技术进行广告精准投放。他们通过收集和分析用户的行为数据、兴趣爱好、地理位置等信息,以实现更精确的广告推送。此外,一些专门的大数据分析和广告优化公司,如DoubleClick等,也提供了基于大数据的广告投放分析和优化服务。

综上所述,国内外都在基于大数据的广告精准投放领域取得了一定的成果。未来的研究方向包括进一步提高数据处理效率、加强用户行为分析、优化广告投放策略,以及开发更先进和实用的可视化分析工具。

本课题的研究目标

研究目标一:建立广告投放数据收集和分析系统

在课题研究中,首要的研究目标是建立广告投放数据的收集和分析系统。这一系统能够有效地收集和存储广告投放数据,并运用大数据技术进行深入的分析。通过该系统,我们可以获取广告的展示次数、点击次数、转化率等关键指标,为后续的投放优化提供数据支持。

研究目标二:挖掘用户行为和兴趣,实现精准投放

在完成数据收集和分析系统的构建后,课题将进一步研究如何挖掘用户行为和兴趣,以实现广告的精准投放。通过分析B站用户的行为信息,我们可以了解用户的兴趣爱好和需求,从而将广告准确地推送给目标用户。这种精准投放方式能够提高广告的点击率和转化率,提升投放效果。

研究目标三:优化广告投放策略,提高投放效果

课题的最终研究目标是优化广告投放策略,提高投放效果。通过分析和挖掘广告投放数据,我们可以根据用户的反馈调整和优化广告投放策略。例如,我们可以通过分析不同时间段的广告点击率,了解用户在一天中的活跃时间段,从而调整广告的投放时间。此外,我们还可以根据用户的地理位置、年龄、性别等信息进行更精细化的投放策略调整。

内容

  • 数据采集:使用Python等编程语言和相关库,采集B站的广告相关数据,包括广告主、广告投放时间、广告投放位置、广告费用、广告点击量等。采集B站用户的行为数据,包括视频观看记录、点赞、评论、搜索记录等,以及用户的个人信息和标签数据。
  • 数据预处理:收集到的数据可能存在缺失值、异常值或者格式不一致的情况,对采集到的数据进行清洗、去重、缺失值处理、异常值处理等预处理工作,以确保数据的准确性和完整性。
  • 数据存储和处理:在获取到数据后,需要妥善处理和存储数据,确保数据的安全和隐私保护。
  • 数据分析和挖掘:利用大数据分析技术,对收集到的数据进行分析,包括广告投放效果的分析、受众群体特征的挖掘、广告点击与转化的关联分析等,以发现潜在的规律和趋势。
  • 可视化展示:将分析结果以可视化的形式展示出来,包括图表、报告、动态展示等,以便于决策者和用户理解和应用分析结果。为用户提供个性化的视频推荐,或者为广告主提供精准的广告投放服务。

方法、手段

  • 数据采集:通过B站API接口或Python爬虫爬取B站广告投放数据、用户行为数据、视频内容数据。
  • 数据存储:使用Hive构建离线数据仓库存储采集到的数据。
  • 数据分析:用spark实时计算收集到的数据,建立分析模型主要用于分析自变量如广告内容、广告投放时间、用户画像等与因变量如用户点击率、转化率、广告收益等之间的关系。
  • 数据可视化:搭建Flask框架方便实现对数据及操作过程的管理,用Echarts可视化最终结果

进度安排

1.选题开题

选题阶段:2023年09月04日—2023年10月31日

开题阶段:2023年11月01日—2023年11月15日

2.设计制作

初步设计阶段:2023年11月16日—2023年12月15日

整体设计阶段:2023年12月16日—2024年01月15日

完成系统设计:2024年01月16日—2024年02月10日

3.撰写论文

论文初稿:2024年02月11日—2024年2月底

论文二稿:2024年03月01日—2024年3月31日

论文终稿:2024年04月01日—2024年4月20日

4.毕业答辩

毕业答辩时间:2024年4月底

实验方案的可行性分析

1.经济可行性:该项目所需技术在本人计算机上均可进行,无较多成本。

2. 技术可行性:B站作为一个拥有海量用户数据的视频分享平台,提供了丰富的数据来源,可以支持大数据分析和可视化的需求。建立强大的数据处理能力,包括数据清洗、整合、分析和可视化的技术能力,以应对海量数据的处理需求。

3. 法律可行性:在进行数据爬取和处理的过程中,需要遵守相关的法律法规,特别是涉及个人隐私和数据安全的方面。需要评估项目是否符合数据保护法规、网络安全法规、知识产权法规等相关法律法规,是否需要进行信息披露和取得用户授权等。

已具备的实验条件

  • 笔记本:配置有完整Python开发环境、大数据环境。
  • 知识点:查阅并研读了相关论文文献,理清了本项目的基本思路,正在学习大数据、Python相关知识能够完成项目开发。
  • 技术支援:通过github搜集开源案例可用于研究开发。

具体参考文献

[1]王波, 王俊. 大数据时代的广告精准投放[J]. 计算机与现代化, 2017(10): 19-23.

[2]张晨光. 基于大数据的广告投放优化研究[J]. 现代商业, 2018(2): 17-20.

[3]刘鹏, 王伟. 大数据在广告投放中的应用与研究[J]. 现代商业, 2019(3): 9-12.

[4]张素雅. 基于大数据的广告精准投放案例分析[J]. 信息技术与应用, 2020(1): 14-18.

[5]王晓明. 大数据时代广告投放的精准策略[J]. 科技视界, 2021(3): 12-15.

[6]周小玲, 王明宇. 基于大数据的广告投放效果评估与优化[J]. 现代商业, 2022(4): 34-38.

[7]刘建华. 大数据在广告精准投放中的应用及发展[J]. 信息技术与应用, 2023(1): 18-22.

核心算法代码分享如下:

  1. import pymysql
  2. from flask import Flask, request, jsonify
  3. import json
  4. from flask_mysqldb import MySQL
  5. import random
  6. import sys
  7. import math
  8. from operator import itemgetter
  9. import pymysql
  10. import SVD
  11. import UserCF
  12. from ItemCF import recommend
  13. #from mlp import als_mlp_predict
  14. from rate import Rate
  15. import db
  16. # 创建应用对象
  17. app = Flask(__name__)
  18. app.config['MYSQL_HOST'] = 'bigdata'
  19. app.config['MYSQL_USER'] = 'root'
  20. app.config['MYSQL_PASSWORD'] = '123456'
  21. app.config['MYSQL_DB'] = 'hive_ads'
  22. mysql = MySQL(app) # this is the instantiation
  23. @app.route('/tables01')
  24. def tables01():
  25. cur = mysql.connection.cursor()
  26. cur.execute('''SELECT * FROM table01''')
  27. #row_headers = [x[0] for x in cur.description] # this will extract row headers
  28. row_headers = ['province','num'] # this will extract row headers
  29. rv = cur.fetchall()
  30. json_data = []
  31. #print(json_data)
  32. for result in rv:
  33. json_data.append(dict(zip(row_headers, result)))
  34. return json.dumps(json_data, ensure_ascii=False)
  35. @app.route('/tables02')
  36. def tables02():
  37. cur = mysql.connection.cursor()
  38. cur.execute('''SELECT * FROM table02 ORDER BY stime asc ''')
  39. #row_headers = [x[0] for x in cur.description] # this will extract row headers
  40. row_headers = ['stime','num'] # this will extract row headers
  41. rv = cur.fetchall()
  42. json_data = []
  43. #print(json_data)
  44. for result in rv:
  45. json_data.append(dict(zip(row_headers, result)))
  46. return json.dumps(json_data, ensure_ascii=False)
  47. @app.route('/tables03')
  48. def tables03():
  49. cur = mysql.connection.cursor()
  50. cur.execute('''SELECT * FROM table03 order by avg_price desc''')
  51. #row_headers = [x[0] for x in cur.description] # this will extract row headers
  52. row_headers = ['area','avg_price'] # this will extract row headers
  53. rv = cur.fetchall()
  54. json_data = []
  55. #print(json_data)
  56. for result in rv:
  57. json_data.append(dict(zip(row_headers, result)))
  58. return json.dumps(json_data, ensure_ascii=False)
  59. @app.route('/tables04')
  60. def tables04():
  61. cur = mysql.connection.cursor()
  62. cur.execute('''SELECT * FROM table04''')
  63. #row_headers = [x[0] for x in cur.description] # this will extract row headers
  64. row_headers = ['small_type','sum_flow'] # this will extract row headers
  65. rv = cur.fetchall()
  66. json_data = []
  67. #print(json_data)
  68. for result in rv:
  69. json_data.append(dict(zip(row_headers, result)))
  70. return json.dumps(json_data, ensure_ascii=False)
  71. @app.route("/getmapcountryshowdata")
  72. def getmapcountryshowdata():
  73. filepath = r"D:\\hadoop_spark_hive_mooc2024\\server\\data\\maps\\china.json"
  74. with open(filepath, "r", encoding='utf-8') as f:
  75. data = json.load(f)
  76. return json.dumps(data, ensure_ascii=False)
  77. @app.route('/tables05')
  78. def tables05():
  79. cur = mysql.connection.cursor()
  80. cur.execute('''SELECT * FROM table05''')
  81. #row_headers = [x[0] for x in cur.description] # this will extract row headers
  82. row_headers = ['fee_mode','num'] # this will extract row headers
  83. rv = cur.fetchall()
  84. json_data = []
  85. #print(json_data)
  86. for result in rv:
  87. json_data.append(dict(zip(row_headers, result)))
  88. return json.dumps(json_data, ensure_ascii=False)
  89. @app.route('/tables06')
  90. def tables06():
  91. cur = mysql.connection.cursor()
  92. cur.execute('''SELECT * FROM table06''')
  93. #row_headers = [x[0] for x in cur.description] # this will extract row headers
  94. row_headers = ['title','flow'] # this will extract row headers
  95. rv = cur.fetchall()
  96. json_data = []
  97. #print(json_data)
  98. for result in rv:
  99. json_data.append(dict(zip(row_headers, result)))
  100. return json.dumps(json_data, ensure_ascii=False)
  101. @app.route('/tables07')
  102. def tables07():
  103. cur = mysql.connection.cursor()
  104. cur.execute('''SELECT * FROM table07''')
  105. #row_headers = [x[0] for x in cur.description] # this will extract row headers
  106. row_headers = ['ctime','num'] # this will extract row headers
  107. rv = cur.fetchall()
  108. json_data = []
  109. #print(json_data)
  110. for result in rv:
  111. json_data.append(dict(zip(row_headers, result)))
  112. return json.dumps(json_data, ensure_ascii=False)
  113. @app.route('/tables08')
  114. def tables08():
  115. cur = mysql.connection.cursor()
  116. cur.execute('''SELECT * FROM table08''')
  117. #row_headers = [x[0] for x in cur.description] # this will extract row headers
  118. row_headers = ['name','num'] # this will extract row headers
  119. rv = cur.fetchall()
  120. json_data = []
  121. #print(json_data)
  122. for result in rv:
  123. json_data.append(dict(zip(row_headers, result)))
  124. return json.dumps(json_data, ensure_ascii=False)
  125. @app.route('/tables09')
  126. def tables09():
  127. cur = mysql.connection.cursor()
  128. cur.execute('''SELECT * FROM table09''')
  129. row_headers = [x[0] for x in cur.description] # this will extract row headers
  130. #row_headers = ['car_name','score'] # this will extract row headers
  131. rv = cur.fetchall()
  132. json_data = []
  133. #print(json_data)
  134. for result in rv:
  135. json_data.append(dict(zip(row_headers, result)))
  136. return json.dumps(json_data, ensure_ascii=False)
  137. @app.route('/data',methods=['GET'])
  138. def data():
  139. limit = int(request.args['limit'])
  140. page = int(request.args['page'])
  141. page = (page-1)*limit
  142. conn = pymysql.connect(host='bigdata', user='root', password='123456', port=3306, db='hive_ads',
  143. charset='utf8mb4')
  144. cursor = conn.cursor()
  145. if (len(request.args) == 2):
  146. cursor.execute("select count(*) from tb_ads");
  147. count = cursor.fetchall()
  148. cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
  149. cursor.execute("select * from tb_ads limit "+str(page)+","+str(limit));
  150. data_dict = []
  151. result = cursor.fetchall()
  152. for field in result:
  153. data_dict.append(field)
  154. else:
  155. small_type = str(request.args['small_type'])
  156. fee_mode = str(request.args['fee_mode']).lower()
  157. if(small_type=='不限'):
  158. cursor.execute("select count(*) from tb_ads where fee_mode like '%"+fee_mode+"%'");
  159. count = cursor.fetchall()
  160. cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
  161. cursor.execute("select * from tb_ads where fee_mode like '%"+fee_mode+"%' limit " + str(page) + "," + str(limit));
  162. data_dict = []
  163. result = cursor.fetchall()
  164. for field in result:
  165. data_dict.append(field)
  166. else:
  167. cursor.execute("select count(*) from tb_ads where fee_mode like '%"+fee_mode+"%' and small_type = '"+small_type+"'");
  168. count = cursor.fetchall()
  169. cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
  170. cursor.execute("select * from tb_ads where fee_mode like '%"+fee_mode+"%' and small_type = '"+small_type+"' limit " + str(page) + "," + str(limit));
  171. data_dict = []
  172. result = cursor.fetchall()
  173. for field in result:
  174. data_dict.append(field)
  175. table_result = {"code": 0, "msg": None, "count": count[0], "data": data_dict}
  176. cursor.close()
  177. conn.close()
  178. return jsonify(table_result)
  179. @app.route('/rec_item',methods=['GET'])
  180. def rec_item():
  181. #print(request.get_json())
  182. limit = 10
  183. page = 1
  184. param1 = str(random.choice([1,2,3,4,5,6]))
  185. result = recommend(int(param1))
  186. list = []
  187. for r in result:
  188. list.append(dict(iid=r[0], rate=r[1]))
  189. print(list)
  190. iids=[]
  191. for iid in list :
  192. iids.append(str(iid['iid']))
  193. conn = pymysql.connect(host='bigdata', user='root', password='123456', port=3306, db='hive_ads',
  194. charset='utf8mb4')
  195. print(iids)
  196. iids_str=','.join(iids)
  197. cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
  198. cursor.execute( "select * from tb_ads where id in (" + iids_str + ")");
  199. data_dict = []
  200. result = cursor.fetchall()
  201. for field in result:
  202. data_dict.append(field)
  203. table_result = {"code": 0, "msg": None, "count": len(result), "data": data_dict}
  204. cursor.close()
  205. conn.close()
  206. return jsonify(table_result)
  207. @app.route('/rec_user',methods=['GET'])
  208. def rec_user():
  209. #print(request.get_json())
  210. limit = 10
  211. page = 1
  212. param1 = str(random.choice([1,2,3,4,5,6]))
  213. param1 = "1"
  214. result = UserCF.recommend(int(param1))
  215. list = []
  216. for r in result:
  217. list.append(dict(iid=r[0], rate=r[1]))
  218. print(list)
  219. print(list)
  220. iids=[]
  221. for iid in list :
  222. iids.append(str(iid['iid']))
  223. conn = pymysql.connect(host='bigdata', user='root', password='123456', port=3306, db='hive_ads',
  224. charset='utf8mb4')
  225. print(iids)
  226. iids_str=','.join(iids)
  227. cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
  228. cursor.execute( "select * from tb_ads where id in (" + iids_str + ")");
  229. data_dict = []
  230. result = cursor.fetchall()
  231. for field in result:
  232. data_dict.append(field)
  233. table_result = {"code": 0, "msg": None, "count": len(result), "data": data_dict}
  234. cursor.close()
  235. conn.close()
  236. return jsonify(table_result)
  237. # @app.route('/mlp',methods=['GET'])
  238. # def mlp():
  239. # #print(request.get_json())
  240. # limit = 10
  241. # page = 1
  242. # param1 = str(random.choice([1,2,3,4,5,6]))
  243. # result = als_mlp_predict(int(param1), 55, 4)
  244. # list = []
  245. # # print(result)
  246. # for r in result:
  247. # list.append(dict(iid=r['iid'], rate=r['score']))
  248. # print(list)
  249. # print(list)
  250. # print(list)
  251. # iids=[]
  252. # for iid in list :
  253. # iids.append(str(iid['iid']))
  254. # conn = pymysql.connect(host='bigdata', user='root', password='123456', port=3306, db='hive_ads',
  255. # charset='utf8mb4')
  256. # print(iids)
  257. # iids_str=','.join(iids)
  258. # cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
  259. # cursor.execute( "select * from tb_ads where id in (" + iids_str + ")");
  260. # data_dict = []
  261. # result = cursor.fetchall()
  262. # for field in result:
  263. # data_dict.append(field)
  264. # table_result = {"code": 0, "msg": None, "count": len(result), "data": data_dict}
  265. # cursor.close()
  266. # conn.close()
  267. # return jsonify(table_result)
  268. @app.route('/svd',methods=['GET'])
  269. def svd():
  270. #print(request.get_json())
  271. limit = 10
  272. page = 1
  273. param1 = str(random.choice([1,2,3,4,5,6]))
  274. #param1 = 1
  275. predictions = SVD.recommend(int(param1),10)
  276. # print(predictions)
  277. res = []
  278. for p in predictions:
  279. # print(p)
  280. d = dict(iid=p, rate=0.9)
  281. res.append(d)
  282. print(res)
  283. print(res)
  284. print(res)
  285. print(res)
  286. iids=[]
  287. for iid in res :
  288. iids.append(str(iid['iid']))
  289. conn = pymysql.connect(host='bigdata', user='root', password='123456', port=3306, db='hive_ads',
  290. charset='utf8mb4')
  291. print(iids)
  292. iids_str=','.join(iids)
  293. cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
  294. cursor.execute( "select * from tb_ads where id in (" + iids_str + ")");
  295. data_dict = []
  296. result = cursor.fetchall()
  297. for field in result:
  298. data_dict.append(field)
  299. table_result = {"code": 0, "msg": None, "count": len(result), "data": data_dict}
  300. cursor.close()
  301. conn.close()
  302. return jsonify(table_result)
  303. if __name__ == "__main__":
  304. app.run(debug=False)

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/772272
推荐阅读
相关标签
  

闽ICP备14008679号