了解用话题建模分析在线产品评论的重要性.doc
《了解用话题建模分析在线产品评论的重要性.doc》由会员分享,可在线阅读,更多相关《了解用话题建模分析在线产品评论的重要性.doc(7页珍藏版)》请在三一文库上搜索。
1、了解用话题建模分析在线产品评论的重要性现在电商行业势头正好,对在线零售商来说,他们不受库存或空间的限制,而实体店则必须在有限的空间中存储产品。但是,在线购物也有它的局限之处,最大的难题之一就是检验产品的真伪。它的质量是否如宣传所说的那么好?消费者留言的评价是真实的吗还是虚假宣传?这是消费者决定购买的重要因素。所以,我们决定用NLP技术在这一主题中进行探索,本文将帮助你了解用主题建模分析在线产品评论的重要性。商品评论的重要性前几天,我从某网站买了一部智能手机,价格符合我的预期,并且评分为4.5分(满分为5)。但是,拿到手之后我才发现,电池续航远不及平均水平。在购买时我只看了评分,却没关注评论,所
2、以我知道肯定不只我一个人不满意!所以网购看评论应该是必不可少的参考,可以,如果评论有成百上千条,根本看不过来怎么办?这就需要用到自然语言处理技术了。明确问题我们应该如何用NLP分析大量商品评论呢?首先让我们明确这一问题。从卖家角度,他们可以从评论中估计顾客对商品的反应。想从大量评论中找到关键信息,这样的智能系统需要做到两点:能让顾客从中迅速提取出关键主题卖家也能通过这些主题获得用户反馈为了解决这一任务,我们将在亚马逊的汽车评论数据上使用主题建模(LDA),数据集可以在这个地址中下载:snap.stanford.edu/data/amazon/productGraph/categoryFiles
3、/reviewsAutomotive5.json.gz。为什么用主题建模和这项技术的名称一样,主题建模是自动确定文本目标中主题的过程,同时从文本语料中展示隐藏语义。主题模型有多重用途,包括:文件聚合组织大型文本数据从未被组织的文本中进行信息检索特征选择一个好的主题模型,如果在与股票市场相关的文本上训练时,应该会生成类似“出价”、“买卖”、“分红”、“交易”等主题。下图展示了一个典型的主题模型工作的流程:在我们的案例中,文本数据来自“汽车”类目下的商品评论。这里,我们的目标是从评论中提取一些重要的有代表性的单词。这些关键词可以帮助我们了解某位顾客的态度。Python实现在这一部分,我们会用到Ju
4、pyter Notebook(或你在Python下使用的任意IDE)。这里我们会用到“隐含狄利克雷分布(LDA)”的概念,如果对这一概念不了解的读者,可以参考这一博文:cnblogs/huangshiyu13/p/6148217l首先我们要下载所需的库:import nltkfrom nltk importFreqDistnltk.download(stopwords) # run this one timeimport pandas as pdpd.set_option(display.max_colwidth, 200)import numpy as npimport reimport s
5、pacyimport gensimfrom gensim import corpora# libraries for visualizationimport pyLDAvisimport pyLDAvis.gensimimport matplotlib.pyplot as pltimport seaborn as sns%matplotlib inline要导入数据,首先要将数据提取到你的工作类别中,然后使用pandas中的read_json( )函数在pandas的数据框架中读取。df = pd.read_json(Automotive_5.json, lines=True)df.head(
6、)如你所见,数据包含以下类目:评论者的ID产品ID评论者的用户名该评论的有用性评论文本产品评分评论总结评论执行时间评论原始时间(raw)在这篇文章中,我们只使用“评论文本”这一类。数据处理在开始文本挖掘前,数据处理和清洗是很重要的一步。在这一步中,我们会删除标点、停止词等,让评论的形式尽可能统一。处理好之后,就可以检查数据中最常出现的词语了。所以,让我们在这里定义一个函数,可以通过条形图展示数据中最常见的n个词语。# function to plot most frequent termsdef freq_words(x, terms = 30):all_words = .join(text
7、for text in x)all_words = all_words.split()fdist = FreqDist(all_words)words_df = pd.DataFrame(word:list(fdist.keys(), count:list(fdist.values()# selecting top 20 most frequent wordsd = words_df.nlargest(columns=count, n = terms)plt.figure(figsize=(20,5)ax = sns.barplot(data=d, x= word, y = count)ax.
8、set(ylabel = Count)plt.show()函数定义如下。freq_words(dfreviewText)如图,最常见的词语是“the”、“and”、“to”等等,这些词对我们并没有什么帮助,所以也要删除这些词语。在这之前,让我们先删除标点和数字。# remove unwanted characters, numbers and symbo for i in rev if i notin stop_words)return rev_new# remove short words (length 2)# remove stopwords from the textreviews =
9、 remove_stopwords(r.split() for r in dfreviewText# make entire text lowercasereviews = r.lower() for r in reviews再对常出现的词进行可视化:freq_words(reviews, 35)我们可以看出有了变化,像“电池”、“价格”、“产品”、“汽油”等与汽车较相关的词语出现了。但是,仍然有一些中性词存在,例如“the”、“this”、“much”、“they”等等。为了进一步去除文本中的噪音,我们可以用spaCy库中的词形还原处理。它可以将词语还原到原始形式,减少单词的重复。!pyth
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 了解 话题 建模 分析 在线 产品 评论 重要性
链接地址:https://www.31doc.com/p-3372036.html