import jieba from openpyxl import load_workbook from pyecharts.charts import WordCloud wb= load_workbook("D:\\行业信息.xlsx") ws=wb["行业信息"] def info_analysis( ws, col): ''' 返回xlsx工作表中某一列分词后的统计结果 :param ws:工作表 :param col:工作表中的某列 :return:分词字典,键值分别表示分词及其出现的次数 ''' col_list=[ item.value for item in ws[ col][1:]]#表示工作表 ws 第 col 列的数据,并去掉表头 col_str=",". join( col_list) #将列表合并成字符串 words= jieba.lcut( col_str) #对字符串进行分词 lcut_dict={} #用于统计分词的字典 for word in words: if Len(word) ==1: #分词长度为1时不予统计 continue else: lcut_dict[word]= lcut_dict.get(word,0)+1 require_dict= info_analysis( ws,"E") #对招聘要求进行分词统计 welfare_dict= info_analysis( ws,"F") #对企业福利进行分词统计 require_wc=(WordCloud( ) #绘制词云图存储在require. html中 .add("招聘要求",require_dict.items( )) .render("D:\\require.html") ) welfare_wc=(WordCloud( ) #绘制词云图存储在welfare. html中 .add("企业福利",welfare_dict.items( )) .render("D:\\welfare.html") ) print("词云图绘制成功") return lcut_dict 报错
时间: 2024-02-23 08:56:54 浏览: 82
在这段代码中,有两个函数调用 info_analysis() 是在函数体内部,这会导致递归调用,从而导致函数无限调用自己,最终导致栈溢出报错。您需要将这两个函数调用放到函数外部,或者将 info_analysis() 函数定义在外部。此外,代码中还有一些语法错误,例如缺少冒号、大小写拼写错误等,请您检查一下代码。
相关问题
解释这个代码import openpyxl, jieba, wordcloud import matplotlib.pyplot as plt from PIL import Image import numpy as np wb = openpyxl.load_workbook('豆瓣短评爬虫_电影、图书_哆啦A梦 伴我同行2.xlsx') ws = wb.active content = '' for row in range(2, ws.max_row+1): content += ws.cell(row, 7).value t_1 = jieba.lcut(content) t_2 = ''.join(t_1) f_1 = open('stopwords.txt', 'r', encoding='utf-8') s_list = [] for i in f_1.readlines(): s_list.append(i.strip()) for line in s_list: t_2 = t_2.replace(line, '') photo = np.array(Image.open('皮卡丘.jpg')) tu = wordcloud.WordCloud(font_path='STKAITI.TTF', colormap='cool', background_color='white', mask=photo) tu.generate(t_2) tu.to_file('tu2.jpg') plt.imshow(tu) plt.axis('off') plt.show()
这段代码是一个Python程序,它使用了openpyxl、jieba、wordcloud、matplotlib.pyplot和PIL等库。程序的功能是读取一个名为“豆瓣短评爬虫_电影、图书_哆啦A梦 伴我同行2.xlsx”的Excel文件,提取其中第7列的内容,并使用jieba库进行分词处理。接着,程序读取一个名为“stopwords.txt”的文本文件,将其中的停用词去除。最后,程序使用wordcloud库生成一个名为“tu2.jpg”的词云图,并使用matplotlib.pyplot库将其显示出来。
import requestsfrom bs4 import BeautifulSoupimport jiebafrom wordcloud import WordCloudimport matplotlib.pyplot as plturl = 'https://www.gushiwen.org/gushi/tangshi.aspx'response = requests.get(url)html = response.textsoup = BeautifulSoup(html, 'html.parser')links = soup.select('.bookMl a')poem_links = [link['href'] for link in links]poems = []for link in poem_links: poem_url = 'https://www.gushiwen.org{}'.format(link) poem_response = requests.get(poem_url) poem_html = poem_response.text poem_soup = BeautifulSoup(poem_html, 'html.parser') poem_content = poem_soup.select_one('.contson').text.strip() poems.append(poem_content)text = ''.join(poems)words = jieba.cut(text)wordcloud = WordCloud(font_path='msyh.ttc').generate(' '.join(words))plt.imshow(wordcloud, interpolation='bilinear')plt.axis('off')plt.show()
这段代码是爬取古诗文网的唐诗,然后使用jieba分词和wordcloud制作词云图。具体地,首先使用requests库获取唐诗页面的HTML代码,然后使用BeautifulSoup库解析HTML代码,获取所有唐诗的链接。接着,遍历每一个唐诗的链接并请求该链接,获取唐诗的HTML代码,使用BeautifulSoup库解析HTML代码,获取唐诗的内容。最后,将所有唐诗的内容连接起来,使用jieba库分词,生成词云图并使用matplotlib.pyplot库展示。需要注意的是,为了能够正确地显示中文,需要指定字体文件的路径。
阅读全文