使用 ibm_watson python 包中的“ToneAnalyzerV3”,如何排除特定音调?

Posted

技术标签:

【中文标题】使用 ibm_watson python 包中的“ToneAnalyzerV3”,如何排除特定音调?【英文标题】:Using `ToneAnalyzerV3` from the ibm_watson python package, how can I exclude a specific tone from being included? 【发布时间】:2021-02-15 05:37:24 【问题描述】:

这会返回来自分析仪的所有音调

# returns all tones (anger, fear, sadness, tentative, analytical
tone_analysis = tone_analyzer.tone('text': text, content_type='application/json').get_result()

如何从分析返回的“分析”音调中排除?

【问题讨论】:

我相信你已经看到了,但看起来 API 不再接受 tones=[] 音调列表来限制其分析。 cloud.ibm.com/apidocs/tone-analyzer我也没有看到记录所有音调的置信度得分的方法,而不仅仅是主要音调。 来自此处的 python-sdk 文档:watson-developer-cloud.github.io/python-sdk/v1.0.2/apis/… 看起来截至 2017 年底,分数必须通过阈值 (0.5) 才能返回: Attr strtone_id: 唯一的、非本地化的音调的标识符。 2017-09-21:该服务可以返回以下音调 ID 的结果:愤怒、恐惧、喜悦和悲伤(情绪音调);分析性、自信和试探性(语气)。该服务仅返回分数达到最低阈值 0.5 的音调的结果。 【参考方案1】:

抱歉,答案(截至 2017 年 9 月 21 日)似乎是“你不能”。

python-sdk 的文档说明了这一点。 http://watson-developer-cloud.github.io/python-sdk/v1.0.2/apis/watson_developer_cloud.tone_analyzer_v3.html

具体看:

在 ToneAnalyzerV3.tone() 下,参数tones - 你不能再指定要返回的音调列表:

tones (list[str]) – 2017-09-21:已弃用。服务继续 接受向后兼容的参数,但参数 no 更长的时间会影响响应。

在 ToneAnalyzerV3.DocumentAnalysis() 下,属性tones - 服务只返回值>= 0.5 的色调,这意味着你不能自己做softmax来排除分析:

属性列表[ToneScore] 音调: (可选)2017-09-21:一个 ToneScore 对象数组,提供每个合格音调的分析结果 文档。该数组包括得分为的任何音调的结果 至少 0.5。如果没有音调的分数符合此条件,则数组为空 阈值。

在 ToneAnalyzerV3.SentenceAnalysis() 下,属性音调 - 相同的故事:

Attr list[ToneScore] 音调:(可选)2017-09-21:一个数组 ToneScore 对象为每个对象提供分析结果 句子的限定语气。该数组包括任何结果 分数至少为 0.5 的音调。如果没有音调,则数组为空 达到此阈值的分数。

【讨论】:

可惜。这将是一个有用的功能。 是的,我在想他们为什么要删除它。我可以想到两个原因:1)人们“错误地”使用小于 0.5 的值,或者 2)人们使用 Watson 系统来训练他们自己的系统!嗯,我想知道你是否仍然可以通过削减概率来做到这一点......我认为它不会那么好。

以上是关于使用 ibm_watson python 包中的“ToneAnalyzerV3”,如何排除特定音调?的主要内容,如果未能解决你的问题,请参考以下文章

将装饰器应用于python包中的所有函数

如何使用标准库包名称解决 Python 包中的命名空间冲突?

python使用statsmodels包中的robust.mad函数计算数组(Array)的中位数绝对偏差(MADMedian Absolute Deviation)

包中的Python导入功能

python 一个包中的文件调用另外一个包文件 实例

python使用statsmodels包中的tsa.acf函数指定nlags参数计算指定滞后位置个数(级别)时间序列数据自相关性(autocorrelation for specific lag)