加入收藏 | 设为首页 |

雷火电竞苹果app-原创纽约蹭饭手册:怎样使用Python和自动化脚本在纽约吃霸王餐?

海外新闻 时间: 浏览:188 次

大数据文摘出品

编译:李雷、睡不着的iris、刘思佳、林安安、橡树_hiangsug、蒋宝尚

在家煮饭不下馆子可以削减开支现已是揭露的隐秘。但作为一名美食天堂的国民,不下馆子简直是不或许的。

处处都是火锅店、烧烤餐厅或甘旨披萨店,瞅一眼这些美食,就足以炸毁咱们省钱的意志力。

假如你即不想让钱包当成受害者,又不想抛弃美好的用餐体会,就得自己“造”钱来付出饭费。

来,跟从作者的脚步,让你走上了各种中餐、西餐、中西餐的蹭饭之路。

本文作者NBC举世的数据工程师Chris Buetti,2017年结业于维克森林大学。

首要咱们的方针是到最棒的餐厅吃到霸王餐。这是个技能活,达到这个方针有两种办法:要么让代码做这件事,要么有许多的闲暇时刻。

本文会扼要介绍一下运用的技能和编程言语,但不会给出代码或相关内容。会解说怎样运用逻辑回归,随机森林,AWS和主动化脚本,但都不会深化。本文更多的是理论而非实践。

假如你是一个非技能人,这篇文章依然合适你,只不过要多花费一点时刻和精力。文章里的这些办法大部分都很单调,这便是为什么我要用主动化脚原本完结它们的原因。

走起,我将从作用开端,然后解说我是怎样做到的。

我做了什么

在今日这个数字年代,Instagram雷火电竞苹果app-原创纽约蹭饭手册:怎样使用Python和自动化脚本在纽约吃霸王餐?用户数是一种财富。像风闻说的那样可以经过许多的粉丝来挣钱,或许对我来说,用粉丝来付出我的饭费,这便是我所做的。

我创立了Instagram个人主页,展现纽约的概括,标志性景点,高雅摩天大楼的图片,等等。这使我在纽约区域积累了超越25,000名粉丝,而且仍在快速增加。

我经过Instagram发音讯或电子邮件联络当地的饭馆,用在主页上向粉丝发布谈论来交换免费餐或至少是用餐扣头。

简直一切我联络的饭馆都给了我免费试吃的时机或优惠卡。大多数饭馆都有市场营销预算,所以他们很愿意为我供给免费的用餐体会,以便展开促销活动。有时优惠太多我只好送一些给朋友和家人。

这原本没什么稀罕,要害在于我将整个进程主动化了,我的意思是100%不必手动操作了。我编写的代码可以主动找到图片或视频,制造标题,增加主题标签,符号图片或视频出自哪里,还能过滤废物邮件,发帖,重视用户和撤销重视,点赞,监控我的收件箱,最重要的是主意向与或许需求促销的饭馆发音讯和电子邮件。

自从有了这套代码,我乃至都不需求实在登录该帐户,底子不必花时刻在这上面。它本质上是一个机器人,但普通人无法分辩,由于它的行为和人相同。作为它的开发者,我可以坐下来赏识它(和我的)作业。

我是怎样做到的

我会带你从头究竟了解我在这个进程中所做的每一件事。其间一些事看似知识,但当你用主动化体系来完结这些事的时分,细节就变得很重要。该进程可分为三个阶段:内容同享,黑客式增加以及出售和促销。

内容同享

其实,我的帐户所发布的内容都不是我原创的,而是我从头共享其他人的内容,但有注明来历。假如有人说我侵权,要我撤下他们的相片,我会立刻照做。但由于我在共享里带了他们的主页的链接,所以他们历来都只要感谢我。

每天屡次发布内容是有必要的。这是Instagram算法承认你的曝光度的首要因素之一(经过“探究页面”)。每天发帖,特别是在每天“顶峰时段”发帖,十分单调乏味。大多数人做了几周就会抛弃,乃至有时一两天漏发也会导致曝光度下降。因而,将内容搜集和共享进程主动化是很有必要的。

获取图片和视频

我开端考虑用爬虫从Google图片或交际新闻站点Reddit上抓取图片。我遇到的最大的困难之一便是Instagram对所发布图片的巨细有特别要求,最好是“方形”图片,也便是宽度等于高度,因而发布非正方形的图片会被回绝。这使得检索图片变得十分艰巨。

我终究决议直接从其他Instagram帖子中查找,由于图片巨细符合要求,而且还可以精确知道其来历,这一点在主动化脚本里十分有用。

我搜集了50个Instagram帐户,这些帐户发布了许多关于纽约的优质图片。我用开源软件编写了一个爬虫来下载这些帐户上传的帖子。除了下载文字内容外,还有图片和一堆元数据,如标题、点赞数和方位等。我将爬虫设置为每天清晨3点或当我的图片库为空时工作。

这样,我把一切内容都会集存储在一个当地,包括正确格局的各种内容。

主动承认什么是“好”或“坏”的内容

并非一切在Instagram上发布的内容都值得从头共享。有许多卖东西的帖子,谩骂的贴子,或许有些内容跟我想要的不相关。以下面这两篇帖子为例:

这两个帖子来自同一个纽约的Instagram帐户。左面帖子发布的是自然风光,我很愿意把它从头共享在我的主页。右边的广告没有任何上下文,标题分两行,这实践上是在给一个纽约的手机运用打广告。

假如我把它放在我的主页上,那会就显得让人困扰,与我的主页显得方枘圆凿。你可以看到点赞数量的差异-8200对1000。我需求脚本可以主动过滤掉右边的帖子,并从头共享左面的帖子。

因而,我不能盲目地从头共享我提取到的一切内容。但我又期望这是一个主动化进程。所以我需求创立一个算法,可以取其精华去其雷火电竞苹果app-原创纽约蹭饭手册:怎样使用Python和自动化脚本在纽约吃霸王餐?糟粕。算法的榜首部分包括一些hard-coded规矩,第二部分是机器学习模型。

算法的榜首部分——hard-coded规矩

我做的榜首件事是依据元数据中的特定规矩优化我的inventory。在这个进程中,我有必要坚持谨慎。假如呈现了一个正告,那么图片就废了。

理论上,我可以抓取到许多内容,但假如算法在我的页面上发布了不合适的内容,那么在我发现之前或许现已有许多人看到了。

首要要做的是让我的算法检查标题。假如标题里包括与“点击链接”,“当即购买”,“限时抢购”等相关的任何文字,这类帖子将无法经过测验。很显着,这是广告,并不具有高质量内容。

我接下来要做的是看看谈论是否不可用。我的经历是,不可用的谈论大多与有争议的帖子有关,并不值得我冒这个危险。

我要做的终究一件事是看图片中是否符号了多个人。许多时分,图片中的一个标签是符号它来自哪里,这实践上是有用的。可是假如图片有多个标签,那么就会呈现混杂。

依据这些规矩,我可以扫除大部分废物帖子和不受欢迎的帖子。可是,不能仅仅依据是否推销东西来判别一篇帖子是否具有高质量内容。此外,我的hard-coded规矩或许依然会遗失一些出售类的广告帖子,因而我想在完结榜首部分后再过一个二级模型。

第二部分——机器学习模型

经过榜首部分算法过滤——hard-coded规矩,我发现依然存在一些废物帖子。我不方案人工手动除掉它们,我方案将这个进程彻底主动化。

每个帖子上都有许多的元数据,包括点赞数,标题,发布时刻等等。我开端的意图是测验猜测哪些图片会取得最多的点赞。可是,很显着,网红博主自然会取得更多的点赞,所以这不能作为精确的判别依据。

后来我的主意是让呼应变量等同于点赞率(即点赞数/粉丝数),并测验进行猜测。但在调查每张图片及其点赞率后,我以为点赞率和图片质量的相关性不大。我不以为那些点赞率高的相片便是高质量相片。

一些不知名的摄影师发布的图片内容并不一定比网红博主差,即使网红具有更高点赞率。我决议用分类模型替换回归模型来点评图片内容的质量,判别其是否可以发布——一个简略的是或否问题。

在检查其他元数据之前,我抓取了许多相片并把每张相片手艺符号为0(差)或1(好)。这是十分片面的判别,可以说我是依据自己的片面判别制造模型。但我以为我的判别应该和大部分人相同。

我生成了数据集。呼应变量为0或1(即差或好),具有许多特征。每篇帖子的元数据可以供给我以下信息:

从这七个解说变量里,我改变了一些我以为有用的特征。例如,我改变了谈论的数量和点赞率。我从标题中提取了带“#”号的标签的数量,并将其作为column,并对标题中说到的用户数量进行了相同的操作。

我对其他的标题进行向量化,用于后续的自然言语处理。向量化是删去外围词(如“the”,“and”),并将剩下词转换为可以用于数学剖析的数字字段。我得到了以下数据:

我运用了许多分类算法,例如支撑向量机(Support Vector Machines)和随机森林树(Random Forests),但终究是选用了简略的逻辑回归算法(Logistic Regression)。

我以为有时分最简略的答案便是正确的答案。不论我选用哪种办法处理数据,逻辑回归算法在我的测验集上都表现最好。

与其他分类算法不同,我可以在进行猜测时设置阈值的得分(threshold score)。分类算法一般输出二进制类(在我的算法里是0或1),但Logistic Regression实践上会输出0到1之间的小数。

例如,它或许将帖子评为0.8雷火电竞苹果app-原创纽约蹭饭手册:怎样使用Python和自动化脚本在纽约吃霸王餐?3或0.12。人们一般将阈值设置为0.5,并将一切大于0.5的定为1,其他的定为0,但这取决于详细运用的事例。这个进程很要害,所以我将我的阈值设为0.9,并低于该基准的内容视作无用的。

在布置我的模型之后,图片和视频首要经过一套严厉的规矩整理,然后再经过Logistic Regression筛选出优异的材料。现在我可以继续为每个帖子增加阐明和打分。

主动化阐明和打分

我现在有一个主动搜集相关内容并删去废物图画的体系——但我还没有完结。

假如你之前用过Instagram,那么你应该知道每个帖子的图片或视频下方都有文字阐明。但由于我实践上看不到这些图片,也没有时刻给它们悉数加上阐明,所以我需求制造一个通用标题。

我做的榜首件事是制造终究模板。它看起来像这样:

接着我要将代码填进去。让咱们一个个来看怎样填。

标题

我创立了一个文本文件,其间包括许多预界说的通用标题,可以匹配任何的图片。这些标题可以是关于纽约的名言、通用问题或是简略的赞许,例如:

关于每个帖子,标题是随机挑选的。我有许多备选的标题,底子不必忧虑某个标题会频频呈现。关于咱们的比如,咱们可以挑选 “Who can name this spot?”。

来历符号

主动符号图片资源的来历可不是件简略的作业。一般情况下,一个Instagram账号页面上的图片并不代表这账号具有图片的版权。这样的账号或许也是从头共享的内容,会在页面的标题中或图片标签里符号图片来历。

对此,我决议不论怎样先标示上图片的榜首来历;假如我可以依据其他信息找出到图片的原始出处,那么我就继续在后面增加。经过这种办法,我基本上就可以标志出一切图片材料了。

首要咱们看一下@likenewyorkcity的这个帖子,虽然是这个账号共享出了这张图片,但图片中的标签和页面标题上@geoffrey.parry才是图片的实在版权具有者。

理论上我期望我的代码可以在辨认这张图片后得出这样一条输出:

榜首步很简略,我只需求直接标示出呈现的账号即可,但第二步就没那么简略了。

我经过REGEX(正则表达式东西)匹配一些类似于“by”或许“photo”的要害词,然后找到紧跟在要害词后的“@”标识,经过这种办法抓取的用户名便被我标示成图片来历的第二部分。

假如标题中没有呈现这些要害词,我便检查是否有人为图片打了标签,这些打了标签的账号便被我“默许”为我该标示出的方针了。虽然这种简略粗犷的办法并不是那么完美,但至少比不这么“默许”强上好几倍,不失为一种值得测验的办法。

我总是能精准地标示出图片的正确来历。实践上,人们还屡次在我的图片下谈论道“感谢共享!”(接下来展现出的图片便是一个很好的比如)

标签

Instagram答应用户为图片打上30个主题标签,图片便会在相应的主题下展现。所以我创立了一个包括100多个相关主题的文件:

刚开端我每次都会随机在其间挑选30个主题,而且不久后,我可以依据实践作用比较出哪些主题标签会得到更多“赞”。

模板填充

经过以上这三个进程后,我便可以将搜集到的信息填充到终究的模板中,为每一个帖子“量身定制”标题。

下面是终究的产出作用:

终究成功如下:

我运用合适纽约市的任何图片的通用标题,符号了图片的Instagram帐户和原始来历,增加了三十个主题标签来进步帖子的曝光率。假如你继续检查帖子谈论,你乃至还可以看到原始作者向我表明感谢。

发布

现在我有一个会集办理的图片资源库,并可以使得每个帖子主动化生成标题,仅需终究的临门一脚——发布。

我在AWS上启动了一个EC2实例来保管我的代码,之所以挑选这种办法是由于它比我的个人计算机更牢靠——它始终坚持联网状况,而且项意图作业量彻底包括在AWS免费服务的条件约束之下。

我编写了一个Python脚本随机抓取其间一张图片,并在完结抓取和整理进程后主动生成标题。我设置了一个守时使命:每天早上8点,下午2点和晚上7:30调取我的API,完结一切的发布操作。

此刻,我现已彻底主动化了内容查找和发布进程,我不再需求每天都找资源和发帖子运营我的账号了——程序为我完结了一切作业。

涨粉

仅仅发布是不行的——我需求拟定一些办法继续涨粉。由于我不会手动履行任何操作,因而这一进程我也需求想办法主动化处理。我的主意是经过直接与受众的爱好用户直接互动以增加账号的曝光率。

我写的交互脚本从美国东部时刻上午10点到下午7点工作,在我看来这段时刻是Instagram最活泼的时刻规模。在这一天中,我的帐户有条有理地重视,取关,并为相关的用户和相片点赞,以使他们以相同的办法与我互动。

重视(愈加数据科学的办法)

假如你是Instagram用户,不论你是否认识得到,我敢肯定都被“卷”过这种增粉办法,特别关于企图增加粉丝的用户来说十分有用。某天假如你在健身版块中重视一个风趣的Instagram页面,第二天你就会被一群健美运动员和健身模特所重视。虽然这种办法看起来十分微乎其微,但它的确十分有用。

需求留意的是你不能在Instagram上乱用这个办法重视其他账号。Instagram的算法有十分严厉的限制,假如你在一天内操作过多或重视太多用户,他们会将你中止你的操作乃至封掉你的帐号。

此外,你一天在Instagram上最多只可以被7500人重视;而且经过许多的测验,我发现你可以在一天内重视400人,取关400人。究竟操作条件有限,每一次重视都十分名贵,不能糟蹋在不太或许和你互粉的人身上。所以,我决议搜集每次操作的元数据,基于此树立一个模型来猜测某个人与你互粉的或许性,保证我的每一个重视操作都是有意义的。

我花了几分钟手动搜集了20多个与我处在版块下的帐号。我没有初始数据,因而前几周我为增加我的重视量随机履行这些操作,但更重要的是我需求搜集尽或许多的元数据,以便我可以树立我的猜测模型。

我阅读了20多个相关帐户,重视了他们的粉丝,赞他们的相片或谈论他们的帖子。在每次重视操作中,我都尽或许多地获取用户的元数据构成一个CSV文件,包括他们的重视者和粉丝的份额,他们是揭露账号或私家账号,或许他们是否有个人材料图片等。

每天,脚本都会主动扫描CSV文件并符号他们的反响,经过0,1,2进行次序评级。假如两天内用户没有任何回应则标示为0,假如用户回粉但没有在最近的十张图片中发作任何互动行为则标示为1,2则是最理想的作用,表明他们回粉并在最近十个帖子中进行了互动。这样下来,我的数据集看起来便是这个姿态的:

在将数据“喂”进ML模型前,我经过探究性数据剖析得出以下定论:

从上面的洞悉,我优化了开端对查找用户的办法。我调整了我的设置,只在早上去重视,首要寻觅女人用户。现在,我总算可以树立一个机器学习模型,在与用户交互之前,依据用户的元数据猜测是否会重视我,这样就不会糟蹋我每天可以重视的用户额度,去重视一个不会跟我互粉的人。

接下来,我挑选雷火电竞苹果app-原创纽约蹭饭手册:怎样使用Python和自动化脚本在纽约吃霸王餐?运用随机森林算法对后续的作用进行分类。开端,我并没有设置结构或作用变量,而是运用了许多不同的决策树,由于我想得到它们的可视流程图。随机森林是决策树的增强,纠正单个树中存在的不一致性。在对我的练习数据进行建模后,测验数据上的精度一向超越80%,所以这对我来说是一个十分有用的模型。进一步,将模型运用于抓取的用户的代码,优化了重视算法,我的重视人数开端蹭蹭的往上涨。

取关

两天后,我就不会再继续重视我之前重视的人,两天现已满足让我承认他们是否会回粉。这样我能重视更多的人、搜集更多的数据,并继续涨粉。

为什么我要对他们取关呢?有两个原因:榜首,我的重视人数的额度上限为7500人;第二,每个人肯定都期望进步被重视/重视的比率,这样才干表现自己特别受欢迎,特别招引人。

这是一项简略的使命,由于你不需求做出任何决议。你某一天重视了400个人,两天后你把这些人取关就行了。

点赞

点赞也可以进步重视人数。可是我没有投入太多的精力去挑选一些咱们都喜爱而且会去点赞的图片贴在我的账户中,由于比照以上其他办法,这个作用并不那么显着。所以,我仅仅供给了一组预界说的主题标签,经过主题相关,用户的连锁点击,收成一些重视者。

主动推销

至此,我有一个特别智能的Instagram机器人。我的NYC主页会寻觅与它相关的内容,筛选不良的潜在帖子,招引用户群,并全天发帖。此外,从上午7:00 到下午 10:00,它经过剖析点赞、重视和不重视的受众人群来修正本身的设置,而且经过一些算法来优化受众人群的界说。最棒的是,它的剖析与操作愈加人性化,与Instagram实在用户类似。

有一两个月,我能显着看到重视人数的增加。每天我的账户中都会多100到500名的新重视者,一同赏识我所爱的城市的美丽图画。

我可以开端享用我的日子,仔细的作业,和朋友出去吃饭、看电影,并不需求花费时刻去手动发帖。当我忙于自己的事时,它能彻底保管我的账户。

当我具有了20000个追随者的时分,我决议是时分靠它来蹭吃蹭喝了,所以我需求它主动推销我的产品。

我做了一个通用的音讯模板,不论是饭馆、剧院、博物馆仍是商铺,这个模板都能适用。下面便是我费尽心机想出来了的:

现在,我只需求记载账户称号和音讯发送时我的重视者数量。

我的方针是找到商业用户并像他们推销我的产品。商业用户材料与普通用户材料略有不同—商业用户可以在其网页上增加电子邮件、电话号码、地址等其他详细材料。但最重要的是,他们的材料中都有一个类别标签。

上面那张图中是一个商业用户的示例。在左上角的称号下方,雷火电竞苹果app-原创纽约蹭饭手册:怎样使用Python和自动化脚本在纽约吃霸王餐?显示出它是一个韩国餐厅,一起顶部设有电话呼入、电子邮件和地址等提示信息。

我写了一个Python脚原本查找这类页面而且让我的帐户可以主意向它们发送音讯。该脚本选用两个参数,一个初始主题标签和一个要在类别标签中查找的字符串。这儿,我运用标签“Manhattan”和字符串“restaurant”来举例阐明。

这个脚本的作用是去提取主题标签并加载相片,然后遍历这些帖子,直到找到在相片中符号用户的帖子。假如找了到,它会检查其标签,承认它是否是商业用户。

假如是,就检查该用户类别。假如类别包括“饭馆”一词,则会向他们发送我的信息。商业用户一般都会在他们的页面上留下他们的电子邮件,所以可以向他们主动发送电子邮件,在后台跟进我的Instagram音讯即可。在查找进程中,我可以随时将标签更改为#TimesSquare,也可以将方针字符串更改为“博物馆”等,我想查找什么都行。

当我登录进入账户后,我会看到它主动生成和发送的音讯。

假如我去我的Gmail发件箱, 我就会看到以下邮件:

我还有一个脚本, 用来监测我的收件箱中的任何回复,一起提示空穴来风我。假如我收到回复邮件,我就会联络我的潜在客户。

以上这些操作,都是脚本主动工作的, 并不需求任何人工操作。

我总算完结了蹭吃蹭喝~

终究作用比我之前幻想的还要好,我使用Instagram推行交换了许多餐厅的礼品卡以及免费餐。

凭借人工智能、主动化脚本和数据科学的力气,在代码脚本主动工作时,我可以无忧无虑。它是一个特别尽责的推销员,让我可以有自己的时刻享用日子。

终究,假如你也有使用编程和主动化脚本做了相关项意图经历,比如在北京吃上了霸王餐,欢迎投稿给咱们~

投稿邮箱:zz@bigdatadigest.cn

相关报导:

https://medium.com/@chrisbuetti/how-i-eat-for-free-in-nyc-using-python-automation-artificial-intelligence-and-instagram-a5ed8a1e2a10

声明:该文观念仅代表作者自己,搜狐号系信息发布渠道,搜狐仅供给信息存储空间服务。