日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

毕业设计 基于大数据的社交平台数据爬虫舆情分析可视化系统

發布時間:2023/12/10 windows 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 毕业设计 基于大数据的社交平台数据爬虫舆情分析可视化系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 0 前言
  • 1 課題背景
  • 2 實現效果
    • **實現功能**
    • **可視化統計**
    • **web模塊界面展示**
    • 3 LDA模型
  • 4 情感分析方法
    • **預處理**
    • 特征提取
    • 特征選擇
    • 分類器選擇
    • 實驗
  • 5 部分核心代碼
  • 6 最后


0 前言

🔥 這兩年開始畢業設計和畢業答辯的要求和難度不斷提升,傳統的畢設題目缺少創新和亮點,往往達不到畢業答辯的要求,這兩年不斷有學弟學妹告訴學長自己做的項目系統達不到老師的要求。

為了大家能夠順利以及最少的精力通過畢設,學長分享優質畢業設計項目,今天要分享的是

🚩 基于大數據的社交平臺數據爬蟲輿情分析可視化系統

🥇學長這里給一個題目綜合評分(每項滿分5分)

  • 難度系數:3分
  • 工作量:3分
  • 創新點:4分

🧿 選題指導, 項目分享:

https://gitee.com/dancheng-senior/project-sharing-1/blob/master/%E6%AF%95%E8%AE%BE%E6%8C%87%E5%AF%BC/README.md

1 課題背景

基于Python的社交平臺大數據挖掘及其可視化。

2 實現效果

實現功能

  • 實時熱點話題檢測
  • 情感分析
  • 結果可視化
  • Twitter數據挖掘平臺的設計與實現

可視化統計

Hashtag統計

地理位置信息的可視化

話題結果可視化

矩陣圖


旭日圖

情感分析的可視化

web模塊界面展示

3 LDA模型

2003年,D.Blei等人提出了廣受歡迎的LDA(Latentdirichlet allocation)主題模型[8]。LDA除了進行主題的分析外,還可以運用于文本分類、推薦系統等方面。

LDA模型可以描述為一個“上帝擲骰子”的過程,首先,從主題庫中隨機抽取一個主題,該主題編號為K,接著從骰子庫中拿出編號為K的骰子X,進行投擲,每投擲一次,就得到了一個詞。不斷的投擲它,直到到達預計的文本長度為止。簡單的說,這一過程就是“隨機的選擇某個主題,然后從該主題中隨機的選擇詞語”。按照之前的描述,一篇文檔中詞語生成的概率為:

可以用矩陣的乘法來表示上述的過程:

回到LDA模型來說,LDA模型的輸入是一篇一篇用BOW(bag of words)表示的文檔,即用該文檔中無序的單詞序列來表示該文檔(忽略文檔中的語法和詞語的先后關系)。LDA的輸出是每篇文檔的主題分布矩陣和每個主題下的單詞分布矩陣。簡而言之,LDA主題模型的任務就是已知左邊的矩陣,通過一些方法,得到右邊兩個小矩陣。這里的“一些方法”即為LDA采樣的方法,目前最主要的有兩種,一種是變分貝葉斯推斷(variationalBayes, VB),另一種叫做吉布斯采樣(Gibbs Sampling),其中吉布斯采樣也被稱為蒙特卡洛馬爾可夫 (Markov Chain Monte Carlo,MCMC)采樣方法。

總的來說,MCMC實現起來更加簡單方便,而VB的速度比MCMC來得快,研究表明他們具有差不多相同的效果。所以,對于大量的數據,采用VB是更為明智的選擇。

4 情感分析方法

本文采用的情感分析可以說是一個標準的機器學習的分類問題。目標是給定一條推文,將其分為正向情感、負向情感、中性情感。

預處理

  • POS標注:CMU ArkTweetNLP
  • 字母連續三個相同:替換 “coooooooool”=>“coool”
  • 刪除非英文單詞
  • 刪除URL
  • 刪除@:刪除用戶的提及@username
  • 刪除介詞、停止詞
  • 否定展開:將以"n’t"結尾的單詞進行拆分,如"don’t" 拆分為"do not",這里需要注意對一些詞進行特殊處理,如"can’t"拆分完之后的結果為"can not",而不是"ca not"。
  • 否定處理:從否定詞(如shouldn’t)開始到這個否定詞后的第一個標點(.,?!)之間的單詞,均加入_NEG后綴。如perfect_NEG。 “NEG”后綴

特征提取

文本特征

  • N-grams

    • 1~3元模型
    • 使用出現的次數而非頻率來表示。不僅是因為使用是否出現來表示特征有更好的效果[16],還因為Twitter的文本本身較短,一個短語不太可能在一條推文中重復出現。
  • 感嘆號問號個數

    • 在句子中的感嘆號和問號,往往含有一定的情感。為此,將它作為特征。
  • 字母重復的單詞個數

    • 這是在預處理中對字母重復三次以上單詞進行的計數。字母重復往往表達了一定的情感。
  • 否定的個數

    • 否定詞出現后,句子的極性可能會發生翻轉。為此,把整個句子否定的個數作為一個特征
  • 縮寫詞個數等

  • POS 標注為[‘N’, ‘V’, ‘R’, ‘O’, ‘A’] 個數(名詞、動詞、副詞、代詞、形容詞)

  • 詞典特征(本文使用的情感詞典有:Bing Lius詞庫[39]、MPQA詞庫[40]、NRC Hashtag詞庫和Sentiment140詞庫[42]、以及相應的經過否定處理的詞庫[45])

    • 推文中的單詞在情感字典個數 (即有極性的單詞個數)
    • 推文的 總情感得分:把每個存在于當前字典單詞數相加,到推文的 總情感得分:把每個存在于當前 - 字典單詞數相加,到推文的 總情感得分:把每個存在于當前字典單詞數相加,到推文總分,這個數作為一特征。
    • 推文中單詞最大的正向情感得分和負。
    • 推文中所有正向情感的單詞分數 和以及 所有負向情感單詞的分數和。
    • 最后一個詞的分數
  • 表情特征

    • 推文中正向 情感 和負向的表情個數
    • 最后一個表情的極性是 否為正向

特征選擇

本文 特征選擇主要是針對于 N-grams 特征 的,采用方法如下:

設定min_df(min_df>=0)以及threshold(0 <= threshold <= 1) 對于每個在N-grams的詞: 統計其出現于正向、負向、中性的次數,得到pos_cnt, neg_cnt, neu_cnt,以及出現總數N,然后分別計算 pos = pos_cnt / N neg = neg_cnt / N neu = neu_cnt / N 對于 pos,neg,neu中任一一個大于閾值threshold 并且N > min_df的,保留該詞,否則進行刪除。

上述算法中濾除了低頻的詞,因為這可能是一些拼寫錯誤的詞語;并且,刪除了一些極性不那么明顯的詞,有效的降低了維度。

分類器選擇

在本文中,使用兩個分類器進行對比,他們均使用sklearn提供的接口 。第一個分類器選用SVM線性核分類器,參數設置方面,C = 0.0021,其余均為默認值。第二個分類器是Logistic Regression分類器,其中,設置參數C=0.01105。

在特征選擇上,min_df=5, threshold=0.6。

實驗

  • SemEval(國際上的一個情感分析比賽)訓練數據和測試數據
  • 評價方法采用F-score
  • 對比SemEval2016結果如下

測試集名

5 部分核心代碼

import json from django.http import HttpResponse from django.shortcuts import render from topic.models.TopicTrendsManager import TopicTrendsManager from topic.models.TopicParameterManager import TopicParameterManagerdef index(request):return render(request, 'topic/index.html')# TODO 檢查參數的合法性, and change to post method def stream_trends(request):param_manager = TopicParameterManager(request.GET.items())topic_trends = TopicTrendsManager(param_manager)res = topic_trends.get_result(param_manager)return HttpResponse(json.dumps(res), content_type="application/json")def stop_trends(request):topic_trends = TopicTrendsManager(None)topic_trends.stop()res = {"stop": "stop success"}return HttpResponse(json.dumps(res), content_type="application/json")def text(request):return render(request, 'topic/visualization/result_text.html')def bubble(request):return render(request, 'topic/visualization/result_bubble.html')def treemap(request):return render(request, 'topic/visualization/result_treemap.html')def sunburst(request):return render(request, 'topic/visualization/result_sunburst.html')def funnel(request):return render(request, 'topic/visualization/result_funnel.html')def heatmap(request):return render(request, 'topic/visualization/result_heatmap.html')def hashtags_pie(request):return render(request, 'topic/visualization/result_hashtags_pie.html')def hashtags_histogram(request):return render(request, 'topic/visualization/result_hashtags_histogram.html')def hashtags_timeline(request):return render(request, 'topic/visualization/result_hashtags_timeline.html')

6 最后

總結

以上是生活随笔為你收集整理的毕业设计 基于大数据的社交平台数据爬虫舆情分析可视化系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。