赞
踩
博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久,选择我们就是选择放心、选择安心毕业✌感兴趣的可以先收藏起来,点赞、关注不迷路✌
毕业设计:2023-2024年计算机毕业设计1000套(建议收藏)
毕业设计:2023-2024年最新最全计算机专业毕业设计选题汇总
技术栈:
Python语言、django框架、 vue框架、 scrapy爬虫框架、 jieba分词、 nlp算法、 爬虫抓取
机器学习、朴素贝叶斯算法、TextRank算法、情感分类、情感分析
功能:
新闻列表 新闻详情 新闻分类 新闻搜索
新闻摘要抽取 关键词分析 情感分析 朴素贝叶斯算法 词性分析
新闻数据爬虫、爬虫新闻数据直接存储到数据库
后台新闻数据管理、用户管理
(1)新闻数据分析
(2)新闻详情页
(3)新闻数据浏览
(4)新闻词性分析
(5)后台管理
技术栈:
Python语言、django框架、 vue框架、 scrapy爬虫框架、 jieba分词、 nlp算法、 爬虫抓取
机器学习、朴素贝叶斯算法、TextRank算法、情感分类、情感分析
功能:
新闻列表 新闻详情 新闻分类 新闻搜索
新闻摘要抽取 关键词分析 情感分析 朴素贝叶斯算法 词性分析
新闻数据爬虫、爬虫新闻数据直接存储到数据库
后台新闻数据管理、用户管理
新闻数据爬取情感分析系统是一个基于Python语言和相关技术栈开发的系统。它主要包括以下功能:
通过以上功能,新闻数据爬取情感分析系统可以帮助用户快速浏览和搜索新闻,并提供关键词分析、情感分析等功能,帮助用户更好地理解和分析新闻内容。
# -*- coding: utf-8 -*- from __future__ import unicode_literals from ..sim.bm25 import BM25 class TextRank(object): def __init__(self, docs): self.docs = docs self.bm25 = BM25(docs) self.D = len(docs) self.d = 0.85 self.weight = [] self.weight_sum = [] self.vertex = [] self.max_iter = 200 self.min_diff = 0.001 self.top = [] def solve(self): for cnt, doc in enumerate(self.docs): scores = self.bm25.simall(doc) self.weight.append(scores) self.weight_sum.append(sum(scores)-scores[cnt]) self.vertex.append(1.0) for _ in range(self.max_iter): m = [] max_diff = 0 for i in range(self.D): m.append(1-self.d) for j in range(self.D): if j == i or self.weight_sum[j] == 0: continue m[-1] += (self.d*self.weight[j][i] / self.weight_sum[j]*self.vertex[j]) if abs(m[-1] - self.vertex[i]) > max_diff: max_diff = abs(m[-1] - self.vertex[i]) self.vertex = m if max_diff <= self.min_diff: break self.top = list(enumerate(self.vertex)) self.top = sorted(self.top, key=lambda x: x[1], reverse=True) def top_index(self, limit): return list(map(lambda x: x[0], self.top))[:limit] def top(self, limit): return list(map(lambda x: self.docs[x[0]], self.top)) class KeywordTextRank(object): def __init__(self, docs): self.docs = docs self.words = {} self.vertex = {} self.d = 0.85 self.max_iter = 200 self.min_diff = 0.001 self.top = [] def solve(self): for doc in self.docs: que = [] for word in doc: if word not in self.words: self.words[word] = set() self.vertex[word] = 1.0 que.append(word) if len(que) > 5: que.pop(0) for w1 in que: for w2 in que: if w1 == w2: continue self.words[w1].add(w2) self.words[w2].add(w1) for _ in range(self.max_iter): m = {} max_diff = 0 tmp = filter(lambda x: len(self.words[x[0]]) > 0, self.vertex.items()) tmp = sorted(tmp, key=lambda x: x[1] / len(self.words[x[0]])) for k, v in tmp: for j in self.words[k]: if k == j: continue if j not in m: m[j] = 1 - self.d m[j] += (self.d / len(self.words[k]) * self.vertex[k]) for k in self.vertex: if k in m and k in self.vertex: if abs(m[k] - self.vertex[k]) > max_diff: max_diff = abs(m[k] - self.vertex[k]) self.vertex = m if max_diff <= self.min_diff: break self.top = list(self.vertex.items()) self.top = sorted(self.top, key=lambda x: x[1], reverse=True) def top_index(self, limit): return list(map(lambda x: x[0], self.top))[:limit] def top(self, limit): return list(map(lambda x: self.docs[x[0]], self.top))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。