Inspiration

“男朋友说我太胖了,我是被PUA了吗?”

“他总是对我忽冷忽热的,这是不是PUA啊?”

“我还未成年,他就对我提出那样的事情,是PUA嘛?”

... ...

“近日某流量明星涉嫌多次诱骗未成年人与未成年人发生性关系。”

但人们坠入爱河时,他们主观上的情感偏差容易使自身陷入”当局者迷“的困境,容易有下面的想法:

“他/她这么说我,无意伤害我,只是为了我好,他/她是在为了我们的未来而说我。”

“他/她和他们只是朋友,一定是我想多了。”

最终,通通累积,演化成这样的想法:

“哦,果然是我自己,太差劲了。”

在这个花花世界,我们有没有什么小程序或者app,是能识别是否碰上渣男/渣女?

PUA是这阵子被热议的话题,PUA的结局一般都不是很好。

如果当局者无法分辨PUA,那机器呢?

如果我们收集到了足够多的人渣语录,备胎语录,和情感波动,用sota的自然语言处理模型进行训练,便可以提取那些话语中的特征,来从聊天记录中判定对方是否在PUA。

理论存在,实践开始...

提前写在最后(请一定要看这一段)

其实我们都知道,人的情感其实很难用机器完全检测的出来,因为我们的情感比机器所能检测的更加丰富。做这个webapp的初衷其实是希望能唤醒在被pua中的人。毕竟,用这个app的人,要么是为了玩 (诶,就是玩,看看它准不准,比如作者本人是想看看这app可不可以能检测出吴姓明星是否为渣男), 要么是自己其实已经知道被pua了但是就是不愿意相信。而这个app可以在他们迷茫的时候能给他们一些局外人的视角,来让他们确定这就是pua,给自己一个很好的理由,来结束被人渣的统治,来停止pua对他们继续造成侵害,同时提升一定的反pua意识。

What it does

用户可以在这个软件中上传自己的聊天记录截图,我们的后台可以从截图中提取文字,并用自然语言处理模型来分析对方说的话,生成一份渣男渣女检测报告,返回给客户端。

How we built it

使用了React来布置前端, 实现一个高效,简约,易懂的网页。 前端github

使用flask来做API进行前端和后台的数据交互。 后端github

使用optical character recognition(OCR)来从聊天截图中识别文字。

使用了BERT做迁移学习,并用知乎,微博上获得的渣男/渣女和备胎语录,来训练一个自然语言处理模型. 并用这个模型来辨别聊天记录的人渣指数。 BERT+数据集

使用了AWS comprehend来做sentiment analysis来分析对话的情感,并且总结情感波动。

生成报告使用flask RESTful API返回给前端。

将后端部署在AWS上,前端部署在netlify上

部署结果

demo

如果netlify运行出现问题,是因为netlify禁止http的traffic, 所以请下载前端代码,前端github 在本地运行,后端部署是永远稳定的,即使在local运行前端也可以获得后端的数据 操作简单,command如下

git clone https://github.com/JiaqiWang18/unihack-frontend

cd unshackled-frontend

npm -I

npm start

然后进入:127.0.0.1:3000

Challenges we ran into

少量的数据集我们可以用来训练。 很难找到合适免费的部署环境,来执行我们后端需要的OCR操作,和模型的inference

Accomplishments that we're proud of

实现了一个完整的end to end pipeline, 并且找到合适的部署环境

What we learned

我们学到了如何高效运用OCR来进行文字提取,学到了项目实践时需要考虑的部署难度和环境。

What's next for Anti-pua

这个app未来不止可以针对深陷pua中的人,还可以帮助上网的老年人辨别营销和诈骗。 提供海报生成功能,可以分享在朋友圈。

Share this project:

Updates