利用机器学习来分析大量受访者的反馈

任何现代公司都在乎其声誉。 短语:“您的意见对我们很重要”或“对您的购买进行评价”,“您会推荐我们的公司吗?” 从字面上看,我们在商店,诊所甚至公共服务场所的每一步都困扰着我们。 政府机构以及其他公司已经对评估其工作产生了兴趣,并且也对此予以关注。 医疗机构将不会与长期不利的专家续签合同。 服务提供商试图不断监视消费者对商品和服务的反应,以使他们的服务更易获得,更优质,从而更具竞争力。 意见可以帮助其他消费者在购买之前对机构,机构,产品或服务有所了解,从而避免购买错误。 大型公司的员工结构必不可少,其中包括打击客户外流的公关部门,其中关键因素是及时响应消费者的要求。 如何在不增加成本和提高响应速度的情况下构建此类结构的工作? 作为一个示例,让我们考虑使用机器学习对大量响应者进行操作分析。



多种语言



首先,考虑一个示例,该示例演示了用于用户界面开发的现代UX / UI方法的功能。 假设您是全球一家跨国服务公司的所有者。



每次购买后,您都要求客户留下有关您产品的反馈。 从技术上讲,您当前的软件是以这样一种方式组织的:无论用户留下何种语言的反馈,他们都会不加区别地落入产品的“基础”。 问题在于如何确定评论以哪种语言显示,其语调是什么,并且在最佳情况下,将其翻译成几种语言并针对当前用户以其母语显示适用于所有评论的适当翻译,而与原始语言无关。
如果您现在与开发人员联系,那么很可能会为您提供一个选项,其中将选择语言的任务委托给用户。 它可能看起来像这样



将要求用户从一长串的列表中选择一种语言,有时列出的语言没有翻译,这反过来又使用户感到困惑。 看起来像这样



基于大多数用户会说两种语言的事实,他们只会听懂两种语言,实际上,这些选择变成了“折磨”。

他们可以为您提供的另一种同样常见的方法是通过IP地址定义区域,因此是最可能的通用语言。 指出其缺点并不是现代全球化的最佳方法,足以指出现代软件相对于您所在地区的重要性,只有莫斯科的居民在这方面很幸运,很可能始终正确地确定了他们所在的地区。

机器学习



解决此类问题的一种优雅方法是机器学习。 目前,这甚至不需要精通数学。 例如,仅使用MS Azure认知服务



通过输入的短语可以确定输入文本的许多指示符,包括语言,关键短语及其音调。 对于正在考虑的情况,这可以简化接口



您不再需要输入语言和用户评分-这些事实会自动跟踪。 之后,大大简化了将呼叫分配到区域分支机构以及监视客户外流的任务



大部分工作都从用户和员工转移到一台不会疲劳,工作迅速且在机械方面不会出错的机器上。



认知服务



首先,您需要连接到MS Azure认知服务并获得对用于分析给定文本并返回其特征的API的访问权限。 这个过程并不复杂,将在另一篇文章中进行更详细的讨论。



有两种使用HTTP请求和客户端访问API的方法。 特别是对于.net,您需要连接软件包


进一步调用API
var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://northeurope.api.cognitive.microsoft.com/text/analytics/v2.0/languages"); httpWebRequest.Method = "POST"; httpWebRequest.Headers.Add("Content-Type:application/json"); httpWebRequest.Headers.Add("Ocp-Apim-Subscription-Key:61..."); var documents = new Documents(); documents.Add(new Document(Description)); using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { string json = JsonConvert.SerializeObject(documents); streamWriter.Write(json); streamWriter.Flush(); streamWriter.Close(); } 

并解析收到的答案

 var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); String response; using (var streamReader = new StreamReader(httpResponse.GetResponseStream(), Encoding.UTF8)) { response = streamReader.ReadToEnd(); } var result = JsonConvert.DeserializeObject<DocumentsResult>(response); var doc = result.documents[0].detectedLanguages[0]; 

如果我们将接收到的数据写入数据库,则会得到以下信息


(在用户对文章发表评论后添加了一个示例)


结果分析



我们将分析结果,为此,我们将使用FastReport软件包构建多个报告,该软件包在交付时具有开源版本

youtu.be/Tyu7v24zer0

打开按音调排序(1阳性,0阴性),我们将正面评论分组在顶部,将负面评论分组在底部。

youtu.be/HbuXMuDZFmo

如有必要,您可以按语言对评论进行分组,并将相关报告发送给区域单位

youtu.be/YF8RG3g5FRs

结论



新技术不仅可以显着改善用户界面,而且可以优化员工的工作,降低开发成本。 拒绝对现有软件进行昂贵的修改。 不久的将来,机器学习的前景将大大提高软件质量和用户满意度。 易于实施的报告解决方案的使用将使更多的用户无需繁重的编程即可访问数据。

参考文献



github.com/ufocombat/Languages-open
azure.microsoft.com/zh-CN/services/cognitive-services/text-analytics
www.fast-report.com/cn
youtu.be/Tyu7v24zer0
youtu.be/HbuXMuDZFmo
youtu.be/YF8RG3g5FRs

Source: https://habr.com/ru/post/zh-CN445726/


All Articles