InstaKnow
为机器学习模型构建的 Flutter 应用,通过分析 Instagram 用户的标题来显示其情绪。
前端应用
InstaKnow是一款Flutter应用程序,允许用户根据他人的帖子标题分析其情绪。该应用程序采用机器学习NLP方法来分析帖子标题,并输出积极、消极和中性分数。
该Flutter应用程序使用Provider + Get_it进行状态管理。
采用了MVVM(模型-视图-(视图)模型)架构。
注意:在“关于”页面中,服务器的URL可以更改(因为免费版URL可能随时更改)
屏幕截图
HomeScreen

应用UI演示

公开个人资料分析器

私密个人资料分析器

示例

后端
InstaKnow是一款开源移动应用程序,允许您根据帖子标题分析公开和私密个人资料的情绪。
此存储库是该应用程序的后端/REST API,应用程序的所有请求都以JSON对象的形式接收。完成情绪分析并评估情绪后,这些结果将以JSON形式发送回应用程序,并在其中显示。
后端采用Python开发,REST API以Flask Web应用程序的形式提供。可以使用ngrok或任何其他可行选项临时托管Web应用程序。
ML实现为NLP(自然语言处理),使用Vader Sentiment Analysis库分析帖子标题。将接收到的分数以积极、消极、中性和复合值的形式提供,然后将其平均值发送回前端应用程序进行显示。
公开个人资料不需要任何身份验证,但如果您想查看私密个人资料的情绪,则必须提供一个可以访问该私密个人资料(已关注)的帐户的凭据,以便进行身份验证访问以提取帖子标题。
JSON
如上所述,此存储库是一个使用JSON对象进行通信的REST API。
JavaScript Object Notation (JSON)是一种开放式标准文件格式,它使用人类可读的文本来传输由属性?值对和数组数据类型(或任何其他可序列化的值)组成的数据对象。它是一种非常常见的数据格式,应用范围广泛。例如,在AJAX系统中作为XML的替代。
一个例子
{
"squadName": "Super hero squad",
"homeTown": "Metro City",
"formed": 2016,
"secretBase": "Super tower",
"active": true
}
数据格式
数据传输的格式如下所示:
从应用程序到服务器
- 公开个人资料
{
"type":"Public",
"login_id":"some_public_username"
}
- 私密个人资料
{
"type":"Private",
"login_id":"some_private_username",
"login_username":"username_for_authentication",
"password":"password_for_authentication"
}
从服务器到应用程序
- 成功
{
"type":"Success",
"Value":result,
"Picture":profile_picture_link,
"Name":full_name_of_profile
}
- 失败
{
"type":"Fail",
"Value":error_message,
}
安装与执行
下载或克隆存储库到某个目录,然后进入包含app.py文件的文件夹。
- 在终端中设置FLASK环境变量FLASK_APP为python文件名(Windows系统如下):
set FLASK_APP=app.py
- 使用以下命令运行Flask应用:
flask run
未来更改
-
添加加密以确保用户在分析私密个人资料时的安全性。
-
基于其他关注者对用户帖子的评论进行分析。
-
将应用程序永久部署到AWS等平台作为Web服务,而不是使用ngrok。
-
检查政策,确保将此应用程序发布到Play商店/App商店不会因网络抓取而违反Instagram的政策。