1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 【市场分析】如何从NLP的角度对用户需求进行分析(一)

【市场分析】如何从NLP的角度对用户需求进行分析(一)

时间:2023-03-18 00:21:05

相关推荐

【市场分析】如何从NLP的角度对用户需求进行分析(一)

一、前言​​​​​​​

随着中国经济的崛起,宠物行业以惊人的速度迅猛发展,宠物的角色也从单纯的赏玩转变为精神的寄托。养宠人群的不断扩大带来了宠物产品需求端膨胀,宠物产品行业受到资本市场的青睐逐渐兴起。

然而供需之间存在的信息不对称往往是一个行业发展的绊脚石,不能好好理解受众的需求,势必会影响生产商的成长速度和成长方向。因此本文选择宠物产品行业新兴发展品类——宠物清洁产品,从大数据与自然语言处理(NLP)的角度深入挖掘用户对清洁类产品的需求。

二、社群类平台网络文本挖掘-豆瓣

豆瓣小组是豆瓣网旗下的用户分享社区,其主要定位即“对同一话题感兴趣的人的聚集地”,包含影视、读书、音乐、旅行、人文、摄影等领域,这些小组构筑起了豆瓣网庞大的社群体系,形成了众多亚文化种类。其自发性讨论的社交模式以及审批制入组的运营模式能够极大程度上减少广告、水军等冗杂数据的可能性。

2.1 爬虫的实现

豆瓣网站中的宠物用品大集合小组,是集合了9820位已养宠人群交流宠物产品的小组。通过Python利用Requests库和Bs4爬取其中前40页987个帖子标题及内容,实现代码如下:

import randomimport csvimport time # 引入时间库 定义请求间隔import requests ##导入requestsfrom bs4 import BeautifulSoup ##导入BeautifulSoup库ip_list=['81.70.124.99:443', '114.250.63.38:443', '112.115.57.20:3128' #用多个ip地址请求request防止被ban]user_agent_list = ["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36 Edg/95.0.1020.30","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5","Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"]#用多个请求头request防止被banfile=open("c://NLP//豆瓣小组.CSV", 'w',newline='')#你想保存的位置csv_writer = csv.writer(file)for i in range(40):#页码 爬取前40页信息url = '/group/mooeoo/discussion?start='+str(i*25)UA = random.choice(user_agent_list)headers = {'User-Agent': UA}random_ip = random.choice(ip_list)proxy = {'http': random_ip}try:rec = requests.get(url, headers=headers,proxies=proxy)Soup = BeautifulSoup(rec.text, 'lxml')a_list = Soup.find_all('a',class_="",title=True)#取出所有的a标签for a in range(len(a_list)):#title = a_list[a]['title'] # 取出a标签的href 属性href = a_list[a]['href']print(title,"第%d页第%d个"%(i+1,a+1))title_1=[]title_1.append(title+"第"+str(i+1)+"页第"+str(a+1)+"个")title_1.append(href) #取出小组帖titlecsv_writer.writerows([title_1])title_1=[]time.sleep(0.8)#插入请求间隔,防止被banexcept:print ('connect failed',random_ip)random_ip = random.choice(ip_list)csv_file.close()

为防止被豆瓣反爬机制检测,选择使用多请求头和间隔请求的方式,将采集后垃圾数据与多次重复数据进行清洗后共采集到有效数据878条,数据整合后维度如图:

2.2数据预处理&数据探索

利用Python的pandas我们对数据进行基本的描述性统计,并利用Jieba库进行分词,将数据进行标注后得到:

import pandas as pddata=pd.DataFrame(df["标题内容"])data.head(10)data.info()data.describe(include=["object","float"])from collections import Counterimport jiebawith open('宠物用品.txt',encoding="utf-8") as f:words = f.read()Counter(list(jieba.cut(words))).most_common(20)

分词后利用字典去除常用停用词如“的”,“之”“,了”等后绘制词云图:

filename = "宠物用品.txt"with open(filename) as f:mytext = f.read()def stopwordslist():stopwords = [line.strip() for line in open('stopdict.txt',encoding='UTF-8').readlines()]return stopwords #加载停用词字典def seg_depart():for word in mytext:if word not in stopwords:if word != '\t':outstr += wordoutstr += " "return outstr #获得去除停用词后词列from wordcloud import WordCloudwordcloud = WordCloud().generate(mytext)%pylab inlineimport matplotlib.pyplot as pltplt.imshow(wordcloud, interpolation='bilinear')plt.axis("off")

为了更清晰地分析豆瓣小组已养宠人群发言中的诉求,我们将这237个词语再进行汇总分类,以便更好地看到豆瓣已养宠人群对宠物日常各方面的关注情况,可以将结果大致分为宠物食品、宠物清洁、产品价位、保健护理、品牌店铺、日用工具、宠物美容七大类,并统计各类产品的词频。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。