资源技术动态如何用NLP来反映我自己的FaceBook数据?

如何用NLP来反映我自己的FaceBook数据?

2019-10-23 | |  112 |   0

原标题:如何用NLP来反映我自己的FaceBook数据?

来源:AI研习社


当一个NLP(自然语言处理)在观察我的写作风格(也是如何处理我自己的Facebook数据!)

概述

就在

不久之前,我还十分痴迷于思考我在一天之内产生的文本数据总量的问题上。如果你像我一样,做大量的书写工作,这无疑是一个机会,邮件,短信,Facebook。当然,你也可能还有其他的更有创造性的输出。可能你写日记,写音乐等等。如果你是个学生,那么你可能还有一些需要书写的作用。对于我本人来说,我真的很希望可以从我产生的这些文本数据中得到一些启示,使用NLP来分析这些数据真的是一件非常酷的事情。

本系列将会记录我是如何去实现这一想法的,如果你也感兴趣的话,你也可以参照本系列,自己去尝试一下。


找到你的数据

在考虑过我所有的数据之后,我决定聚焦于以下几个数据源:

我写的学校作业

我的日记

我创作的歌曲集

我的Facebook数据(包括我的评论,帖子和聊天内容)

在我整个工程中我使用了以上所有的数据源,但是在本系列中,我将仅仅使用我的Facebook数据。

对大多数数据来说,我只需要将它放入一个文本文件中,然后调用这个文本文件。但是对于Facebook的数据,我需要做一些额外的预处理。


如何得到你的Facebook数据

我们要如何能够获取到Facebook的数据呢?事实上要你想象的简单很多。现在(2018.8.20),你可以通过以下步骤获得你的数据:

登入Facebook

点击右上角的倒三角符号

点击设置

点击左上第三个选项“你的Facebook信息(Your Facebook Information)”

下一级菜单中就有“下载你的信息(Download Your Information)”

接下来,你就可以选择你的所需要的数据,可以选择某时间段内的,也可以选择以哪种格式存储你的数据。

我选择以JSON格式下载了所有的数据。当我全部下载完毕后,我就得到了如下图的文件结构:

下载.png

每个文件夹中的文件都是我要求的JSON格式的。


预处理你的Facebook数据

我打算下载所有的Facebook数据,但是我并不希望在这个课题中使用所有的Facebook数据。对这个课题而言,我只关心我的帖子,评论和聊天历史。为了做到这些,我为每个种类的数据写了一个预处理脚本来下载所需要的内容到文本文件。

首先,处理信息:

5b7d16f91f326.png

你在这里会看到的是我正在遍历我的messages文件夹中的所有子文件夹。我从那里做的是我在信息JSON中读到的。对于每个可用的信息,我会检查它是否是我发送的信息。如果它不是Facebook默认的‘’You are now connected on Messenger‘’。接着我会使用它。 我给信息添加时间戳,然后将其添加到采用year.month.day.txt格式的文件中,这是我标记所有文本文件的格式,以便我可以记录词汇随时间的变化。

如果某些情况下,JSON的关键字不工作,我会忽略它。


对我写的帖子我做了非常类似的事情:

02.png


我的评论:

02.png

从那里开始,我已准备好使用我的Facebook数据。


载入数据

首先,我们将编写一个简单的函数来获取特定类别中所有文件的列表。这将使我们能够轻松跟踪哪个是哪个,并且我们将在操作和分析数据时保留这些命名方案。

03.png

在我们实际读入数据之前,我们将编写一个函数,我们将用它以几种不同的方式预处理数据。

04.png

我们在这里做的是制作我们文本的4种变体。 我们正在生产:
       我们的原始数据删除了标点符号和小写

       删除了停止词的数据

       我们的数据源于此

       我们的数据被推崇

考虑到这一点,我们现在可以创建一个基本对象,该对象将保存我们的文件数据,并允许用于在同一天集合来自Facebook的不同写作源:

05.png

现在让我们加载我们的数据并对其进行预处理。 我将在集合数据上演示代码,但它也适用于其他输入文件列表:

06.png

这可能需要一小段时间,但是当我们完成后,我们将能够开始查看有关我们文本的一些基本内容!


我最喜欢的词是什么?

让我们从基础开始吧。 我们将这些单词列表加载到各种来源中。 让我们来算一下,看看我们最常用的词是什么。 让我们看看我们的前20名。


我们可以这样写:

07.png

我们可以得到一个整齐的输出:

08.png

我喜欢只看我的词汇,所以这就是为什么我只记录我的个人来源。 我觉得有趣的是我经常在聊天中使用“哈哈”的变体。 我的大多数评论都是某人的名字。


我的个人用词看起来像什么?

那么,如果我们想要绘制单个单词以查看我们的用法如何从顶部单词到底部单词衰减,该怎么办? 我们可以编写一个通用的柱状图函数,如下所示:

09.png


从那里,我们可以修改我们的前20个函数,并可以将我们的注释列表直接输入到图中

10.png


我们得到两个漂亮的图像:

1571843629274746.png1571843634454220.png


我的数据的一些基本统计是什么?

让我们为我们的数据生成一些基本统计数据。 让我们设置一个函数来创建一个列表:


13.png

然后生成要存储到此函数的数据:

14.png

15.png

这些只是我认为有趣的一些统计数据。 我这次保存了所有数据,因为我觉得这将是最有趣的。

可以看到我在Facebook上有2,147天的文字活动。

我的首要词是'哈哈'(在那里并不奇怪)。

总词汇大小为19,508个单词:o

而且我已经使用了近400万个字符。

那是很多文字数据!


随着时间的推移,我的词汇用法是什么样的?

我想知道我的词汇用法随着时间的推移而变化。 我们怎样才能产生呢? 好吧,幸运的是我们给所有文件留了时间戳!

首先,让我们创建我们的绘图函数:

16.png


现在让我们编写一些函数来描绘我们的单词使用情况:

17.png


我们得到:

1571843748540586.png1571843769438160.png

我觉得有趣的是,在2013年中期,我使用了很多单词。我不太确定我要做什么,但是当你把它删除到独特的单词时,那天我使用的20,000个单词,并不是很多很独特......


更不用说,你绝对可以看到2017年后我的Facebook使用率下降。

我觉得这真的很酷!

打包起来

我们终于得到它了!我们对一些Facebook数据的基本分析。希望你从Facebook数据中学到一两招,也许是你自己的一些东西!我知道当我开始分析我的时候,我确实做到了。如果你想要分享很酷的视觉效果或事物,请给我发表评论!我很想知道其他人在自己的数据中找到了什么。

下一次,我想我们会对我们的Facebook数据进行一些情绪分析,看看我们是否能找到任何有趣的花絮。

如果您喜欢这篇文章或者发现它有任何帮助,如果您通过我一两美元来帮助资助我的机器学习教育和研究,我会永远爱你!每一美元都会让我更接近一点,我永远感激不尽。

并继续关注Facebook NLP分析!

原文链接:HTTPS://towardsdatascience.com/mapping-my-facebook-data-part-1-simple-nlp-98ce41f7f27d


发起:meeeyio 校对:付腾 审核:付腾

参与翻译(2人):Gerald Durrell、莫青悠

英文原文:Mapping My Facebook Data — Part 1: Simple NLP

THE END

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:专访腾讯钟黎:知文团队在智能问答系统方面的探索

下一篇:最强CNN语音识别算法开源了:词错率5%,训练超快,Facebook出品

用户评价
全部评价

热门资源

  • 应用笔画宽度变换...

    应用背景:是盲人辅助系统,城市环境中的机器导航...

  • GAN之根据文本描述...

    一些比较好玩的任务也就应运而生,比如图像修复、...

  • 端到端语音识别时...

    从上世纪 50 年代诞生到 2012 年引入 DNN 后识别效...

  • 人体姿态估计的过...

    人体姿态估计是计算机视觉中一个很基础的问题。从...

  • 谷歌发布TyDi QA语...

    为了鼓励对多语言问答技术的研究,谷歌发布了 TyDi...