import jieba import jieba.analyse import wordcloud from wordcloud import WordCloud text1=open("text1.txt", "r", encoding="utf-8") line1= text1.read() LIST1=jieba.analyse.extract_tags(line1,10) text2=open("text2.txt", "r", encoding="utf-8") line2= text2.read() LIST2=jieba.analyse.extract_tags(line2,10) a=[x for x in LIST1 if x in LIST2] wc = WordCloud(background_color='white', font_path='D:\Program Files (x86)\Douyu\DYTool\data\Font\内海字体.ttf', width=1000, height=800, ) wc.generate(str(a)) wc.to_file("10.png")
时间: 2024-01-03 20:03:54 浏览: 379
这段代码的作用是读取两个文本文件(text1.txt和text2.txt),使用 jieba.analyse 模块对两个文本进行关键词提取,提取出的关键词数量为10个,并将提取出来的两个文本的关键词列表进行交集操作,得到两个文本共同的关键词列表。然后使用 WordCloud 模块生成词云图,词云图的背景为白色,字体采用了内海字体,大小为1000x800,最后将生成的词云图保存为10.png文件。
相关问题
import pickle from os import path import jieba import jieba.analyse import matplotlib.pyplot as plt from wordcloud import WordCloud,STOPWORDS,ImageColorGenerator import sys sys.path.append('C:\\Users\\李肖\\PycharmProjects\\pythonProject\\text.txt') with open('C:\\Users\\李肖\\PycharmProjects\\pythonProject\\text.txt','r',encoding='utf-8')as fin: text=fin.read() background_Image=plt.imread('main.jpg') print('加载图片成功!') '''设置词云样式''' wc = WordCloud(background_color="black", mask=background_Image, font_path='msyh.ttc', max_words=200, stopwords=STOPWORDS, max_font_size=50, random_state=30) wc.generate_from_text(text) print('开始加载文本') plt.imshow(wc) plt.axis('off') plt.show() d=path.dirname(__file__) wc.to_file(path.join(d,"h11.jpg")) print('生成词云成功!')不能运行
这段代码有几个问题,可以尝试以下修改:
1. 将第一行代码改为`import pickle, os`,这是因为你同时引入了`pickle`和`os`两个模块,需要用逗号分隔开。
2. 在第5行代码中,`sys.path.append()`应该加入的是文件所在目录,而不是文件本身,可以将其修改为`sys.path.append('C:\\Users\\李肖\\PycharmProjects\\pythonProject')`。
3. 第17行代码中,`plt.imshow(wc)`和`plt.axis('off')`之间需要加一个换行符,否则会出现一个警告。
修改后的代码如下:
```
import pickle, os
from os import path
import jieba
import jieba.analyse
import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
import sys
sys.path.append('C:\\Users\\李肖\\PycharmProjects\\pythonProject')
with open('text.txt', 'r', encoding='utf-8') as fin:
text = fin.read()
background_Image = plt.imread('main.jpg')
print('加载图片成功!')
'''设置词云样式'''
wc = WordCloud(background_color="black",
mask=background_Image,
font_path='msyh.ttc',
max_words=200,
stopwords=STOPWORDS,
max_font_size=50,
random_state=30)
wc.generate_from_text(text)
print('开始加载文本')
plt.imshow(wc)
plt.axis('off')
plt.show()
d = path.dirname(__file__)
wc.to_file(path.join(d, "h11.jpg"))
print('生成词云成功!')
```
ky = result['关键词'].replace("[","\n").replace(']','\n').replace("'"," ").replace(",", " ") ky = ky.to_string() keywords = result['关键词'].astype(str) keywords ={k: v.encode('utf-8').decode('utf-8') for k, v in keywords.items()} file = open('1.txt',mode='w',encoding='utf-8') file.write(ky) file.close() jieba.load_userdict("1.txt") title = result['标题'].astype(str) title = {t: l.encode('utf-8').decode('utf-8') for t, l in title.items()} titles = " ".join(title.values()) keywordss = " ".join(keywords.values()) dictionary = jieba.cut(ky) print(",".join(dictionary)) text_analysis = jieba.analyse.extract_tags(keywordss,topK = 100, withWeight=True) title_analysis = jieba.analyse.extract_tags(titles,topK = 100, withWeight=True)
你的代码看起来基本上是正确的,但是有一些地方需要注意。
首先,在使用`replace()`方法替换字符串中的特定字符时,注意将结果重新赋值给`ky`变量,以便下一步的处理。
其次,你可以直接使用`ky.to_string()`将`ky`转换为一个字符串。不需要再为`ky`调用`to_string()`方法。
在使用`jieba.load_userdict("1.txt")`加载自定义词典之前,请确保已经正确地将关键词写入到名为`1.txt`的文件中。
以下是修改后的示例代码:
```python
ky = result['关键词'].replace("[","\n").replace(']','\n').replace("'"," ").replace(",", " ")
ky = ky.to_string()
file = open('1.txt', mode='w', encoding='utf-8')
file.write(ky)
file.close()
import jieba
jieba.load_userdict("1.txt")
keywords = result['关键词'].astype(str)
keywords ={k: v.encode('utf-8').decode('utf-8') for k, v in keywords.items()}
titles = " ".join(result['标题'].astype(str).values)
dictionary = jieba.cut(ky)
print(",".join(dictionary))
text_analysis = jieba.analyse.extract_tags(" ".join(keywords.values()), topK=100, withWeight=True)
title_analysis = jieba.analyse.extract_tags(titles, topK=100, withWeight=True)
```
请确保你已经导入了需要使用的库,并根据实际情况修改代码中的变量名和文件名。另外,如果你使用了`jieba.analyse.extract_tags()`方法,请确保已经正确安装并导入了`jieba.analyse`模块。
阅读全文