2025.2.18
今天为开学考试做准备,建民主任给出的要求如下:
作业内容: 1、 学习构建北京市政百姓信件分析实战案例,完成 (1) 采集北京市政百姓信件内容; (2) 编写MapReduce程序清洗信件内容数据; (3) 利用HiveSql语句离线分析信件内容数据; (4) 利用Sqoop导出Hive分析数据到MySQL库; (5) 开发JavaWeb+ECharts 完成信件数据图表展示过程。 2、 根据上述所学知识完成一个工程项目: (1) 项目名称:信息化领域热词分类分析及解释 (2) 功能设计: 1) 数据采集:要求从定期自动从网络中爬取信息领域的相关热 词; 2) 数据清洗:对热词信息进行数据清洗,并采用自动分类技术 生成信息领域热词目录,; 3) 热词解释:针对每个热词名词自动添加中文解释(参照百度 百科或维基百科); 4) 热词引用:并对近期引用热词的文章或新闻进行标记,生成 超链接目录,用户可以点击访问; 5) 数据可视化展示: ① 用字符云或热词图进行可视化展示; ② 用关系图标识热词之间的紧密程度。 6) 数据报告:可将所有热词目录和名词解释生成WORD版报告 形式导出。 报告参考样式如下图所示: 作业要求: 1、 提交信息化领域热词分类分析及解释软件(微信小程序或APP更佳),要求 生成软件的安装程序; 2、 提交结果报告一份(电子版); 3、 提交截至日期:2019-1-10。 常用自然语言处理和分析相关技术简介: (1)自动分词技术 以词典为基础,规则与统计相结合的分词技术,有效解决切分歧义。综合运用 基于概率统计的语言模型方法,分词准确性达到99%。 (2)自动关键词和自动摘要技术 对采集到的网络信息,自动摘取相关关键字,并生成摘要,并与快速浏览与检 索。 (3)全文检索技术 全文检索将传统的全文检索技术与最新的 WEB 搜索技术相结合,大大提升检索 引擎的性能指标。还融合多种技术,提供丰富的检索手段以及同义词等智能检索方式。 (4)自动分类技术 基于内容对经过双重过滤处理后的重要舆情自动分类,无需人工干预,准确率 达到95%以上。先设置分类关键词,每一个关键词都设置一个相应的优先级分值。对 收集到的文章内容进行分析,分别对标题和内容进行匹配,统计匹配的次数,然后根 据设定好的关键字匹配模型对每个关键字进行分值计算。分值超过一定分值的都将自 动处理所对应的处理,匹配分值最高的关键字就自动分类。 (5)自动聚类技术 基于相似性算法的自动聚类技术,自动对海量的无规则文档进行归类,把内容 相近的文档归为一类,并自动为其生成主题词,为确定类目名称提供方便。 (6)相似性排重技术 采用“文章相似性技术”根据文档内容的匹配程度确定是否重复,比利用网页 标题和大小等规则判断具有更强的准确性、实用性以及运行效率。采用中文分词技术 对文章关键字比较计算,得出文章相似度,相似度高于 0.75 以上的文章系统默认处 理为“已处理”,无需再进行任何操作,相似度位于 0.5-0.75 之间的相似转载文章 需要用户在页面进行再次确认,确保文章无漏处理。
看了一下,我可能需要使用使用python爬虫爬取一些网络数据,然后以文件形式保存到本地并导入到虚拟机中,然后导入到hive数据库并导出到MySQL后进行网页和安卓的相关开发,任务量很大,应该是完成不了的,明天能做多少做多少吧。
今天进行python的网络爬取尝试并将爬取的内容保存到文件中,相关代码如下:
import xlrd # 用于读取 Excel 文件 import xlsxwriter # 用于写入 Excel 文件 import requests # 用于网络请求 from bs4 import BeautifulSoup # 用于解析网页 import jieba.analyse # 用于关键词提取 # 1. 读取 Hotwork.xls 文件中的文章标题 def read_titles_from_excel(file_path): """ 从 Excel 文件中读取文章标题 """ titles = [] try: workbook = xlrd.open_workbook(file_path) sheet = workbook.sheet_by_index(0) # 假设标题在第一个工作表中 for row_idx in range(sheet.nrows): if row_idx == 0: # 跳过标题行 continue titles.append(sheet.cell(row_idx, 0).value.strip()) # 假设标题在第一列 print(f"成功读取 {len(titles)} 个标题") return titles except Exception as e: print(f"读取 Excel 文件失败: {str(e)}") return [] # 2. 提取信息领域热词 def extract_hotwords(titles, topK=50): """ 使用 TF-IDF 算法提取信息领域热词 """ hotwords = jieba.analyse.extract_tags(" ".join(titles), topK=topK, withWeight=True) print(f"成功提取 {len(hotwords)} 个热词") return hotwords # 3. 获取百科解释(百度百科或维基百科) def get_baidu_baike_summary(keyword): """ 从百度百科获取关键词的解释 """ url = f"https://baike.baidu.com/item/{keyword}" response = requests.get(url) if response.status_code == 200: soup = BeautifulSoup(response.content, "html.parser") # 提取百度百科的摘要内容 summary = soup.find("div", class_="lemma-summary") if summary: return summary.get_text().strip() return None def get_wiki_summary(keyword): """ 从维基百科获取关键词的解释 """ url = f"https://zh.wikipedia.org/wiki/{keyword}" response = requests.get(url) if response.status_code == 200: soup = BeautifulSoup(response.content, "html.parser") # 提取维基百科的摘要内容 summary = soup.find("div", class_="mw-parser-output").find("p") if summary: return summary.get_text().strip() return None def get_baike_summary(keyword): """ 获取百科解释的综合函数 """ print(f"正在查询百科解释: {keyword}") summary = get_baidu_baike_summary(keyword) if summary: return summary else: return get_wiki_summary(keyword) # 4. 保存结果到 Excel 文件 def save_to_excel(hotwords_with_summary, output_file): """ 将热词及其百科解释保存到 Excel 文件 """ workbook = xlsxwriter.Workbook(output_file) worksheet = workbook.add_worksheet() # 设置表头 headers = ["热词", "权重", "百科解释"] for col, header in enumerate(headers): worksheet.write(0, col, header) # 写入数据 for row, (hotword, weight) in enumerate(hotwords_with_summary, start=1): worksheet.write(row, 0, hotword) worksheet.write(row, 1, weight) # 获取百科解释 summary = get_baike_summary(hotword) worksheet.write(row, 2, summary if summary else "未找到解释") workbook.close() print(f"结果已保存到 {output_file}") # 主程序 if __name__ == "__main__": # 配置 INPUT_EXCEL = "Hotword.xls" OUTPUT_EXCEL = "Hotwords_with_summary.xlsx" TOP_K = 50 # 提取前 50 个热词 # 1. 读取文章标题 titles = read_titles_from_excel(INPUT_EXCEL) # 2. 提取热词 hotwords = extract_hotwords(titles, TOP_K) # 3. 保存热词及其百科解释到 Excel save_to_excel(hotwords, OUTPUT_EXCEL)
爬取的数据示例:

 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号