InstaKnow

为机器学习模型构建的 Flutter 应用,通过分析 Instagram 用户的标题来显示其情绪。

前端应用

InstaKnow是一款Flutter应用程序,允许用户根据他人的帖子标题分析其情绪。该应用程序采用机器学习NLP方法来分析帖子标题,并输出积极、消极和中性分数。

该Flutter应用程序使用Provider + Get_it进行状态管理。

采用了MVVM(模型-视图-(视图)模型)架构。

注意:在“关于”页面中,服务器的URL可以更改(因为免费版URL可能随时更改)

屏幕截图

HomeScreen

Home_Screen

应用UI演示

App_UI

公开个人资料分析器

Analyzer

私密个人资料分析器

PAnalyzer

示例

Example

后端

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的政策。

GitHub

https://github.com/ketanchoyal/InstaKnow