利用51joball.xlsx数据,使用Pyecharts绘制去掉非技术名词,只显示英文专业名词的词云图,但是源数据中有非专业的英文名称
时间: 2024-02-28 11:53:57 浏览: 124
腾和企业网站管理系统(多风格) v9.6
好的,我可以帮你解决这个问题。首先,我们需要对数据进行清洗,去掉非技术名词和非专业的英文名称。可以使用Python中的nltk库进行词性标注,然后筛选出名词和专业名词。代码如下:
```python
import pandas as pd
import nltk
from nltk.corpus import wordnet
from nltk.tokenize import word_tokenize
from nltk.tag import pos_tag
from pyecharts.charts import WordCloud
# 加载数据
data = pd.read_excel('51joball.xlsx')
# 合并职位名称和职位描述
text = ' '.join(data['job_name'].tolist() + data['job_detail'].tolist())
# 定义筛选函数
def is_noun(tag):
return tag.startswith('NN')
def is_special_noun(word):
synsets = wordnet.synsets(word)
for synset in synsets:
if 'profession' in synset.lexname():
return True
return False
# 分词并词性标注
tokens = word_tokenize(text)
tags = pos_tag(tokens)
# 筛选名词和专业名词
nouns = [word for word, tag in tags if is_noun(tag) and is_special_noun(word)]
# 统计词频
word_counts = {}
for word in nouns:
if word not in word_counts:
word_counts[word] = 1
else:
word_counts[word] += 1
# 绘制词云图
wordcloud = WordCloud()
wordcloud.add(series_name="", data_pair=list(word_counts.items()), word_size_range=[10, 100])
wordcloud.render("wordcloud.html")
```
这段代码会生成一个名为`wordcloud.html`的词云图文件。你可以用浏览器打开该文件查看词云图。
阅读全文