首页 > 其他分享 >南方科技大学院士分析

南方科技大学院士分析

时间:2024-09-08 13:52:06浏览次数:6  
标签:df axes 工程院 院士 科技 li order 南方

网页信息获取分析报告

1.Python获取页面信息

这里需要爬取的是南方科技大学研究生院-师资概况页面,使用的是requests和BeautifulSoup方法

以下是要爬取的页面
南方科技大学研究生院-师资概况

import requests
from bs4 import BeautifulSoup
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import re
# 1.Python获取页面内容

url = "https://www.sustech.edu.cn/zh/faculty/"

response = requests.get(url)
response.encoding = 'utf-8'  
html_content = response.text

soup = BeautifulSoup(html_content, 'html.parser')
print(html_content)
<!DOCTYPE html>
<html lang="zh-CN" class="js svg" WPLANG>
<head>
	<meta charset="UTF-8">
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
				                	<li>
                    	<div class="clearfix fl list2">
                            <a href="/zh/faculties/zhujiankang.html">
                            <div class="left" style="background:url(/uploads/large/2024/04/07113416_99701.png) no-repeat center;"></div>
                            <div class="right">
                                <div class="name">朱健康</div>
                                <div class="p">讲席教授</div>
                                <div class="p2">美国科学院院士</div>
                                <div class="p1">前沿生物技术研究院院长</div>
                                <div class="dep"></div>
                            </div>
                            </a>
                        </div>
                      </li>
												
								<div class="clear"></div>
											<div class="loadmore">
							<div id="show1" class="showmore" style="visibility: visible;"> <a href="/zh/national/index.html">了解更多</a></div>
						</div>
									</ul>
			</div>

		<!----></div>
	</div>

	<script>
		$(function(){
			$('#ul-list li').click(function(){
				var index = $(this).index();
				$('#content').find('.list-main1').eq(index).show().siblings().hide();
			})
			var $one_li = $('#moveOne');    //  获取<ul>节点中第二个<li>元素节点
			var $two_li = $('#jcrc_wrap');    //  获取<ul>节点中第三个<li>元素节点
			$one_li.insertBefore($two_li);    //移动节点

			var $one_li2 = $('.search-name');    //  获取<ul>节点中第二个<li>元素节点
			var $two_li2 = $('#search_wrap');    //  获取<ul>节点中第三个<li>元素节点
			$one_li2.insertBefore($two_li2);    //移动节点
			// $('.teshu7').insertBefore('teshu8');

			var $one_li3 = $('.search-name');    //  获取<ul>节点中第二个<li>元素节点
			var $two_li3 = $('.zw_search');    //  获取<ul>节点中第三个<li>元素节点
			$one_li3.insertBefore($two_li3);    //移动节点

		});
		
	</script>
		</div><!-- #content -->



		<div class="read_more clearfix">
			<ul>
				<li>
					<div class="more_s"></div>
					<a href="#">继续了解>></a>
				</li>
				<li>
					<div class="more_1" style="background-image:url(/static/images/about6.jpg)"></div>
					<a href="/zh/admissions.html">本科招生</a>
				</li>
				<li>
					<div class="more_1" style="background-image:url(/static/images/about7.jpg)"></div>
					<a href="https://talent.sustech.edu.cn/">人才招聘</a>
				</li>
				<li>
					<div class="more_1" style="background-image:url(/static/images/about8.jpg)"></div>
					<a href="/zh/research.html">科研平台</a>
				</li>
			</ul>
		</div>
		
			


	</div><!-- .site-content-contain -->
</div><!-- #page -->


<script type='text/javascript' src='/plugins/js_composer1/assets/js/dist/js_composer_front.min.js?ver=4.11.2.4'></script>


	
			<!-- footer theme-green -->
			<footer class="line_position ">
			
				<div class="footer ">
					
			
					<div class="container ">
						
						<!-- 底部logo -->
						<div class="ft-logo">
							<a href="/"> <img src="/static/newest2-v4/img/icon/ft-logo.png" title="南方科技大学" /> </a>
						</div>
						<!-- 底部logo-end -->
						
						<!-- 底部快速入口 -->
						<div class="ft-menu">
							<ul>
										<li><a href="http://asc.sustech.edu.cn/index/languages/lang/zh.html">行政服务大厅</a></li>
										<li><a href="https://talent.sustech.edu.cn/rsfw/sys/zpglxt/extranet/index.do#/home">人才招聘</a></li>
										<li><a href="http://biddingoffice.sustech.edu.cn/">招标采购</a></li>
										<li><a href="http://career.sustech.edu.cn/">就业信息</a></li>
										<li><a href="/zh/information-open.html" target="_parent">信息公开</a></li>
										<li><a href="/zh/budget.html" target="_parent">预决算公开</a></li>
										<li><a href="/zh/mailbox.html" target="_parent">校长信箱</a></li>
										<li><a href="/zh/contact_us.html" target="_parent">联系我们</a></li>
								
							</ul>
							<div class="clearfix"></div>
						</div>
						
						
						<div class="copyright">
							<p>
								<span>广东省深圳市南山区学苑大道1088号 </span>
							</p>
						</div>
					</div>
				</div>
			</footer>
			<!-- footer-end -->
</script>


</body>
</html>

由网页信息可以看出,里面存在很多规律的信息-院士和教授的介绍,也为我们后面提取内容提供了条件。

2.提取导航栏信息

导航栏信息如下图所示。
南方科技大学研究生院-导航栏

# 2. 提取导航栏信息(导航栏截图如前所示)
a_tags = soup.select('li > a')
# print("a_tags",a_tags)
texts = [a.text for a in a_tags]
print("导航栏信息:\n",texts)
导航栏信息:
 ['学校概况', '治理架构', '组织机构', '现任领导', '历任领导', '大学精神', '大事记', '统计数据', '学校标识', '南科视界', '联系我们', '院系概况', '理学院', '数学系', '物理系', '化学系', '地球与空间科学系', '统计与数据科学系', '工学院', '力学与航空航天工程系', '机械与能源工程系', '材料科学与工程系', '电子与电气工程系', '计算机科学与工程系', '海洋科学与工程系', '生物医学工程系', '环境科学与工程学院', '深港微电子学院', '系统设计与智能制造学院', '生命科学学院', ' 生物系', '基础免疫与微生物学系', '系统生物学系', '化学生物学系', '神经生物学系', '医学院', '南方科技大学伦敦国王学院医学院', '商学院', '人文社会科学学院', '人文科学中心', '社会科学中心暨社会科学高等研究院', '高等教育研究中心', '语言中心', '艺术中心', '未来教育研究中心', '创新创业学院', '创新创意设计学院', '师资概况', '国家项目人才', '省市项目人才', '院系师资', '全部教师列表', '教学概况', '本科教学', '研究生教学', '海外学习', '科研概况', '科研成果', '科研平台', '科研机构', '深圳国家应用数学中心', '深圳国际数学中心(杰曼诺夫数学中心)(筹)', '深圳格拉布斯研究院', '前沿与交叉科学研究院', '南方科技大学-北京大学植物与食品联合研究所', '先进光源科学中心', '深圳可持续发展研究院', '前沿生物技术研究院', '碳中和能源研究院', '纳米科学与应用研究院', '海洋高等研究院', '公共服务平台', '公共分析测试中心', '科学与工程计算中心', '冷冻电镜中心', '实验动物中心', '成果转化', '书院概况', '致仁书院', '树仁书院', '致诚书院', '树德书院', '致新书院', '树礼书院', '交流合作概况', '国内交流合作', '国际交流合作', '联合国教科文组织高等教育创新中心(中国深圳)', '港澳台交流合作', '招生概况', '本科招生', '留学生招生', '研究生招生', '就业', '新时代学习中心', '工会', '团委', '师资概况', '国家项目人才', '省市项目人才', '院系师资', '全部教师列表', '院士', '会士', '百千万人才工程国家级人选', '国家自然科学基金杰出青年基金', '国家自然科学基金优秀青年基金', '享受国务院特殊津贴人员', '继续了解>>', '本科招生', '人才招聘', '科研平台', '行政服务大厅', '人才招聘', '招标采购', '就业信息', '信息公开', '预决算公开', '校长信箱', '联系我们']

3.提取页面信息并分析

我们选择的是当前页面所有院士的信息,其中包括他的个人页面的url,我们将它作进一步爬虫,得到该院士的个人简介,然后合并信息后储存为csv格式,dataframe,便于进一步分析。

# 提取页面信息并分析-当前页面所有院士的信息
div_tage = soup.find_all('div',class_="clearfix fl list2")

# 创建一个空的列表来存储所有的院士信息
professors_info = []
profile_root = "https://www.sustech.edu.cn"

for li in div_tage:
    name = li.find('div', class_='name').text.strip() if li.find('div', class_='name') else None
    title = li.find('div', class_='p').text.strip() if li.find('div', class_='p') else None
    honor = li.find('div', class_='p2').text.strip() if li.find('div', class_='p2') else None
    position = li.find('div', class_='p1').text.strip() if li.find('div', class_='p1') else None
    department = li.find('div', class_='dep').text.strip() if li.find('div', class_='dep') else None
    profile_link = profile_root + li.find('a')['href'] if li.find('a') else None

    if profile_link is not None:
        response = requests.get(profile_link)
        response.encoding = 'utf-8'  
        html_content = response.text
        soup = BeautifulSoup(html_content, 'html.parser')

        # email
        uncleaned_email = soup.find_all("span",class_="font fl")
        email = uncleaned_email[-1].text.strip()
        # Bio
        uncleanedBio = soup.find_all("div",class_="message-right fr")
        Bio =  uncleanedBio[0].text.strip()
    
    # 将每个人的信息作为字典存储
    professors_info.append({
        '姓名': name,
        '职位': title,
        '头衔': honor,
        '职务': position,
        '系别': department,
        "简介":Bio,
        '邮箱':email,
        '链接': profile_link,
    })

df = pd.DataFrame(professors_info)

# 保存一下
df.to_csv('南方科技大学教授信息.csv', index=False)

4.进行院士信息分析

我们将得到的dataframe进行数据预处理后,将“职位”“头衔”“国家”这三列进行可视化分析,由于csv中没有储存教授的所属国别信息,我们粗略的将教授的名字分为中文和外文,中文对应中国,外文对应外国。在实验过程中发现,教授的职位和头衔有意义相同但是写法不同的类别,所以先对一些特定列进行统一。合并头衔中为了控制类别数量,所以将一些荣誉进行了合并(具体合并方法看下方代码),得到结果如下。

# 数据预处理
# 重复意义但不同的词合并成一类
df['职位'] = df['职位'].replace({
    '长期访问杰出教授': '长期杰出访问教授',  # 合并为 '长期杰出访问教授'
    '讲席教授、医学院副院长': '讲席教授'   # 合并为 '讲席教授'
})

# 合并相似的头衔类别
df['头衔'] = df['头衔'].replace({
    # 中国科学院/工程院相关
    '中国科学院院士': '中国科学院/工程院院士',
    '中国工程院院士': '中国科学院/工程院院士',
    '中国科学院外籍院士': '中国科学院/工程院院士',
    '中国科学院院士、美国物理学会会士': '中国科学院/工程院院士',
    '中国工程院外籍院士、加拿大皇家科学院院士、加拿大工程院院士': '中国科学院/工程院院士',

    # 外国科学院/工程院院士及会士
    '欧洲科学院院士': '外国科学院/工程院院士及会士',
    '澳大利亚工程院院士': '外国科学院/工程院院士及会士',
    '德国国家科学与工程院院士': '外国科学院/工程院院士及会士',
    '英国皇家工程院院士、欧洲科学院院士(Academia Europaea)': '外国科学院/工程院院士及会士',
    '欧洲科学院(Academia Europaea)院士,美国物理学会(APS)会士': '外国科学院/工程院院士及会士',
    '俄罗斯工程院外籍院士': '外国科学院/工程院院士及会士',
    '加拿大工程院院士': '外国科学院/工程院院士及会士',
    '日本工程院院士,印度国家科学院院士,欧洲科学院院士': '外国科学院/工程院院士及会士',
    '俄罗斯工程院外籍院士、OSA/SPIE Fellow': '外国科学院/工程院院士及会士',
    '日本工程院外籍院士、IEEE Fellow': '外国科学院/工程院院士及会士',
    '澳大利亚国家工程院外籍院士': '外国科学院/工程院院士及会士',

    # 国际Fellow及相关
    '加拿大工程院院士、IEEE Fellow': '国际Fellow及相关',
    '美国科学院院士': '国际Fellow及相关',
    '乌克兰国家工程院外籍院士、美国骨与矿物质研究学会(ASBMR)会士、国际华人骨科研究学会(ICMRS)候任主席': '国际Fellow及相关',
    '美国国家工程院院士': '国际Fellow及相关',
    '世界艺术与科学学院院士': '国际Fellow及相关',

    # 多重院士及学术头衔
    '图灵奖得主、法国科学院院士、法国国家工程院院士、欧洲科学院院士、美国艺术与科学学院院士、美国国家工程院院士': '多重院士及学术头衔',

    # 特殊荣誉及奖项获得者
    '欧洲科学院院士、国家杰出青年科学基金获得者、国务院特殊津贴专家': '特殊荣誉及奖项获得者',

    # 无头衔
    '无': '无'
})

# 缺失值处理
df = df.apply(lambda x: x.str.strip() if x.dtype == "object" else x)
df.replace('', pd.NA, inplace=True)
df.replace(' ', pd.NA, inplace=True)
df = df.fillna("无")

# 设置字体
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False  

# 通过看教授的名字是中文还是外语来看教授所属国家
def identify_name_language(name):
    if re.search('[\u4e00-\u9fff]', name):
        return 'Chinese'
    else:
        return 'Foreign'

# 添加新列 'Country'
df['Country'] = df['姓名'].apply(identify_name_language)

# 排序将“无”放在最后
country_order = df['Country'].value_counts().index.tolist()
if '无' in country_order:
    country_order.remove('无')
    country_order.append('无')

title_order = df['职位'].value_counts().index.tolist()
if '无' in title_order:
    title_order.remove('无')
    title_order.append('无')

honor_order = df['头衔'].value_counts().index.tolist()
if '无' in honor_order:
    honor_order.remove('无')
    honor_order.append('无')

# 创建 2x3 的子图(两行三列)
fig, axes = plt.subplots(2, 3, figsize=(18, 12))

# 1. 教授的国家分布
sns.countplot(data=df, x='Country', order=country_order, palette='Set2', ax=axes[0, 0])
axes[0, 0].set_title('教授的国家分布')
axes[0, 0].set_xlabel('国家')
axes[0, 0].set_ylabel('计数')
for p in axes[0, 0].patches:
    axes[0, 0].annotate(f'{int(p.get_height())}', 
                        (p.get_x() + p.get_width() / 2., p.get_height()), 
                        ha='center', va='baseline')

axes[0, 0].set_xticks(range(len(country_order)))
axes[0, 0].set_xticklabels(country_order, rotation=45)

# 2. 教授的职位分布
sns.countplot(data=df, x='职位', order=title_order, palette='Set3', ax=axes[0, 1])
axes[0, 1].set_title('教授的职位分布')
axes[0, 1].set_xlabel('职位')
axes[0, 1].set_ylabel('计数')
axes[0, 1].tick_params(axis='x', rotation=45)
for p in axes[0, 1].patches:
    axes[0, 1].annotate(f'{int(p.get_height())}', 
                        (p.get_x() + p.get_width() / 2., p.get_height()), 
                        ha='center', va='baseline')

axes[0, 1].set_xticks(range(len(title_order)))
axes[0, 1].set_xticklabels(title_order, rotation=45)

# 3. 教授的头衔分布
sns.countplot(data=df, x='头衔', order=honor_order, palette='Set1', ax=axes[0, 2])
axes[0, 2].set_title('教授的头衔分布')
axes[0, 2].set_xlabel('头衔')
axes[0, 2].set_ylabel('计数')

# 设置x坐标标签
axes[0, 2].set_xticks(range(len(honor_order)))
axes[0, 2].set_xticklabels(honor_order, rotation=45, ha='right')

# 标签间距调整
plt.setp(axes[0, 2].get_xticklabels(), rotation=45, ha='right')

# 移除未使用的子图(如果有)
for ax in axes.flat[3:]:
    fig.delaxes(ax)

# 调整布局
plt.tight_layout()
plt.show()

png

根据初步的EDA分析,可以得出以下结论:

南方科技大学的院士团队以中国籍院士为主,但相较于其他学校,外国教授的比例也相对较大,显示出学校在国际化发展方面的突出特点。从教授的职位分布来看,讲席教授占据了最大的比例,其次是长期杰出访问教授和兼职教授,体现了学校在吸引高端人才方面的多样化策略。在教授的头衔分布上,大部分教授是中国科学院或中国工程院院士,约有四分之一是外国科学院或工程院院士及会士,这反映了学校在吸引具有国际声誉的学者方面的显著成就。此外,还包括了国际Fellow及相关荣誉获得者、特殊荣誉及学术头衔获得者,这进一步展示了南方科技大学在全球范围内吸引优秀学者的实力。

南方科技大学研究生院成功汇聚了众多中外顶尖学者,一些院士不仅在国内外的学术界享有很高声望,还获得了诸多荣誉,是一所很好的学校。

需要注意的是,这只是初步的数据挖掘,且没有包括南方科技大学所有的院士,具有一定的局限性,未来,可以考虑将南方科技大学数据科学系和计算机科学与技术系的所有导师做一个综合分析,把他们的简介做一个聚类来看该学校该专业的导师的主要研究方法,再结合研究生导师评价网做一个综合的导师推荐引擎,可以为以后升学提供参考,未来会考虑进一步完善这个作业。

谢谢!

标签:df,axes,工程院,院士,科技,li,order,南方
From: https://www.cnblogs.com/cucliai/p/18402806

相关文章

  • 在亚马逊云科技上利用Graviton4代芯片构建高性能Java应用(上篇)
    简介在AI迅猛发展的时代,芯片算力对于模型性能起到了至关重要的作用。一款能够同时兼具高性能和低成本的芯片,能够帮助开发者快速构建性能稳定的生成式AI应用,同时降低开发成本。今天小李哥将介绍亚马逊推出的4代高性能计算处理器Gravition,带大家了解如何利用Graviton芯片为Java......
  • 魔珐科技受邀参与外滩大会:以3D数字人AIGC产品赋能大资管行业,重塑金融服务边界
    在人工智能浪潮的推动下,金融行业正经历着前所未有的场景革命。2024年Inclusion·外滩大会作为行业交流的盛会,汇聚了众多学者、专家及企业领袖,共同探讨AI技术在多领域的深度应用,特别是其在金融行业中的革新潜力。在外滩大会上,魔珐科技以3D数字人AIGC全栈技术及产品解决方案亮相......
  • Axure打造科技感数据可视化大屏原型
    在数字化浪潮的推动下,数据已成为企业决策不可或缺的核心驱动力。面对海量且复杂的数据集,如何高效解读并转化为洞见,是企业面临的重大挑战。数据可视化,尤其是科技感十足的大屏展示,不仅为企业提供了直观的数据洞察,还赋予了数据生命力和故事性。本文将深入探讨如何利用Axure这一强......
  • 恒创科技:最小化服务器存储容量的技巧
    最小化服务器存储容量的需求通常来自于希望降低硬件成本、节省能源以及提高系统性能的考虑。以下是一些实现这一目标的技巧:1.评估您的存储需求在开始优化服务器存储之前,您需要清楚了解实际需要和使用的空间大小。您可以使用磁盘使用情况分析器或TreeSize等工具扫......
  • 万界星空科技MES系统生产过程控制功能详解
    在现代制造业的快速发展中,生产过程的高效、精准控制成为企业提升竞争力的关键。万界星空科技作为行业领先的智能制造解决方案提供商,其MES(制造执行系统)系统在生产过程控制方面展现出了卓越的性能和广泛的应用价值。MES系统概述制造执行系统(MES)是一个全面的动态软件系统,用于监视、跟......
  • 【IEEE出版 | 院士杰青领衔】第五届大数据、人工智能与软件工程国际研讨会(ICBASE 2024
    第五届大数据、人工智能与软件工程国际研讨会(ICBASE2024)将于2024年09月20-22日在中国温州隆重举行。会议主要围绕大数据、人工智能与软件工程等研究领域展开讨论。会议旨在为从事大数据、人工智能与软件工程研究的专家学者、工程技术人员、技术研发人员提供一个共享科研......
  • Adobe又出黑科技!5秒Ai绘画出图? Stable Diffusion来了!
    据所知2024有两款Ai神器爆火一款是大名鼎鼎的ChatGPT另外一款则是Ai智能绘图软件—StableDiffusion本期重点介绍StableDiffusion尤其最近抖音小红书刷屏的AI人物大部分都是这款软件做的▼StableDiffusion是以文本生成图像的AI工具,也是目前唯一一款能部署在......
  • 澎峰科技受邀参加全球AI芯片峰会,探讨大模型推理引擎PerfXLM面向RISC-V的移植和优化
    2024全球AI芯片峰会,9月6-7日北京开启!9月6-7日,2024全球AI芯片峰会(GACS2024)将在北京辽宁大厦盛大举办。全球AI芯片峰会至今已成功举办六届,现已成为国内规模最大、规格最高、影响力最强的产业峰会之一。本届峰会由芯东西与智猩猩共同主办,以「智算纪元共筑芯路」为主题。峰会采......
  • 科技型中小企业怎么做
    在当今快速发展的科技时代,科技型中小企业扮演着越来越重要的角色。这些企业不仅推动了技术创新,还为经济增长和社会进步做出了巨大贡献。那么,科技型中小企业应如何制定并执行其发展战略呢?1.明确定位与战略规划对于任何企业,明确的定位是成功的关键。科技型中小企业首先需要明......
  • 用亚马逊云科技Graviton高性能/低耗能处理器构建AI向量数据库(上篇)
    简介:今天小李哥将介绍亚马逊推出的云平台4代高性能计算处理器Gravition,并利用该处理器构建生成式AI向量数据库。利用向量数据库,我们可以开发和构建多样化的生成式AI应用,如RAG知识库,特定领域知识的聊天机器人等。我们今天将手把手带大家在亚马逊云科技上,搭建一个目前大热的Milv......