数据分析
统计洛杉矶旅游地区的词频:景点词和酒店词
数据源:携程 网站的文本
数据分析:
统计词频(python语言)
用词云展示结果(R语言)
先看结果:
旅游景点的词频
旅游酒店的词频
- 统计酒店名和景点名出现次数
建立一个字典(数据类型),key为酒店/景点的名字,value为出现次数。用sort函数进行排序,保存文件为csv格式,以及json格式。整理成文档报告形式。
1. 数据抓取 (数据源)
1.1爬取携程网站游记
该网站一共有238张页面,每个页面9个游记标题简介,每个标题简介,对应一个游记文本。编写代码爬取每个文本数据,并分别保存为一个文本文档。
1.2编写代码的总体思路
在此页面,有分页机制,共有238张页面,用一个for循环控制页面,一个for循环控制每个页面的简介列表。列表中有9个简介,每个简介下面都会有一个url,该url对应该简介的网页,此网页中的文本就是爬取的内容。爬取文本后,保存为一个文档。
代码:
import pandas.io.json
import requests
from bs4 import BeautifulSoup
z = 1
def save_to_file(file_name, contents):
fh = open(file_name, 'w')
fh.write(contents)
fh.close()
def getNewsDetail(url):
global z
z += 1
#result={}
res = requests.get(url)
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text, 'html.parser')
#result['article'] = ''.join([p.text.strip() for p in soup.select('.ctd_content')[:-1]])
#a ='hhhh'
a = ''.join([p.text.strip() for p in soup.select('.ctd_content')])
name = 'xc{}.txt'
tx = name.format(z)
save_to_file(tx, a)
#n += 1
#df=pandas.DataFrame(a)
print(z)
#print(type(a))
#lis.append(a)
#f = open('i.txt', 'wb')
#f.write(''.join([p.text.strip() for p in soup.select('.ctd_content')[:-1]]))
#f.close()
#l.append()
#return result
def parseListLinks(urls):
#results=[]
res = requests.get(urls)
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text, 'html.parser')
for n in soup.select('a[class="journal-item cf"]'):
#results.append(getNewsDetail('http://you.ctrip.com' + n['href']))
getNewsDetail('http://you.ctrip.com' + n['href'])
#return results
seedurl = 'http://you.ctrip.com/travels/losangeles250/t3-p{}.html'
#li = []
for i in range(1, 238):
url = seedurl.format(i)
parseListLinks(url)
#df=pandas.DataFrame(lis)
#df
#xc=parseListLinks(url)
#li.extend(xc)
#print(li)
结果生成2142个文档。
2数据预处理
处理工具jieba分词,用jieba分词处理分别处理2142个文本文档,因为酒店名称和景点名称都是由名词,或者多个名词组成的,直接用jiaba系统自带字典,选出每个文本中所有名词,处理后所有文档,保存为一个文档。
代码:
import jieba.analyse
import jieba.posseg
from sklearn import feature_extraction
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import CountVectorizer
#词性标注,读取文件
def cut_news(n):
global sum
global sums
na= 'xc{}.txt'
op = na.format(n)
with open(op, 'r')as f:
for line in f:
seg = jieba.posseg.cut(line.strip()) #jieba分词
#print("/".join(seg))
for i in seg:
if i.flag =='nt' or i.flag =='ns'or i.flag =='nst' or i.flag =='n':#l.append(i.word,i.flag)
#print(i.word,i.flag)
# segs = "/".join(seg)
sum += i.word
sums= sum +'\n'
#sums=sum+'\n'
#print(sum)
return sums
# jieba分词器,通过词频获取关键词
def jieba_keywords(news: object) -> object:
keywords = jieba.analyse.extract_tags(news, topK=100)
print(keywords)
def save_to_file(file_name, contents):
fh = open(file_name, 'w')
fh.write(contents)
fh.close()
if __name__ == '__main__':
#new = read_news()
#jieba_keywords(new)
print('\n')
#jieba_keywords(s)
z=0
for z in range(1,11):
cut_news(z)
name = 'tiqu{}.txt'
tx = name.format(z)
save_to_file(tx, sums)
#tfidf_keywords(tx)
#tfidf_keywords('news.txt')
生成结果的部分文档内容:
图文纽约携程朋友事婚礼地点洛杉矶南加州人纽约行程纽约洛杉矶天洛杉矶小伙伴洛杉矶热门景点故地重游感觉洛杉矶行程规划圣地亚哥洛杉矶圣地亚哥心心念念薯片岩石婚礼风情记忆行程洛杉矶圣地亚哥婚礼玻璃教堂婚礼玻璃教堂晚宴游轮符号含义图片景点餐馆酒店目录项游记实用信息时候废话预告片预告片机票花费行程酒店时间顺序预告片预告片星光大道化身脑残粉比山庄目的洛杉矶夜景好莱坞薯片岩石胆山顶大地日落悬崖日落情人中途岛航空母舰博物馆战争美丽圣地亚哥战争人间情感玻璃教堂美丽海岸线人美国民宿西班牙风情小屋海滩南加海风印象两极化洛杉矶美国美国顶级豪宅富人区街流浪汉洛杉矶代表美国美国化城市气候宜人洛杉矶典型加州气候纽约洛杉矶人们短裤问题温度衣物随身带外套空调温度温差洛杉矶航班航空公司洛杉矶航线飞洛杉矶飞小时北京洛杉矶广州洛杉矶上海洛杉矶航空公司机上餐食中国胃机组人员机票个人经验美国机票时间工作日概率下单机票价格价格下单机票小时私家经验美国网站机票小时内全款政策下单条款小时政策人性化美国航空机票美国机票费用航空航空美国本土航空公司国人航空公司飞机硬件设施行李额美国航空公司行李额度典型西南航空箱子箱子航空购票私家经验航空行李额度购票价格价格基本额度价格箱子额度例子航空航班价格额度箱子价格箱子额度箱子价格美航空美航空全球性航空公司客流量个人经验航空情况机龄公司机票航空公司票价航空公司官网程机票航空公司票价额度返程机票航空公司票价额度票价价格美国东西严格控制行李空间机箱书包机场纽约机场机场机场时间登机口距离机场误机机场免税店时间美国航班建议小时机场小时机场大门建议时间机场大门手机航班美国机场航班上二维码纸质手机电量登机口节约时间机场前提办理行李柜台办理纸质航空公司柜台信息办理机票人工柜台排队行李建议人工柜台排队浪费时间机场纽约机场机场线航站楼长岛铁路纽约地铁标记箭头机场线洛杉矶机场洛杉矶机场洛杉矶国际机场洛杉矶国际机场机场美国航班机场私人飞机市区轨道交通机场巴士轨道交通绿线市区市区巴士公交巴士星光大道好莱坞区域机场租车公司小时营业时间租车公司基本
3 建立jieba分词的用户字典,包括景点、酒店
3.1分别爬取携程网站的和景点名,建立jieba分词的用户字典
Jieba分词系统的自带字典是汉语字典来对文本进行分词,标注。所以,要提取酒店,景点等专有名词,首先建立用户字典。用户字典的格式,每一行为:专有名词空格数字空格用字母表示的标签,例如:好莱坞20 jd。文件格式为文本文档。为了获得酒店和景点的数据,爬取携程网站的景点和酒店。
3.1先爬取景点文本,自作景点字典
该网页共有25页,每页含有一个列表,每个列表含有15个景点,一个for循环控制25页,一个for循环控制列表,对于每个简介,提取出景点名称,把所有景点名称+空格+20+jd+换行符,保存到一个文档中。
代码:
import pandas.io.json
import requests
from bs4 import BeautifulSoup
z = 1
sum = ''
def save_to_file(file_name, contents):
fh = open(file_name, 'w')
fh.write(contents)
fh.close()
def getNewsDetail(url):
global sum
#z += 1
#result={}
res = requests.get(url)
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text, 'html.parser')
#result['article'] = ''.join([p.text.strip() for p in soup.select('.ctd_content')[:-1]])
#a ='hhhh'
#a = ''.join([p.text.strip() for p in soup.select('.ctd_content')])
a = soup.select('h1')[0].text
sum += a +' '+'20'+' '+'jd'+'\n'
#name = 'tiqu0.txt'
#tx = name.format(z)
#save_to_file("dict.txt", a)
#n += 1
#df=pandas.DataFrame(a)
#print(a)
#print(type(a))
#lis.append(a)
#f = open('i.txt', 'wb')
#f.write(''.join([p.text.strip() for p in soup.select('.ctd_content')[:-1]]))
#f.close()
#l.append()
#return result
def parseListLinks(urls):
global sum
z=0
res = requests.get(urls)
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text, 'html.parser')
for n in soup.select('.cn_tit'):
#print(n.text)
s1 = n.text
#print(soup.select('.en_tit')[0].text)
#第二个soupselect,不受for循环第一个select控制,引入变量z
s2 =soup.select('.en_tit')[z].text
#print(soup.select('.en_tit')[0].text)
#print(n.text.rstrip(soup.select('.en_tit')[0].text))
print(s1.rstrip(s2))
z += 1
a=s2
#a = s1.rstrip(s2)
if a != '':
sum += a +' '+'20'+' '+'jd'+'\n'
print(sum)
#children=n.children
#print(n.children[0])
#print(n.text-n.children)
#print(n['href'])
#getNewsDetail(n['href'])
#sum += n.text+'\n'
#name = 'xczi{}.txt'
#tx = name.format(z)
#print(sum)
save_to_file("dict2.txt", sum)
#results.append(getNewsDetail('http://you.ctrip.com' + n['href']))
#getNewsDetail('http://you.ctrip.com' + n['href'])
#return results
seedurl = 'http://travel.qunar.com/p-cs310189-luoshanji-jiudian-1-{}'
#li = []
for i in range(1, 49):
url = seedurl.format(i)
parseListLinks(url)
#df=pandas.DataFrame(lis)
#df
#xc=parseListLinks(url)
#li.extend(xc)
#print(li)
3.2 爬取酒店名称数据
同样过程爬取酒店名称数据并建立酒店的用户字典
爬取酒店建立字典代码:
import pandas.io.json
import requests
import re
from bs4 import BeautifulSoup
z = 1
sum = ''
def save_to_file(file_name, contents):
fh = open(file_name, 'w')
fh.write(contents)
fh.close()
def getNewsDetail(url):
global sum
#z += 1
#result={}
res = requests.get(url)
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text, 'html.parser')
#result['article'] = ''.join([p.text.strip() for p in soup.select('.ctd_content')[:-1]])
#a ='hhhh'
#a = ''.join([p.text.strip() for p in soup.select('.ctd_content')])
a = soup.select('h1')[0].text
sum += a +' '+'20'+' '+'jd'+'\n'
#name = 'tiqu0.txt'
#tx = name.format(z)
#save_to_file("dict.txt", a)
#n += 1
#df=pandas.DataFrame(a)
#print(a)
#print(type(a))
#lis.append(a)
#f = open('i.txt', 'wb')
#f.write(''.join([p.text.strip() for p in soup.select('.ctd_content')[:-1]]))
#f.close()
#l.append()
#return result
def parseListLinks(urls):
global sum
z=0
res = requests.get(urls)
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text, 'html.parser')
for n in soup.select('.cn_tit'):
#print(n.text)
#截取中文字符串,剔除英文字符
reChinese = re.compile('[\u4e00-\u9fa5]+')
teststr = n.text
#'测试awk测试123测试11'
b = reChinese.findall(teststr)
a = ''.join(b)
print(a)
#s1 = n.text
#print(soup.select('.en_tit')[0].text)
#第二个soupselect,不受for循环第一个select控制,引入变量z
#s2 =soup.select('.en_tit')[z].text
#print(soup.select('.en_tit')[0].text)
#print(n.text.rstrip(soup.select('.en_tit')[0].text))
#print(s1.rstrip(s2))
#z += 1
# a=s2
#a = s1.rstrip(s2)
if a != '':
sum += a +' '+'20'+' '+'jiud'+'\n'
print(sum)
#children=n.children
#print(n.children[0])
#print(n.text-n.children)
#print(n['href'])
#getNewsDetail(n['href'])
#sum += n.text+'\n'
#name = 'xczi{}.txt'
#tx = name.format(z)
#print(sum)
save_to_file("dict_jiudian.txt", sum)
#results.append(getNewsDetail('http://you.ctrip.com' + n['href']))
#getNewsDetail('http://you.ctrip.com' + n['href'])
#return results
seedurl = 'http://travel.qunar.com/p-cs310189-luoshanji-jiudian-1-{}'
#li = []
for i in range(1, 183):
url = seedurl.format(i)
parseListLinks(url)
#df=pandas.DataFrame(lis)
#df
#xc=parseListLinks(url)
#li.extend(xc)
#print(li)
部分景点字典文件:
好莱坞环球影城20 jd
好莱坞星光大道20 jd
圣莫尼卡海滩20 jd
棕榈泉20 jd
比弗利山20 jd
盖帝艺术中心20 jd
Lake Hollywood Park 20 jd
丹麦城20 jd
运河城20 jd
威尼斯海滩20 jd
亨廷顿海滩20 jd
小东京20 jd
斯台普斯球场20 jd
The Murder Mystery Company 20 jd
里普利的信不信由你博物馆20 jd
Griffith Observatory 20 jd
加利福尼亚大学洛杉矶分校20 jd
奥克格兰20 jd
佛光山西来寺20 jd
布罗德博物馆20 jd
伊丽莎白湖20 jd
大熊湖20 jd
格里菲斯公园20 jd
戈曼山20 jd
日落大道20 jd
圣塔莫尼卡码头水族馆20 jd
Tennis L.A. 20 jd
六旗魔术山主题公园20 jd
洛杉矶艺术博物馆20 jd
南加州大学20 jd
威尼斯海滨大道20 jd
Ole Henriksen水疗中心20 jd
Orpheum 剧场20 jd
Wi Spa 20 jd
曼哈顿海滩20 jd
马里布海滩20 jd
约书亚树国家公园20 jd
部分酒店字典文件:
洛杉矶国际机场皇冠假日酒店20 jiud
洛杉矶机场希尔顿酒店20 jiud
洛杉矶洛杉矶国际机场假日酒店20 jiud
洛杉矶圣加布里埃尔希尔顿酒店20 jiud
洛杉矶机场万豪酒店20 jiud
好莱坞罗斯福酒店20 jiud
洛杉矶机场智选假日酒店20 jiud
洛杉矶环球影城希尔顿酒店20 jiud
水晶酒店20 jiud
洛杉矶市中心设计酒店20 jiud
洛杉矶万豪现场酒店20 jiud
洛杉矶比佛利山庄索菲特酒店20 jiud
好莱坞星光大道智选假日酒店20 jiud
长滩机场假日酒店20 jiud
洛杉矶大道喜来登酒店20 jiud
比佛利山区广场酒店20 jiud
贝斯特韦斯特优质龙门酒店20 jiud
贝斯特韦斯特优质好莱坞山庄酒店20 jiud
好莱坞名人酒店20 jiud
洛杉矶比特摩尔千禧酒店20 jiud
比佛利山庄洛杉矶世纪城洲际酒店20 jiud
洛伊斯好莱坞酒店20 jiud
洛杉矶国际机场北使馆套房酒店20 jiud
洛杉矶地铁广场酒店20 jiud
帕萨迪纳亨廷顿朗廷酒店20 jiud
洛杉矶国际机场速酒店20 jiud
洛杉矶市中心希尔顿逸林酒店20 jiud
林肯豪华大酒店20 jiud
洛杉矶国际机场世纪大道万怡酒店20 jiud
洛杉矶福朋喜来登酒店20 jiud
帕萨迪纳豪生酒店20 jiud
布埃纳帕克戴斯酒店20 jiud
贝斯特韦斯特优质套房酒店20 jiud
埃兰酒店20 jiud
日落塔酒店20 jiud
4基于旅游攻略的景点、酒店的提取
4.1加载景点/酒店用户字典,再次对处理后的文本进行分词,标注,目的是选出所有景点/酒店。
4.2统计景点/酒店的出现次数
对于选出的所有景点/酒店,建立一个字典(数据类型),key为酒店/景点的名字,value为出现次数。
4.3 用sort函数进行排序,保存文件为csv格式,以及json格式。
统计景点代码:
import jieba.analyse
import jieba.posseg
import json
import re
import sys
# reload(sys)
import importlib
importlib.reload(sys)
# sys.setdefaultencoding('utf8')
from sklearn import feature_extraction
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import CountVectorizer
'''
# 读取文件
def read_news():
news = open('news.txt').read()
return news
'''
jieba.load_userdict("dict.txt") #加载字典
sum = ''
sums = ''
stat = {}
z = 0
# 词性标注,提取景点
def cut_news():
global sum
global sums
global stat
global z
with open('tiqu2097.txt', 'r')as f:
for line in f:
line = line.encode('utf-8')
seg = jieba.posseg.cut(line.strip()) # jieba分词,分词与词性标注同时进行,生成一个列表
# print("/".join(seg))
for i in seg:
if i.flag == 'jd': #正向筛选
if i.word not in stat:
stat[i.word] = 0
stat[i.word] += 1
z += 1
print(z)
# print(i.word, i.flag)
# sum += i.word
# print(sum)
return stat
# 其中join可以将分词结果变为列表格式。
'''
# jieba分词器,通过词频获取关键词
def jieba_keywords(news: object) -> object:
keywords = jieba.analyse.extract_tags(news, topK=100)
print(keywords)
'''
def save_as_csv(file_name, contents):
fh = open(file_name, 'w')
for item in contents:
fh.write(item[0]+','+str(item[1])+'\n')
fh.close()
def save_as_json(filename, content):
fw = open(filename, 'w')
fw.write(content)
fw.close()
if __name__ == '__main__':
#save_as_json('111.json', 'haha')
# new = read_news()
# jieba_keywords(new)
a = cut_news()
print('进入主函数')
print(a)
save_as_json('111a.json', json.dumps(a,ensure_ascii=False))
save_as_csv('111a.csv', a)
b = sorted(a.items(), key=lambda d: d[1], reverse=True)
print(b)
save_as_json('111b.json', json.dumps(b, ensure_ascii=False))
save_as_csv('111b.csv', b)
统计酒店代码:
import jieba.analyse
import jieba.posseg
import json
import re
import sys
import re
# reload(sys)
import importlib
importlib.reload(sys)
# 读取文件
def read_news():
news = open('news.txt').read()
return news
jieba.load_userdict("dict_jiudian.txt")
sum = ''
sums = ''
stat = {}
z = 0
# 词性标注,提取酒店
def cut_news():
global sum
global sums
global stat
global z
with open('tiqu2097.txt', 'r')as f:
for line in f:
line = line.encode('utf-8')
seg = jieba.posseg.cut(line.strip()) # jieba分词
# print("/".join(seg))
for i in seg:
if i.flag == 'jiud':
if i.word not in stat:
stat[i.word] = 0
stat[i.word] += 1
z += 1
print(z)
# print(i.word, i.flag)
# sum += i.word
# print(sum)
return stat
# 其中join可以将分词结果变为列表格式。
def save_to_file(file_name, contents):
fh = open(file_name, 'w')
fh.write(contents)
fh.close()
def save_as_csv(file_name, contents):
fh = open(file_name, 'w')
for item in contents:
fh.write(item[0]+','+str(item[1])+'\n')
fh.close()
def save_as_json(filename, content):
fw = open(filename, 'w')
fw.write(content)
fw.close()
if __name__ == '__main__':
save_as_json('222.json', 'haha')
# new = read_news()
# jieba_keywords(new)
a = cut_news()
'''
print('进入主函数')
print(a)
save_as_json('222a.json', json.dumps(a,ensure_ascii=False))
save_as_csv('222a.csv', a)
'''
b = sorted(a.items(), key=lambda d: d[1], reverse=True)
print(b)
save_as_json('222b.json', json.dumps(b, ensure_ascii=False))
save_as_csv('222b.csv', b)
统计结果
1统计景点次数
景点csv数据:
好莱坞环球影城,6164
好莱坞,3327
好莱坞星光大道,1121
棕榈泉,767
日落大道,368
加利福尼亚大学洛杉矶分校,312
洛杉矶市政厅,153
加州科学中心,149
南加州大学,133
洛杉矶艺术博物馆,73
大熊湖,67
曼哈顿海滩,61
丹麦城,46
好莱坞高地中心,45
加州理工学院,34
小东京,19
好莱坞露天剧场,15
洛杉矶音乐中心,13
洛杉矶纪念体育场,13
太平洋水族馆,11
爱德华兹空军基地,8
好莱坞博物馆,7
海峡群岛国家公园,6
博览会公园,6
好莱坞蜡像博物馆,4
洛杉矶动物园,4
圣盖博山,3
火车公园,3
西林纪念公园,2
洛杉矶歌剧院,1
加利福尼亚州科学中心,1
回音山,1
洛杉矶时报大楼,1
2 统计酒店次数
酒店数据csv文件:
洛杉矶酒店,156
假日酒店,152
好莱坞酒店,77
套房酒店,70
豪华酒店,46
洛杉矶机场希尔顿酒店,46
东西酒店,35
加州酒店,34
美国旅馆,22
洛杉矶市中心酒店,13
水晶酒店,10
洛杉矶国际机场速酒店,10
海景酒店,6
洛杉矶山丘酒店日落店,6
洛杉矶环球影城希尔顿酒店,6
洛杉矶好莱坞酒店,5
好莱坞宾馆,5
提塔酒店,4
洛杉矶地铁广场酒店,4
洛杉矶花园酒店,3
洛杉矶加兰酒店,3
洛杉矶国际机场皇冠假日酒店,3
洛杉矶好莱坞历史酒店,2
海风旅馆,2
小时汽车旅馆,2
洛杉矶速酒店,1
大道套房酒店,1
都市酒店,1
山谷旅馆,1
日落汽车旅馆,1
美国好莱坞旅馆,1
经济汽车旅馆,1
经济旅馆,1
影院酒店,1
海洋公园酒店,1
好莱坞公寓酒店,1
世纪旅馆,1
洛杉矶洛杉矶国际机场假日酒店,1
好莱坞城里人酒店,1
洛杉矶人酒店,1
棕榈汽车旅馆,1
龙门汽车旅馆,1
好莱坞星光大道品质酒店,1
洛杉矶好莱坞城市旅馆,1
好莱坞环球影城,6164
好莱坞,3327
好莱坞星光大道,1121
棕榈泉,767
日落大道,368
加利福尼亚大学洛杉矶分校,312
洛杉矶市政厅,153
加州科学中心,149
南加州大学,133
洛杉矶艺术博物馆,73
大熊湖,67
曼哈顿海滩,61
丹麦城,46
好莱坞高地中心,45
加州理工学院,34
小东京,19
好莱坞露天剧场,15
洛杉矶音乐中心,13
洛杉矶纪念体育场,13
太平洋水族馆,11
爱德华兹空军基地,8
好莱坞博物馆,7
海峡群岛国家公园,6
博览会公园,6
好莱坞蜡像博物馆,4
洛杉矶动物园,4
圣盖博山,3
火车公园,3
西林纪念公园,2
洛杉矶歌剧院,1
加利福尼亚州科学中心,1
回音山,1
洛杉矶时报大楼,1
用python保存为excel文件
import pandas as pd
# Reading data locally
df2 = pd.read_csv('景点.csv') #, encoding='gbk
writer = pd.ExcelWriter('景点.xlsx')
df2.to_excel(writer,'Sheet1')
#df2.to_excel(writer,'Sheet2')
writer.save()
用R语言读入excel文件
library(openxlsx)
a<-read.xlsx("景点.xlsx",sheet=1)
#解决读入中文乱码:
Sys.setlocale(category="LC_ALL",locale="en_US.UTF-8")
#去除第一列
a <- subset(a, select = -X1)
#输出词云
wordcloud2(a, size = 2, fontFamily = "微软雅黑",
color = "random-light", backgroundColor = "grey")
用python保存为excel文件
import pandas as pd
# Reading data locally
df2 = pd.read_csv('酒店.csv') #, encoding='gbk
writer = pd.ExcelWriter('酒店.xlsx')
df2.to_excel(writer,'Sheet1')
#df2.to_excel(writer,'Sheet2')
writer.save()
用R语言读入excel文件
library(openxlsx)
b<-read.xlsx("酒店.xlsx",sheet=1)
#解决读入中文乱码:
Sys.setlocale(category="LC_ALL",locale="en_US.UTF-8")
#去除第一列
b<- subset(b, select = -X1)
#输出词云
wordcloud2(b, size = 2, fontFamily = "微软雅黑",
color = "random-light", backgroundColor = "grey")