用于解析facebook messenger数据的Python库
zucked的Python项目详细描述
扎克:分析你的Facebook Messenger数据
这是什么?在
zucked是查看facebook messenger数据的一种快速简便的方法。在
主要特点
- 在Facebook Messenger上轻松查看您最常用的单词
- 查看其他facebook用户发送给你最多的文字
- 检查您向个人或组发送的消息量
- 搜索您可能已发送或接收的单词或短语以查看:该单词或短语所在的邮件,以及发件人和发送时间
安装
源代码当前托管在GitHub上:https://github.com/Jordan-Milne/zucked
最新发布的版本可在Python package index (PyPI)
pip install zucked
教程
- 在
download您的Facebook Messenger数据(How to)
- 选择文件类型时,请确保它是JSON而不是HTML
- 在
在目录中创建一个python文件,该文件与您下载的“收件箱”文件夹相同-不在收件箱文件夹内
在
导入
要导入zucked,请键入:
import zucked as zd
阅读消息
将read_messages
另存为变量,稍后我们将调用该变量的方法。在
示例:
^{pr2}$顶部单词()
调用ms
上的top_words(facebook_name, stop_words=True, period='all time')
返回用户发送的最常见单词及其发送次数的有序列表:
此方法适用于您发送的和从某个用户收到的热门词
示例:
ms.top_words('Jordan Milne')
退货:
[('I', 3), ('love', 2), ('data', 1)]
如果你想过滤掉停止词,(what are stop words)并且只是某一年的最上面的单词,那么方法就是:
ms.top_words('Jordan Milne', stop_words=False, period='2016')
顶级护航队
调用ms
上的top_convos(facebook_name)
以返回一个有序的列表,列出该个人或组的名称以及您发送给该个人或组的消息量:
示例:
ms.top_convos('Jordan Milne')
退货:
[('User 1', 33),
('User 2', 21)]
如果你想在某一年里获得最热门的对话,那么方法就是:
ms.top_words('Jordan Milne', period='2016')
搜索_messages()
调用ms
上的search_messages(facebook_name, value)
返回一个列表,该列表包含作为value
输入的单词或短语的完整消息,消息发送给谁,以及消息发送的日期和时间。在
示例:
ms.search_messages('Jordan Milne', 'hello')
退货:
[{'Message': 'I'm sorry but, hello world',
'Sent to': 'Auston Matthews',
'Date': '2019-06-09 11:46:54'}]
此方法适用于您发送的和从某个用户收到的消息
格式化\u top_words()
在ms
上调用format_top_words(facebook_name, input_list, year)
返回一个嵌套字典,其中包含用户输入的单词列表的年份和计数,这些单词是为绘制而专门设置的格式。在
示例:
ms.format_top_words('Jordan Milne', ['Matthews','Tavares','Marner','Andersen'], '2019')
退货:
{'2019': {'Matthews': 75, 'Andersen': 70, 'Marner': 17, 'Tavares': 10}}
现在是有趣的部分。如果你想知道你每年使用前5个单词的频率,可以通过几个简单的步骤来完成。在
使用以下for循环将所有年份输入同一字典:
example={}
for i in range(2010,2021):
example.update(ms.format_top_words('Jordan Milne',['Matthews','Tavares','Marner','Andersen'], str(i)))
现在我们已经收集并整理了数据,我们准备绘制:
import matplotlib.pyplot as plt
# get inner keys
inner_keys = list(example.values())[0].keys()
# x-axis is the outer keys
x_axis_values = list(example.keys())
# loop through inner_keys
plt.title("Facebook Messenger Word Count")
plt.xlabel("Year")
plt.ylabel("Count");
for x in inner_keys:
# create a list of values for inner key
y_axis_values = [v[x] for v in example.values()]
# plot each inner key
plt.plot(x_axis_values, y_axis_values, label=x)
plt.legend()
输出应该如下:
- 项目
标签: