SwiftUI 利用本机 “AI” 让 App 懂你的喜怒哀乐(一)

在这里插入图片描述

概述

大家都知道,要想一款 App 真正的引人入胜、夺人心魄,最重要的是站在用户的立场投其所爱。如何更加贴心的懂得用户的小心思呢?诚然,大家可以动用市面上诸多 AI 大模型来让我们得偿所愿,不过这些对于秃头初学小码农们来说门槛略微有些“高不可攀”。

在这里插入图片描述

所幸的是,Apple 早就在本地集成了一些“轻”AI 框架,利用它们大家起码可以小试牛刀来预先验证一下我们的设计构想。好消息是:这些框架使用起来都相当简单,值得我们进一步“潜精研思”。

闲言少叙,让我们马上开始“情感剖析”大冒险吧!

Let’s go!!!😉


1. 如何让 App 看破用户的喜怒无常?

在 App 日常使用中,我们可以通过用户的一举一动来获知“上帝”的心意。比如,他们随意的只言片语、任性上传的美图,甚至一个指尖随手绘制的涂鸦都可以让我们心领神会。

我们在之前这篇博文中曾讨论过,如何为任意图片自动打一个“审美分”:

而在这里,我们就来聊聊如何从用户的“一言半语”中洞悉他们当前的心境吧。

从 iOS 12(macOS 10.14)开始,苹果推出了自然语言(Natural Language)框架以便我们可以从容的分析自然语言文本并推断其特定语言的元数据。

在这里插入图片描述

自然语言框架提供了多种自然语言处理(NLP)功能,支持多种不同的语言和脚本。使用此框架可将自然语言文本分割为段落、句子或单词,并为这些片段标记相关信息,例如:词性、词汇类别、词元、脚本和语言等等。

在这里插入图片描述

紧接着,苹果仿佛感觉还少了点儿什么,又在 iOS 13(macOS 10.15)为自然语言框架中的 NLTagger 核心对象添加了新的情绪得分(Sentiment Score)方案(Scheme):

在这里插入图片描述

利用 Sentiment Score,我们可以评估任意文本所表达含义的情绪价值。比如积极的、消极的或是中性的。该方案计算出来的得分会在 [-10, 1.0] 区间中,其中 1.0 表示最积极的情绪,-1.0 表示最消极的情绪,而 0.0 则表示中性“不痛不痒”的情感体验。

2. 几行代码打开“新世界”

首先,为了使用自然语言框架我们需要先导入它:

import NaturalLanguage

接着,我们构建一个 NLTagger 对象并明确我们需要为文本所抒发的情感打分的意图:

let text = "需要评分的文本"
let tagger = NLTagger(tagSchemes: [.sentimentScore])
tagger.string = text

最后,我们可以调用 NLTagger#tag 方法来评估传入文本的情绪价值了:

if let sentiment = tagger.tag(at: text.startIndex, unit: .paragraph, scheme: .sentimentScore).0, let score = Double(sentiment.rawValue) {
    print("情绪评分:\(score)")
}

是的,你们没有看错!上面基本就是全部代码了!

所以小伙伴们了然了吗,利用自然语言框架评估一段文本的情绪价值只需寥寥几行,看来苹果似乎用极小的代价获得了与 ChatGPT 类似的“银杏化”体验,结果真的如此美好吗?

在下一篇博文中,我们会继续介绍自然语言框架评估人类情感的执行效果,并将找到一个急需解决的小问题,不见不散!


想要系统学习 Swift 的小伙伴们,请来我的《Swift 语言开发精讲》专栏逛一逛哦:

在这里插入图片描述


总结

在本篇博文中,我们介绍了在真机上借助自然语言(Natural Language)框架评估人类情绪的简单方法。

感谢观赏,我们下一篇再见!😎

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大熊猫侯佩

赏点钱让我买杯可乐好吗 ;)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值