【NLP輿情分析】基于python微博輿情分析可視化系統(flask+pandas+echarts) 視頻教程 - 微博輿情分析實現

大家好,我是java1234_小鋒老師,最近寫了一套【NLP輿情分析】基于python微博輿情分析可視化系統(flask+pandas+echarts)視頻教程,持續更新中,計劃月底更新完,感謝支持。今天講解微博輿情分析實現

視頻在線地址:

2026版【NLP輿情分析】基于python微博輿情分析可視化系統(flask+pandas+echarts+爬蟲) 視頻教程 (火爆連載更新中..)_嗶哩嗶哩_bilibili

課程簡介:
?

本課程采用主流的Python技術棧實現,Mysql8數據庫,Flask后端,Pandas數據分析,前端可視化圖表采用echarts,以及requests庫,snowNLP進行情感分析,詞頻統計,包括大量的數據統計及分析技巧。

實現了,用戶登錄,注冊,爬取微博帖子和評論信息,進行了熱詞統計以及輿情分析,以及基于echarts實現了數據可視化,包括微博文章分析,微博IP分析,微博評論分析,微博輿情分析。最后也基于wordcloud庫實現了詞云圖,包括微博內容詞云圖,微博評論詞云圖,微博評論用戶詞云圖等功能。

微博輿情分析實現

我們來實現下輿情分析功能。主要是分頁顯示微博數據,以及最后一列要進行情感分析。

articleData.html靜態模版文件我們放到templates下:

{% extends 'base.html' %}
{% block title %}微博輿情分析{% endblock %}
{% block content %}<div class="container-fluid"><div class="row"><div class="col-lg-12"><div class="card"><div class="card-header d-flex justify-content-between"><div class="header-title"><h4 class="card-title">微博輿情分析</h4></div><div class="header-action"><i data-toggle="collapse" data-target="#datatable-1" aria-expanded="false"><svg width="20" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24"stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"></path></svg></i></div></div><div class="card-body"><div class="collapse" id="datatable-1"><div class="card"><kbd class="bg-dark"><pre id="bootstrap-datatables"class="text-white"><code>
&#x3C;table id=&#x22;datatable&#x22; class=&#x22;table data-table table-striped table-bordered&#x22; &#x3E;&#x3C;thead&#x3E;&#x3C;tr&#x3E;&#x3C;th&#x3E;Name&#x3C;/th&#x3E;&#x3C;th&#x3E;Position&#x3C;/th&#x3E;&#x3C;th&#x3E;Office&#x3C;/th&#x3E;&#x3C;th&#x3E;Age&#x3C;/th&#x3E;&#x3C;th&#x3E;Start date&#x3C;/th&#x3E;&#x3C;th&#x3E;Salary&#x3C;/th&#x3E;&#x3C;/tr&#x3E;&#x3C;/thead&#x3E;&#x3C;tbody&#x3E;&#x3C;tr&#x3E;&#x3C;td&#x3E;Tiger Nixon&#x3C;/td&#x3E;&#x3C;td&#x3E;System Architect&#x3C;/td&#x3E;&#x3C;td&#x3E;Edinburgh&#x3C;/td&#x3E;&#x3C;td&#x3E;61&#x3C;/td&#x3E;&#x3C;td&#x3E;2011/04/25&#x3C;/td&#x3E;&#x3C;td&#x3E;$320,800&#x3C;/td&#x3E;&#x3C;/tr&#x3E;&#x3C;tr&#x3E;&#x3C;td&#x3E;Garrett Winters&#x3C;/td&#x3E;&#x3C;td&#x3E;Accountant&#x3C;/td&#x3E;&#x3C;td&#x3E;Tokyo&#x3C;/td&#x3E;&#x3C;td&#x3E;63&#x3C;/td&#x3E;&#x3C;td&#x3E;2011/07/25&#x3C;/td&#x3E;&#x3C;td&#x3E;$170,750&#x3C;/td&#x3E;&#x3C;/tr&#x3E;&#x3C;tr&#x3E;&#x3C;td&#x3E;Ashton Cox&#x3C;/td&#x3E;&#x3C;td&#x3E;Junior Technical Author&#x3C;/td&#x3E;&#x3C;td&#x3E;San Francisco&#x3C;/td&#x3E;&#x3C;td&#x3E;66&#x3C;/td&#x3E;&#x3C;td&#x3E;2009/01/12&#x3C;/td&#x3E;&#x3C;td&#x3E;$86,000&#x3C;/td&#x3E;&#x3C;/tr&#x3E;&#x3C;tr&#x3E;&#x3C;td&#x3E;Cedric Kelly&#x3C;/td&#x3E;&#x3C;td&#x3E;Senior Javascript Developer&#x3C;/td&#x3E;&#x3C;td&#x3E;Edinburgh&#x3C;/td&#x3E;&#x3C;td&#x3E;22&#x3C;/td&#x3E;&#x3C;td&#x3E;2012/03/29&#x3C;/td&#x3E;&#x3C;td&#x3E;$433,060&#x3C;/td&#x3E;&#x3C;/tr&#x3E;&#x3C;tr&#x3E;&#x3C;td&#x3E;Airi Satou&#x3C;/td&#x3E;&#x3C;td&#x3E;Accountant&#x3C;/td&#x3E;&#x3C;td&#x3E;Tokyo&#x3C;/td&#x3E;&#x3C;td&#x3E;33&#x3C;/td&#x3E;&#x3C;td&#x3E;2008/11/28&#x3C;/td&#x3E;&#x3C;td&#x3E;$162,700&#x3C;/td&#x3E;&#x3C;/tr&#x3E;&#x3C;tr&#x3E;&#x3C;td&#x3E;Brielle Williamson&#x3C;/td&#x3E;&#x3C;td&#x3E;Integration Specialist&#x3C;/td&#x3E;&#x3C;td&#x3E;New York&#x3C;/td&#x3E;&#x3C;td&#x3E;61&#x3C;/td&#x3E;&#x3C;td&#x3E;2012/12/02&#x3C;/td&#x3E;&#x3C;td&#x3E;$372,000&#x3C;/td&#x3E;&#x3C;/tr&#x3E;&#x3C;tr&#x3E;&#x3C;td&#x3E;Herrod Chandler&#x3C;/td&#x3E;&#x3C;td&#x3E;Sales Assistant&#x3C;/td&#x3E;&#x3C;td&#x3E;San Francisco&#x3C;/td&#x3E;&#x3C;td&#x3E;59&#x3C;/td&#x3E;&#x3C;td&#x3E;2012/08/06&#x3C;/td&#x3E;&#x3C;td&#x3E;$137,500&#x3C;/td&#x3E;&#x3C;/tr&#x3E;&#x3C;tr&#x3E;&#x3C;td&#x3E;Rhona Davidson&#x3C;/td&#x3E;&#x3C;td&#x3E;Integration Specialist&#x3C;/td&#x3E;&#x3C;td&#x3E;Tokyo&#x3C;/td&#x3E;&#x3C;td&#x3E;55&#x3C;/td&#x3E;&#x3C;td&#x3E;2010/10/14&#x3C;/td&#x3E;&#x3C;td&#x3E;$327,900&#x3C;/td&#x3E;&#x3C;/tr&#x3E;&#x3C;tr&#x3E;&#x3C;td&#x3E;Colleen Hurst&#x3C;/td&#x3E;&#x3C;td&#x3E;Javascript Developer&#x3C;/td&#x3E;&#x3C;td&#x3E;San Francisco&#x3C;/td&#x3E;&#x3C;td&#x3E;39&#x3C;/td&#x3E;&#x3C;td&#x3E;2009/09/15&#x3C;/td&#x3E;&#x3C;td&#x3E;$205,500&#x3C;/td&#x3E;&#x3C;/tr&#x3E;&#x3C;tr&#x3E;&#x3C;td&#x3E;Sonya Frost&#x3C;/td&#x3E;&#x3C;td&#x3E;Software Engineer&#x3C;/td&#x3E;&#x3C;td&#x3E;Edinburgh&#x3C;/td&#x3E;&#x3C;td&#x3E;23&#x3C;/td&#x3E;&#x3C;td&#x3E;2008/12/13&#x3C;/td&#x3E;&#x3C;td&#x3E;$103,600&#x3C;/td&#x3E;&#x3C;/tr&#x3E;&#x3C;tr&#x3E;&#x3C;td&#x3E;Jena Gaines&#x3C;/td&#x3E;&#x3C;td&#x3E;Office Manager&#x3C;/td&#x3E;&#x3C;td&#x3E;London&#x3C;/td&#x3E;&#x3C;td&#x3E;30&#x3C;/td&#x3E;&#x3C;td&#x3E;2008/12/19&#x3C;/td&#x3E;&#x3C;td&#x3E;$90,560&#x3C;/td&#x3E;&#x3C;/tr&#x3E;&#x3C;tr&#x3E;&#x3C;td&#x3E;Quinn Flynn&#x3C;/td&#x3E;&#x3C;td&#x3E;Support Lead&#x3C;/td&#x3E;&#x3C;td&#x3E;Edinburgh&#x3C;/td&#x3E;&#x3C;td&#x3E;22&#x3C;/td&#x3E;&#x3C;td&#x3E;2013/03/03&#x3C;/td&#x3E;&#x3C;td&#x3E;$342,000&#x3C;/td&#x3E;&#x3C;/tr&#x3E;&#x3C;tr&#x3E;&#x3C;td&#x3E;Charde Marshall&#x3C;/td&#x3E;&#x3C;td&#x3E;Regional Director&#x3C;/td&#x3E;&#x3C;td&#x3E;San Francisco&#x3C;/td&#x3E;&#x3C;td&#x3E;36&#x3C;/td&#x3E;&#x3C;td&#x3E;2008/10/16&#x3C;/td&#x3E;&#x3C;td&#x3E;$470,600&#x3C;/td&#x3E;&#x3C;/tr&#x3E;&#x3C;tr&#x3E;&#x3C;td&#x3E;Haley Kennedy&#x3C;/td&#x3E;&#x3C;td&#x3E;Senior Marketing Designer&#x3C;/td&#x3E;&#x3C;td&#x3E;London&#x3C;/td&#x3E;&#x3C;td&#x3E;43&#x3C;/td&#x3E;&#x3C;td&#x3E;2012/12/18&#x3C;/td&#x3E;&#x3C;td&#x3E;$313,500&#x3C;/td&#x3E;&#x3C;/tr&#x3E;&#x3C;tr&#x3E;&#x3C;td&#x3E;Tatyana Fitzpatrick&#x3C;/td&#x3E;&#x3C;td&#x3E;Regional Director&#x3C;/td&#x3E;&#x3C;td&#x3E;London&#x3C;/td&#x3E;&#x3C;td&#x3E;19&#x3C;/td&#x3E;&#x3C;td&#x3E;2010/03/17&#x3C;/td&#x3E;&#x3C;td&#x3E;$385,750&#x3C;/td&#x3E;&#x3C;/tr&#x3E;&#x3C;tr&#x3E;&#x3C;td&#x3E;Michael Silva&#x3C;/td&#x3E;&#x3C;td&#x3E;Marketing Designer&#x3C;/td&#x3E;&#x3C;td&#x3E;London&#x3C;/td&#x3E;&#x3C;td&#x3E;66&#x3C;/td&#x3E;&#x3C;td&#x3E;2012/11/27&#x3C;/td&#x3E;&#x3C;td&#x3E;$198,500&#x3C;/td&#x3E;&#x3C;/tr&#x3E;&#x3C;tr&#x3E;&#x3C;td&#x3E;Paul Byrd&#x3C;/td&#x3E;&#x3C;td&#x3E;Chief Financial Officer (CFO)&#x3C;/td&#x3E;&#x3C;td&#x3E;New York&#x3C;/td&#x3E;&#x3C;td&#x3E;64&#x3C;/td&#x3E;&#x3C;td&#x3E;2010/06/09&#x3C;/td&#x3E;&#x3C;td&#x3E;$725,000&#x3C;/td&#x3E;&#x3C;/tr&#x3E;&#x3C;tr&#x3E;&#x3C;td&#x3E;Gloria Little&#x3C;/td&#x3E;&#x3C;td&#x3E;Systems Administrator&#x3C;/td&#x3E;&#x3C;td&#x3E;New York&#x3C;/td&#x3E;&#x3C;td&#x3E;59&#x3C;/td&#x3E;&#x3C;td&#x3E;2009/04/10&#x3C;/td&#x3E;&#x3C;td&#x3E;$237,500&#x3C;/td&#x3E;&#x3C;/tr&#x3E;&#x3C;tr&#x3E;&#x3C;td&#x3E;Bradley Greer&#x3C;/td&#x3E;&#x3C;td&#x3E;Software Engineer&#x3C;/td&#x3E;&#x3C;td&#x3E;London&#x3C;/td&#x3E;&#x3C;td&#x3E;41&#x3C;/td&#x3E;&#x3C;td&#x3E;2012/10/13&#x3C;/td&#x3E;&#x3C;td&#x3E;$132,000&#x3C;/td&#x3E;&#x3C;/tr&#x3E;&#x3C;tr&#x3E;&#x3C;td&#x3E;Dai Rios&#x3C;/td&#x3E;&#x3C;td&#x3E;Personnel Lead&#x3C;/td&#x3E;&#x3C;td&#x3E;Edinburgh&#x3C;/td&#x3E;&#x3C;td&#x3E;35&#x3C;/td&#x3E;&#x3C;td&#x3E;2012/09/26&#x3C;/td&#x3E;&#x3C;td&#x3E;$217,500&#x3C;/td&#x3E;&#x3C;/tr&#x3E;
&#x3C;/table&#x3E;
</code></pre></kbd></div></div><div class="table-responsive"><table id="datatable-1" class="table data-table table-striped table-bordered"><thead><tr><th>文章ID</th><th>文章內容</th><th>文章作者</th><th>用戶IP</th><th>類型</th><th>發布時間</th><th>轉發量</th><th>評論量</th><th>點贊量</th><th>情感分析</th></tr></thead><tbody>{% for article in articleList %}<tr><td>{{ article[0] }}</td><td><a href="{{ article[8] }}" target="_blank">{{ article[1] }}</a></td><td style="width:100px"><a href="{{ article[11] }}"target="_blank">{{ article[10] }}</a></td><td style="width:100px">{{ article[5] }}</td><td style="width:50px">{{ article[7] }}</td><td class="text-center" style="width:100px">{{ article[6] }}</td><td class="text-center" style="width:60px">{{ article[2] }}💖</td><td class="text-center" style="width:60px">{{ article[3] }}👆</td><td class="text-center" style="width:60px">{{ article[4] }}👍</td><td class="text-center" style="width:80px">{% if article[-1] == '正面' %}<span class="text-success">{{ article[-1] }}</span>{% elif article[-1] == '負面' %}<span class="text-danger">{{ article[-1] }}</span>{% else %}<span class="text-info">{{ article[-1] }}</span>{% endif %}</td></tr>{% endfor %}</tbody></table></div></div></div>
?</div></div></div>
{% endblock %}

articleDao.py實現下獲取所有微博數據:

def getAllArticle():"""獲取所有帖子信息:return:"""con = Nonetry:con = dbUtil.getCon()cursor = con.cursor()sql = "select * from t_article"cursor.execute(sql)return cursor.fetchall()except Exception as e:print(e)con.rollback()return Nonefinally:dbUtil.closeCon(con)

page.py里實現路由業務方法articleData:

@pb.route('/articleData')
def articleData():"""微博輿情分析:return:"""articleOldList = articleDao.getAllArticle()articleNewList = []for article in articleOldList:article = list(article)# 情感分析sentiments = ''stc = SnowNLP(article[1]).sentimentsif stc > 0.6:sentiments = '正面'elif stc < 0.2:sentiments = '負面'else:sentiments = '中性'article.append(sentiments)articleNewList.append(article)return render_template('articleData.html', articleList=articleNewList)

運行顯示:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/93214.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/93214.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/93214.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【C++】手搓一個STL風格的vector容器

TOC(手搓一個STL風格的vector容器) 手搓一個STL風格的vector容器 github地址 有夢想的電信狗 0. 前言&#xff1a;動態數組的工程實踐 ? 在C標準庫中&#xff0c;vector容器作為最核心的序列式容器&#xff0c;其設計融合了動態數組的高效性與安全性。本文將通過完整實現…

24. 了解過 webp 嗎

總結 一種圖片格式 一、什么是 WebP&#xff1f; WebP&#xff08;發音為 “weppy”&#xff09;是由 Google 推出的一種現代圖片格式&#xff0c;支持有損壓縮和無損壓縮&#xff0c;旨在提供更小的文件體積和更高質量的圖像顯示。 它兼容常見的圖片功能&#xff0c;如&#…

【Unity筆記】Unity Camera.cullingMask 使用指南:Layer 精準控制、XR 多視圖與性能提升

Unity Camera.cullingMask 使用指南&#xff1a;Layer 精準控制、XR 多視圖與性能提升 關鍵詞&#xff1a;Unity、Camera、Culling Mask、Layer 控制、XR 渲染分離、UI 顯隱、性能優化 特別說明&#xff1a; 本文為近期項目所遇問題的總結&#xff0c;僅純文字記錄&#xff0c;…

攜帶參數的表單文件上傳 axios, SpringBoot

頁面上的表單如上圖, 點擊確定按鈕需要把參數統一傳給后端.前端代碼:表單的提交方法const submit async () > {const formData new FormData();formData.append("bookName", bookForm.value.bookName);formData.append("author", bookForm.value.auth…

黑馬JavaWeb【復習到哪更新到哪】

登錄認證&#xff08;復習Javaweb的登錄校驗&#xff09; 登錄功能 思路就是loginController->service層->mapper層&#xff0c;從數據庫中查找username和password是否和前端用戶提交的表單內容一致&#xff0c;一致就登錄成功&#xff0c;否則就返回登錄失敗的信息。 登…

NVMe高速傳輸之擺脫XDMA設計21:PCIe請求模塊設計(下)

在接收到請求總線接口的請求事務后&#xff0c;當請求類型的值為0時&#xff0c;表示通過PCIE硬核的配置管理接口發送請求&#xff0c;由于請求接口的接口和時序與配置管理接口基本一致&#xff0c;因此此時直接將請求接口信號驅動到配置管理接口完成請求的發送&#xff0c;請求…

機器學習sklearn:不純度與決策樹構建

不純度與決策樹構建不純度概念&#xff1a;決策樹通過不純度指標來選擇最佳分割節點和分枝方式不純度衡量節點中樣本類別的混雜程度不純度越低&#xff0c;節點中樣本類別越純凈&#xff0c;擬合效果越好常用不純度指標&#xff1a;信息熵(Entropy)&#xff1a;基于信息論的概念…

rk356x IR紅外發射與接收之NEC協議

紅外接收紅外接收頭解碼器&#xff08;紅外信號解碼&#xff0c;主要是NEC解碼&#xff09;紅外發射器紅外發光二極管晶振NEC編碼組成共32位&#xff08;4bit&#xff09;&#xff1a;由8位用戶碼1 8位用戶碼2 8位命令碼 8位命令碼反碼有時會存在按鍵一直按下的一幀信息&…

C++算法之單調棧

C算法中的單調棧&#xff1a;從入門到實戰指南 大家好&#xff01;今天我們來聊聊C算法中一個超級實用的工具——單調棧。別被名字嚇到&#xff0c;它其實很簡單&#xff0c;就像排隊買奶茶一樣&#xff1a;隊伍總是從矮到高&#xff08;或從高到矮&#xff09;排得整整齊齊&a…

React入門指南——指北指南(第二節)

React 實踐:創建你的第一個待辦事項列表 在前面的章節中,我們學習了 React 的核心概念(組件、Props、State 等)。本節將通過一個實際案例——創建待辦事項列表(Todo List),幫助你鞏固這些概念,并掌握 React 中處理用戶交互、動態數據的基本方法。 案例目標 我們將構…

WAIC看點:可交付AI登場,場景智能、專屬知識將兌現下一代AI價值

7月28日&#xff0c;為期三天的2025世界人工智能大會&#xff08;WAIC 2025&#xff09;在上海落下帷幕。作為全球 AI 領域最受關注的盛會之一&#xff0c;今年 WAIC 聚焦 AI 關鍵命題&#xff0c;圍繞大模型與智能體應用、算力新基建及大數據、智能終端與具身智能、AI金融、AI…

設計模式(十一)結構型:外觀模式詳解

設計模式&#xff08;十一&#xff09;結構型&#xff1a;外觀模式詳解外觀模式&#xff08;Facade Pattern&#xff09;是 GoF 23 種設計模式中的結構型模式之一&#xff0c;其核心價值在于為一個復雜的子系統提供一個統一、簡化的高層接口&#xff0c;從而降低客戶端與子系統…

接口測試核心概念與實踐指南

核心概念什么是接口&#xff1f;軟件不同部分之間進行通信和數據交換的約定或契約。定義了&#xff1a;請求方 (Client/Consumer) 如何調用&#xff08;方法、URL、參數&#xff09;。提供方 (Server/Provider) 如何響應&#xff08;數據結構、狀態碼&#xff09;。雙方需要遵循…

【NLP輿情分析】基于python微博輿情分析可視化系統(flask+pandas+echarts) 視頻教程 - 熱詞數量分析日期統計功能實現

大家好&#xff0c;我是java1234_小鋒老師&#xff0c;最近寫了一套【NLP輿情分析】基于python微博輿情分析可視化系統(flaskpandasecharts)視頻教程&#xff0c;持續更新中&#xff0c;計劃月底更新完&#xff0c;感謝支持。今天講解熱詞數量分析日期統計功能實現 視頻在線地…

ICPC 2024 網絡賽(I)

M. Find the Easiest Problem 題目大意 給定所有的提交記錄&#xff0c;找到通過隊伍最多且字典序最小的題目。 解題思路 按題意模擬即可 代碼實現 #include <bits/stdc.h>using i64 long long;int main() {std::ios::sync_with_stdio(false);std::cin.tie(0);std…

【快捷指令】ios/macos快捷指令如何調用api接口(json請求例子)

一、步驟 之前已經寫了一個【n8n】使用 n8n 創建插入數據到mysql的api&#xff08;圖解步驟&#xff09;博客,感興趣的可以看一下. 流程&#xff1a; 快捷指令調用api—開源工作流n8n上設置個快速寫數據庫的工作流 這樣就實現了記錄體重的一個快捷指令 二、步驟說明 1、…

「源力覺醒 創作者計劃」_文心大模型4.5系列開源模型,意味著什么?對開發者、對行業生態有何影響?

前言&#xff1a;哈嘍&#xff0c;大家好&#xff0c;今天給大家分享一篇文章&#xff01;并提供具體代碼幫助大家深入理解&#xff0c;徹底掌握&#xff01;創作不易&#xff0c;如果能幫助到大家或者給大家一些靈感和啟發&#xff0c;歡迎收藏關注哦 &#x1f495; 目錄「源力…

CanMV-K230 AI學習筆記系列

在學習了一段時間CanMV-K230后&#xff0c;感覺雖然可以直接調用復雜的模型&#xff0c;但是很多環節不是很明白&#xff0c;因此希望能夠從基礎的模型開始逐漸深入學習。 下面為已經完成的一些筆記及計劃&#xff1a; 1 CanMV K230使用經驗分享 這個是剛開始學習K230時&#…

EtherCAT IGH別名(Alias)

EtherCAT 中的 Alias 是一個 16 位的數值&#xff0c;用于在拓撲結構中唯一標識從站&#xff08;除 Position 外的輔助定位方式&#xff09;IGH查看別名 “0:0”, 第一個0是別名(alias)&#xff0c;后面是位置(position) sudo ethercat slave -p 0 0 0:0 PREOP SV660_1Axi…

墨者:通過sqlmap解決SQL手工注入漏洞測試(PostgreSQL數據庫)

使用Kali Linux中的sqlmap工具進行PostgreSQL手工注入漏洞測試實戰 前言 SQL注入是Web安全中最常見的漏洞之一。本文將演示如何使用Kali Linux中的sqlmap工具對PostgreSQL數據庫進行手工注入測試&#xff0c;通過實戰案例幫助安全研究人員更好地理解漏洞原理和測試方法。 測…