作为国产机的脑残粉,这次试试用自然语言处理的方法简单的提取手机评论的标签。大概步骤:

  1. 爬取手机的10万条评论文本
  2. 结巴中文分词,提取前20个频率高的名词+形容词
  3. 结巴分词,去停用词,制作语料库
  4. gensim自然语言处理库的word2vec,训练语料库,计算各个名词和形容词之间的相似度,得出前20相似度最高的组合短语

1.爬取手机的10万条评论文本

天猫的评论数据并非直接在评论页中网页点击右键“查看网页源代码”,你会发现这样是不能直接获取到评论文本的,因为天猫的评论数据是异步存储在一个JS连接里面的。
具体操作可以参考原文的–[通过Python抓取天猫评论数据]

我的操作可简化,只需要文本就好,不需要时间、型号什么的。
直接贴代码:

#!/usr/bin/python
#-*-coding:utf-8-*-
# 导入所需的开发模块
import requests
import re
from bs4 import BeautifulSoup,NavigableString
import time
import random# 创建循环链接
urls = []
for i in list(range(0,6000)):urls.append('https://rate.tmall.com/list_detail_rate.htm?itemId=534715680661&spuId=649678568&sellerId=1114511827&order=3&currentPage=%s'%i)#伪装浏览器
homepage = 'https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-15291748836.71.6de0f6b7FVqGYN&id=534715680661&rn=923b06965813887ae5b9b07a6f062f3e&abbucket=2&sku_properties=10004:653780895;5919063:6536025'
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:41.0) Gecko/20100101 Firefox/41.0'}
cookies = requests.get(homepage,headers=headers).cookiesratecontent = []# 循环抓取数据
for url in urls:
#    content=(requests.get(url).text)r = requests.get(url,headers=headers,cookies=cookies).textratecontent.extend(re.findall(re.compile('"rateContent":"(.*?)","rateDate"'),r))   #正则化提取评论内容print(url)time.sleep(random.uniform(3,8))file =open('荣耀8天猫评论.csv','w')
for i in ratecontent:file.write(i+'\n')
file.close()

我获取的评论文本是这样的,挺顺利的,分部分去爬取比较不容易被反爬虫

2.结巴中文分词提取关键词

建议认真读读官网,挺容易上手的–结巴分词官网

#!/usr/bin/env python3
# -*- coding: utf-8 -*-import jieba
import jieba.analyse
import logginglogging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)  #设置日志
content = open('/mnt/share/jieba_test/荣耀8天猫评论.csv','rb').read()
tagsA = jieba.analyse.extract_tags(content, topK=20,allowPOS='a')    #allowPOS是选择提取的词性,a是形容词
tagsN = jieba.analyse.extract_tags(content, topK=20, allowPOS='n')   #allowPOS='n',提取名词

这是关键词的截图

其中‘棒棒’识别成了名词哈!后期我们可以制定结巴分词的词库进行纠正。这也是结巴分词的功能之一。

3.制作语料库

import pandas as pd
import numpy as np
import logging
import codecswords=jieba.lcut(content,cut_all=False)   #分词,精确模式#去停用词,先自己网上找中文停用词,制作好“停用词表.txt”
stopwords = []
for word in open("/mnt/share/jieba_test/stopword.txt", "r"):  stopwords.append(word.strip())
stayed_line = ""
for word in words:  if word not in stopwords:  stayed_line += word + " "   #保存预料
file=open('/mnt/share/jieba_test/corpus.txt','wb')
file.write(stayed_line.encode("utf-8"))
file.close()

分词后的语料是这样的,分词很重要!非常影响word2vec的训练效果

4.深度学习word2vec训练评论语料

word2vec官网:https://code.google.com/p/word2vec/
word2vec的使用,Python,利用gensim模块。
语料不大,普通配置的电脑都可以,一两分钟的事情。
直接上代码:

from gensim.models import word2vecsentences = word2vec.Text8Corpus('/mnt/share/jieba_test/corpus.txt')  # 加载刚刚制作好的语料
model = word2vec.Word2Vec(sentences, size=200)  # 默认window=5commit_index=pd.DataFrame(columns=['commit','similarity'],index=np.arange(100))  index=0
for i in tagsN:for j in tagsA:commit_index.loc[index,:]=[i+j,model.similarity(i,j)]index+=1comit_index_final=commit_index.sort(columns='similarity',ascending=False)
comit_index_final.index=commit_index.index

出来的结果是这样的,还不错,虽然有几个组合是比较奇怪哈哈

总结:

  1. 由于时间问题,我只处理1万条评论文本
  2. 后期可增加评论文本,越大越好!
  3. 分词时候可以添加自己的库,比如说‘荣耀8’应该为同一个词,而不应该分为‘荣耀’和‘8’;再比如说,可以设置‘棒棒’应该识别为形容词,而不是名词哈。
  4. 后面可以增加同义词分析,‘成色不错’和‘外观很好’应该为同一类等等。
  5. 这次主要心得还是jieba和word2vec的功能确实很强大!
  6. 这次是试试手,肯定会有更好的办法,希望大家再指教指教,文中如有错误请提出,写得比较匆忙。

python简单实现天猫手机评论标签提取--自然语言处理相关推荐

  1. tfidf关键词提取_基于深度学习的个性化商品评论标签提取

    商品评论标签提取作为商品评论中的一个比较有意思的问题.评论标签提取的主要任务是从评论中了解到用户对产品的哪些功能.属性进行了怎样的评论,并抽取成简短有效的信息. 关键词提取Vs评论标签提取 商品标签提 ...

  2. 用python爬取天猫商品评论并分析(2)

    用python爬取天猫商品评论并分析(2) 之前介绍过天猫数据的爬取和数据初步处理,今天介绍下 将采集的评论进行文本分析!下面是总流程: 0. 主要流程 0. 数据采集 这一步参考网址:https:/ ...

  3. python文本筛选html_Python使用正则表达式去除(过滤)HTML标签提取文字功能

    正则表达式是一个特殊的字符序列,可以帮助您使用模式中保留的专门语法来匹配或查找其他字符串或字符串集. 正则表达式在UNIX世界中被广泛使用. 下面给大家介绍下Python使用正则表达式去除(过滤)HT ...

  4. 通过爬取天猫商品评论实例分析Python爬取ajax动态生成的数据

    本文主要通过爬取天猫商品kindle的评论为例来说明利用python爬取ajax动态生成的数据的方式,本文使用的工具如下: 工具 chrome浏览器[寻找评论的动态链接] python3.5[执行代码 ...

  5. python批量评论_python批量爬取京东手机评论信息及星级

    本科生在读,如有问题欢迎指正 爬取京东评论信息:评论信息是动态加载的,所以在商品详情页不能直接爬取评论. 下面以一款手机为例,详细介绍python批量爬取京东评论. 找到评论区域 image.png ...

  6. python抓取取微博评论简单示例

    python抓取取微博评论简单示例 使用python中的requests以及re库对人民日报的一篇新冠疫苗文章前30页评论进行抓取.抓取微博评论使用的是微博的移动端网页.具体代码如下 import r ...

  7. python给用户打标签_python用户评论标签匹配的解决方法

    我们观察用户评论发现:属性词往往和情感词伴随出现,原因是用户通常会在描述属性时表达情感,属性是情感表达的对象.还发现:属性词和专用情感词基本都是名词或形容词(形谓词). 算法流程图如下: 评论数据如下 ...

  8. python抓取经典评论_通过Python抓取天猫评论数据

    每日干货好文分享丨请点击+关注 对商业智能BI.数据分析挖掘.大数据.机器学习感兴趣的加微信tsbeidou,邀请你进入交流群. 欢迎关注天善智能微信公众号,我们是专注于商业智能BI,大数据,数据分析 ...

  9. python爬虫(6)——获取天猫商品评论信息

    本文以读取商品评论的json数据的方式来获取天猫商品评论,本文所采用的方法借鉴自知乎某大神(https://www.zhihu.com/question/36524413),可以非常方便地爬取特定商品 ...

  10. 词云分析——基于Python对天猫商品评论进行词云分析

    文章目录 0 引言 1 准备工作 2 主程序 3 分析与改进 4 可能出现的报错及解决方案 0 引言 什么是词云分析? 词云图,也叫文字云,是对文本中出现频率较高的"关键词"予以视 ...

最新文章

  1. Eclipse创建的Maven项目报错Could not calculate build plan: Plugin
  2. Linux中利用grep命令如何检索文件内容详解
  3. js 值太大自动转换bignumber
  4. Python 加密解密
  5. Python常用小技巧(二)——打开图片
  6. JQuery - 提交表单
  7. PHP设计模式系列 - 数据访问对象模式
  8. Maven编译时跳过Test
  9. 属性子集选择的基本启发方法_2017.06.29数据挖掘基础概念第二.三章
  10. 爬取斗鱼所有房间及直播源
  11. dnf mysql数据库密码,MYSQL8在CentOS8环境中的安装过程(DNF/YUM)
  12. oppoa5降级教程_OPPO A5官方原厂固件rom刷机包_全量系统降级包回退包下载A.14版
  13. 阿里云centos部署jsonserver
  14. Ubuntu14.10 更新源,现在很多源已经停用了建议使用ubuntu15以上
  15. 四足机器人发展史及机器人盘点
  16. mysql - database/数据库
  17. Xilinx K7_Microblaze的Tmrintc定时器中断使用(ISE14.7)
  18. 批量创建文件夹-python
  19. 短信中出现的短网址有危险吗?
  20. 竖脊肌(03):游式挺身

热门文章

  1. 每个前端工程师都应该了解的图片知识
  2. 软键盘遮挡edittext_Android软键盘遮挡的四种解决方案
  3. 双摄像头做slsm_刚刚考完!真实双机位复试经验帮你避雷!
  4. 如何修改github博客主题
  5. 日志报错:WARNING: An illegal reflective access operation has occurred
  6. 举个栗子~Tableau 技巧(208):使用“显示/隐藏”按钮,快速切换图表
  7. mysql5.6 0000-00-00 00:00:00_Mysql sql_mode设置 timestamp default 0000-00-00 00:00:00 创建表失败处理...
  8. RewriteBase: only valid in per-directory config files 解答:
  9. Java实现复数运算
  10. 《Photoshop蒙版与合成(第2版)》目录—导读