酷代码 AI
菜单
全部AI  /  AI写代码神器
服务商

从网站“https://so.gushiwen.cn/gushi/tangshi.aspx”中采集唐诗三百首的内容。具体要求如下:1. 采集数据完整,内容规范(即不包含特殊符号,如换行符、制表符等)。2. 结果数据保存为txt格式的文本文件,每一行包含一首古诗,具体包括信息:诗类型、诗题目、诗内容、诗作者;3. 代码逻辑结构清晰,语法规范。任务二 文本特征向量化 基于任务一的结果数据,针对“诗内容”,完成文本特征向量化(tf-idf值)输出。具体要求如下:1. 数据完整,内容规范(即数值化);2. 结果数据保存为txt格式的文本文件,每一行包含一首古诗,具体包括信息:诗类型、诗题目、诗内容、诗作者、文本特征向量(tf-idf值, 多列);3. 代码逻辑结构清晰,语法规范。任务三 数据统计分析 基于任务一的结果数据,完成诗词统计。具体要求如下:1. 统计每种诗类型的诗数量,结果数据保存为excel文件;2. 统计每个作者的诗数量,结果数据保存为excel文件;3. 对诗内容进行中文分词,并输出词云图;

以下是根据您提供的要求完成的代码示例: 任务一:采集唐诗三百首的内容 ```python import requests from bs4 import BeautifulSoup # 定义函数用于请求网页并解析数据 def get_poems(): url = "https://so.gushiwen.cn/gushi/tangshi.aspx" response = requests.get(url) response.encoding = "utf-8" soup = BeautifulSoup(response.text, "html.parser") # 获取所有的诗列表 poem_list = soup.find_all("div", class_="typecont") poems = [] # 遍历诗列表,提取相关信息 for poem in poem_list: # 获取诗类型 poem_type = poem.find_previous_sibling("div", class_="bookMl").find("span").text # 获取诗题目 poem_title = poem.find("strong").text # 获取诗内容,去除换行符和制表符 poem_content = poem.find("span", style=False).text.replace("\n", "").replace("\t", "") # 获取诗作者 poem_author = poem.find_all("p")[1].find_all("a")[1].text # 将诗信息添加到列表中 poems.append([poem_type, poem_title, poem_content, poem_author]) return poems # 调用函数获取唐诗三百首的内容 poems_data = get_poems() # 将数据保存到txt文件 with open("poems.txt", "w", encoding="utf-8") as f: for poem in poems_data: f.write("\t".join(poem)) f.write("\n") ``` 任务二:文本特征向量化 ```python from sklearn.feature_extraction.text import TfidfVectorizer poem_contents = [poem[2] for poem in poems_data] # 创建tf-idf向量化对象 vectorizer = TfidfVectorizer() # 对诗内容进行向量化处理 X = vectorizer.fit_transform(poem_contents) # 获取特征词列表 feature_names = vectorizer.get_feature_names() # 将结果保存到txt文件 with open("tfidf_values.txt", "w", encoding="utf-8") as f: for i in range(len(poems_data)): tfidf_values = X[i].toarray().tolist()[0] poem_info = poems_data[i] poem_info.append(tfidf_values) f.write("\t".join(str(x) for x in poem_info)) f.write("\n") ``` 任务三:数据统计分析 ```python import pandas as pd import jieba from collections import Counter from wordcloud import WordCloud # 统计每种诗类型的数量 poem_types = [poem[0] for poem in poems_data] type_counts = Counter(poem_types) type_df = pd.DataFrame(list(type_counts.items()), columns=["诗类型", "数量"]) type_df.to_excel("poem_type_counts.xlsx", index=False) # 统计每个作者的数量 poem_authors = [poem[3] for poem in poems_data] author_counts = Counter(poem_authors) author_df = pd.DataFrame(list(author_counts.items()), columns=["作者", "数量"]) author_df.to_excel("poem_author_counts.xlsx", index=False) # 对诗内容进行中文分词 poem_contents = [poem[2] for poem in poems_data] text = " ".join(poem_contents) words = " ".join(jieba.cut(text)) # 生成词云图 wordcloud = WordCloud(font_path="simhei.ttf", width=800, height=600).generate(words) wordcloud.to_file("wordcloud.png") ``` 以上代码使用了requests库和BeautifulSoup库来请求和解析网页内容,使用了scikit-learn库的TfidfVectorizer类来进行文本特征向量化,使用了pandas库和jieba库进行数据统计分析,使用了wordcloud库生成词云图。部分步骤需要安装相应的库。 [2024-06-23 11:15:17 | AI写代码神器 | 2078点数解答]

热门AI查看更多
“AI写代码神器”擅长各种语言编程、解释代码、注解补充。 在这里填写你的问题。如:写出java冒泡排序算法。
一个入口掌握所有。 在这输入任何问题,或者要AI输出的内容。
将阿拉伯数字转为人明币大写,如:数字1000转换为壹仟。
AI生成爆文标题,能够快速创作出极具吸引力的标题,促使短视频、自媒体文章的点击率与阅读量迅猛攀升。 此处填写一个原始标题,如:一般人怎样打理自身的社交圈?
AI生成新闻评论。 在这里填入新闻内容。
AI生成内容摘要。 在此处填入需要生成摘要的内容,还可以输入4000字。
AI生成主持词,擅长团建、年会、婚礼、节日等场合的主持词编写。 在这里填入主持场景,如:运动会
AI快速生成周报、月报、日报、年终总结等各类总结报告。 在这里简单输入工作目标、指标、成果,没有任何格式或特殊需求。如:计划年销售业绩1000万,实际完成800万。
输入一个字,显示以这个字开头的歇后语
输入一个字,显示以这个字开头的成语
极速在线生成证件照
极速更换证件照红、蓝、白底色
实用工具查看更多
阿里云99元2核2G服务器/年,199元2核4G服务器随心买。
今日油价 [生活类]
全国各省油价,实时更新。
图片互转base64 [开发类]
将图片转换为Base64编码,可以让你很方便地在没有上传文件的条件下将图片插入其它的网页、编辑器中。 这对于一些小的图片是极为方便的,因为你不需要再去寻找一个保存图片的地方。
时间转换器 [开发类]
时间戳转换器,时间、毫秒、秒、倒计时查看
录入名字、电话、邮箱、个人介绍信息,生成二维码,可通过此码扫码添加微信联系人
数独游戏 [娱乐类]
数独(Sudoku)是经典的9x9数字逻辑谜题。在有81个小格的九宫格内,玩家依据初始数字推理填入1 - 9的数字,要保证每行、每列以及每个3x3宫格中的数字都不重复。这款在线数独游戏有多难度可选,没有头绪时,可以点开答案看一下哦^_^
经典推箱子 [娱乐类]
基于H5的经典推箱子小游戏,锻炼玩家的眼力和反应力,非常不错
AI摸鱼五子棋 [娱乐类]
基于H5的五子棋人机对练,锻炼玩家的眼力和反应力,非常不错
相关提问