0
点赞
收藏
分享

微信扫一扫

基于大数据的科研热点分析与挖掘系统

1. 项目简介

        科研活动的快速发展产生了大量的学术文献,如何从这些文献中提炼出有价值的科研热点和趋势成为了一个重要的问题。本项目旨在开发一个基于大数据的科研热点分析可视化系统,采集人工智能领域 ACL、CL、EMNLP 近几年顶级会议论文,利用自然语言处理技术和机器学习算法,对科研文献进行分析,并通过可视化的方式展示科研热点和发展趋势,帮助科研工作者更好地把握研究方向。

        B站系统演示视频:基于大数据的科研热点分析与挖掘系统_哔哩哔哩_bilibili

基于大数据的科研热点分析与挖掘系统

2. 学术论文采集

        利用 requests 工具采集 ACL、CL、EMNLP、CONLL、SEMEVAL 等顶级人工智能会议2016-2024年近9年发表的学术论文:

for conference in ['acl', 'cl', 'emnlp', 'ws', 'conll', 'iwslt', 'semeval']:
start_year_month = datetime(year=2016, month=1, day=1)
year_month = start_year_month
now_year_month_str = datetime.now().strftime("%Y%m")
year_month_str = year_month.strftime("%Y")

while year_month_str <= now_year_month_str:
url = base_url.format(conference, year_month_str)
print('-->', url)

resp = requests.get(url)
resp.encoding = 'utf8'
soup = BeautifulSoup(resp.text, 'lxml')
papers_blocks = soup.find_all(name='p', class_='align-items-stretch')

if papers_blocks is None or len(papers_blocks) == 0:
break

for block in papers_blocks:
next_tag = block.find_next_sibling()
if next_tag is None or next_tag.name != 'div':
continue

strong = block.find(name='strong')
# 标题
title = strong.text.strip()
# 论文链接
paper_link = "https://aclanthology.org" + strong.a['href']
# 论文摘要

# 省略部分代码

year_month = year_month + relativedelta(years=1)
year_month_str = year_month.strftime("%Y")
time.sleep(1)

3. LDA主题建模

        LDA(隐狄利克雷分配)是一种常用的无监督机器学习算法,用于从文档集合中发现潜在的主题结构。首先初始化一个空列表 paper_abstracts 用于存储处理后的论文摘要。接着,遍历每篇论文的摘要,对其进行分词处理,过滤掉停用词和长度小于等于4个字符的单词,并将处理后的单词列表存储在 paper_abstracts 中。然后,使用 gensim.corpora.Dictionary 创建一个词典对象 dictionary,将每个唯一单词映射到一个整数ID,并将文档转换为词袋表示形式(Document-Term Matrix)。随后,导入 gensim.models.ldamodel.LdaModel 类,并使用该类初始化LDA模型,设置必要的参数,包括文档-词矩阵 doc_term_matrix、词典对象 dictionary、主题数量(例如8个主题)、随机种子(以保证结果的可复现性)、每次处理的文档数量以及遍历整个语料库的次数。通过训练LDA模型,最终得到每个主题的单词分布和每篇文档的主题分布。

# 初始化一个空列表,用于存储处理后的论文摘要
paper_abstracts = []

# 遍历每篇论文的摘要
for paper in papers:
# 取出每篇论文的第一个元素(假设papers是一个包含多个元素的列表)
paper = paper[0]

# 分词处理:将摘要字符串按空格分割成单词列表,并过滤掉停用词和长度小于等于4的单词
tokens = [token for token in paper.split(' ') if token not in STOPWORDS and len(token) > 4]

# 将处理后的单词列表添加到paper_abstracts列表中
paper_abstracts.append(tokens)

# 创建一个词典对象,用于映射单词到唯一的整数ID
dictionary = corpora.Dictionary(paper_abstracts)

# 将文档转换为词袋表示形式,即每个文档对应一个词频向量
doc_term_matrix = [dictionary.doc2bow(rev) for rev in paper_abstracts]

# 导入LDA模型类
LDA = gensim.models.ldamodel.LdaModel

# 构建LDA模型
lda_model = LDA(corpus=doc_term_matrix[:10000], id2word=dictionary, num_topics=8, random_state=100,
chunksize=200, passes=100)

4. 基于大数据的科研热点分析与挖掘系统

4.1 系统首页

4.2 顶会论文分类

4.3 学术热点分析

4.4 学术热点搜索

4.5 学术研究主题建模

 5. 结论

        科研活动的快速发展产生了大量的学术文献,如何从这些文献中提炼出有价值的科研热点和趋势成为了一个重要的问题。本项目旨在开发一个基于大数据的科研热点分析可视化系统,采集人工智能领域 ACL、CL、EMNLP 近几年顶级会议论文,利用自然语言处理技术和机器学习算法,对科研文献进行分析,并通过可视化的方式展示科研热点和发展趋势,帮助科研工作者更好地把握研究方向。

举报

相关推荐

大数据挖掘与分析

0 条评论