这篇博客想利用学习到的英文nlp相关的知识,分析来自yelp(美国点评网站)的用户评论信息。主要包括以下一些操作:
- 自然语言处理相关操作
- 基于tf-idf的预测模型
- 基于lstm的预测模型
导入数据
首先导入数据查看一下原始数据的格式
- 对于每一个用户,有以下一些信息:
Key | Value |
---|---|
user_id | l6BmjZMeQD3rDxWUbiAiow |
review_count | 95 |
yelping_since | 2013-10-08 23:11:33 |
friends | c78V-rj8NQcQjOI8KP3UEA, alRMgPcngYSCJ5naFRBz5g… |
fans | 5 |
average_stars | 4.03 |
… | … |
- 对于每一条评论,有以下一些信息:
Key | Value |
---|---|
review_id | Q1sbwvVQXV2734tPgoKj4Q |
user_id | hG7b0MtEbXx5QzbzE6C_VA |
business_id | ujmEBvifdJM6h6RLv4wQIg |
stars | 1 |
useful | 6 |
funny | 1 |
cool | 0 |
text | Total bill for this horrible service? Over $8G… |
date | 2013-05-07 04:34:36 |
- 对于每一个商户,有以下一些信息:
Key | Value |
---|---|
business_id | 1SWheh84yJXfytovILXOAQ |
name | Arizona Biltmore Golf Club |
address | 2818 E Camino Acequia Drive |
city | Phoenix |
state | AZ |
postal_code | 85016 |
latitude | 33.5221 |
longitude | -112.018 |
stars | 3 |
review_count | 5 |
is_open | 0 |
attributes | {‘GoodForKids’: ‘False’} |
categories | Golf, Active Life |
hours | None |
其他还有一些关于打卡、小费等详细信息。
数据筛选与基本分析
-
因为数据量非常大,所以根据以下标准选取研究数据。
- 加拿大多伦多市
- 评论数至少30个的餐馆
- 2012年之后
-
以下是随机选取符合条件的1000家餐馆在地图上的显示。
评论的内容主要集中在2014年-2018年
评论的评分呈右偏分布,大部分为三分以上。
大部分用户仅有1-3个评论,而少部分用户会有多个评论。
自然语言处理
去除停用词、特殊符号等
from spacy.tokens import Token
from spacy