关于本站
人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!
经管之家新媒体交易平台
提供"微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯"等虚拟账号交易,真正实现买卖双方的共赢。【请点击这里访问】
期刊
- 期刊库 | 马上cssci就要更新 ...
- 期刊库 | 【独家发布】《财 ...
- 期刊库 | 【独家发布】“我 ...
- 期刊库 | 【独家发布】“我 ...
- 期刊库 | 【独家发布】国家 ...
- 期刊库 | 请问Management S ...
- 期刊库 | 英文期刊库
- 核心期刊 | 歧路彷徨:核心期 ...
TOP热门关键词
通过gensim将词向量(Word2Vec)学习机运用于文本分类中,参考文献:DocumentClassificationbyInversionofDistributedLanguageRepresentations(ACL2015)。1、数据准备首先,我们需要到kaggle上的Yelprecruitingcon ...
免费学术公开课,扫码加入 |
1、数据准备
首先,我们需要到 kaggle 上的 Yelp recruiting contest 下载我们要用到的数据,可能需要注册并登陆自己的 kaggle 账号。
https://www.kaggle.com/c/yelp-recruiting/download/yelp_training_set.zip
https://www.kaggle.com/c/yelp-recruiting/download/yelp_test_set.zip
接着,解压数据,并从中获取本文需要的有关信息。
在本次分析中,我们将使用一个非常简单的语法解析规则,如下所示:
- import re
- contractions = re.compile(r"'|-|\"")
- # 所有非字符数值
- symbols = re.compile(r'(\W+)', re.U)
- # 删除单个字符
- singles = re.compile(r'(\s\S\s)', re.I|re.U)
- # 分隔符(任何空格)
- seps = re.compile(r'\s+')
- # 文本清洗(注意操作顺序)
- def clean(text):
- text = text.lower()
- text = contractions.sub('', text)
- text = symbols.sub(r' \1 ', text)
- text = singles.sub(' ', text)
- text = seps.sub(' ', text)
- return text
- # 定义分句函数
- alteos = re.compile(r'([!\?])')
- def sentences(l):
- l = alteos.sub(r' \1 .', l).rstrip("(\.)*\n")
- return l.split(".")
- from zipfile import ZipFile
- import json
- def YelpReviews(label):
- with ZipFile("yelp_%s_set.zip"%label, 'r') as zf:
- with zf.open("yelp_%s_set/yelp_%s_set_review.json"%(label,label)) as f:
- for line in f:
- rev = json.loads(line)
- yield {'y':rev['stars'],\
- 'x':[clean(s).split() for s in sentences(rev['text'])]}
- YelpReviews("test").next()
由于文件相对较小,我们可以将其中的所有内容都写入内存列表之中,这将花费一些时间。
- revtrain = list(YelpReviews("training"))
- print len(revtrain), "training reviews"
- ## 打乱数据排列顺序
- import numpy as np
- np.random.shuffle(revtrain)
最后,我们还需再写一个函数,以便于我们按语料库顺序找到那些拥有确定星级的评论,并获取其中的每一个句子。
- def StarSentences(reviews, stars=[1,2,3,4,5]):
- for r in reviews:
- if r['y'] in stars:
- for s in r['x']:
- yield s
首先,我们需要安装一个现成的 Word2Vec 包。
- from gensim.models import Word2Vec
- import multiprocessing
- ## 构建一个 w2v 学习机
- basemodel = Word2Vec(
- workers=multiprocessing.cpu_count(), # 获得你当前的 CPU 的核数
- iter=3) # 该项参数的值越大,模型效果越好,构建时消耗的资源也越多
- print basemodel
通过句子构建词库(我们也可以运用一个外生的无标注词库来对基础模型进行预训练)
- basemodel.build_vocab(StarSentences(revtrain))
- from copy import deepcopy
- starmodels = [deepcopy(basemodel) for i in range(5)]
- for i in range(5):
- slist = list(StarSentences(revtrain, [i+1]))
- print i+1, "stars (", len(slist), ")"
- starmodels[i].train(slist, total_examples=len(slist) )
以上内容转自 数析学院,原文还包括模型反演以及测试集案例,有需要的同学可以直接查看原文
「经管之家」APP:经管人学习、答疑、交友,就上经管之家!
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
您可能感兴趣的文章
本站推荐的文章
人气文章
本文标题:深度学习:基于 Gensim 的 Yelp 评论文本分类实例
本文链接网址:https://bbs.pinggu.org/jg/kaoyankaobo_kaoyan_5287670_1.html
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。