Transformers 自然语言处理(四)(3)https://developer.aliyun.com/article/1514230
用 SRL 进行调查
第十章以我建议使用 SRL 与其他工具结束,我们现在正在这样做。
我首先在demo.allennlp.org/
上使用语义角色标注接口运行了 She was satisfied
。
结果是正确的:
图 12.11:简单句子的 SRL
这个谓词框架中的分析很清晰:was
是动词,She
是 ARG1,而 satisfied
是 ARG2。
我们应该在一个复杂的句子中找到相同的分析结果,而我们做到了:
图 12.12:动词“satisfied”与其他单词合并,导致混淆
Satisfied
仍然是 ARG2,所以问题可能不在这里。
现在,焦点在ARGM-ADV上,它也修改了 was
。这个字 false
是相当具有误导性的,因为ARGM-ADV是与包含 thinking
的ARG2相关的。
thinking
谓词给出了一个 false impression
,但在这个复杂的句子中却没有被识别为谓词。难道 she was
是一个未知的省略,正如第十章中的SRL 范围的质疑部分所示?
通过输入完整句子而不使用省略号,我们可以快速验证:
Though the customer seemed unhappy, she was, in fact, satisfied but she was thinking of something else at the time, which gave a false impression.
SRL 的问题再次出现,正如我们在第十章中所看到的那样。我们现在有五个正确的谓词和五个准确的框架。
Frame 1 显示 unhappy
与 seemed
正确相关:
图 12.13:“Unhappy” 与 “seemed” 正确相关
Frame 2 显示 satisfied
现在从句子中分离出来,并在一个复杂句子中单独识别为 was
的参数:
图 12.14:“satisfied” 现在是 ARG2 中的一个独立单词
现在,让我们直接到包含thinking
的谓语,这是我们希望 BERT SRL 能够正确分析的动词。现在我们压制了省略号并重复了“she was”在句子中,输出是正确的:
图 12.15:没有省略号的准确输出
现在,我们可以用两个线索结束我们的 SRL 调查:
- 单词
false
对算法来说是一个让其难以理解复杂句子中其他单词的令人困惑的论点 she was
的重复省略号
在我们转向 GPT-3 之前,让我们回到 Hugging Face,带着我们的线索。
用 Hugging Face 进行调查
现在让我们回到本章 DistilBERT 用于 SST 部分使用的 DistilBERT 基础 uncased fine-tuned SST-2 模型。
我们将调查我们的两个线索:
she was
的省略号
我们将首先提交一个没有省略号的完整句子:
“尽管顾客似乎不快乐,但事实上,她是满意的,只是当时在想其他事情,给人以错误的印象”
输出仍然是消极的:
图 12.16:一个假阴性- 在一个原本积极的句子中出现了
false
。
现在我们将false
从句子中移除,但留下省略号:
“尽管顾客似乎不满意,但事实上,她很满意,只是当时在想其他事情,留下了这样的印象”
中了!输出为积极:
图 12.17:一个真阳性
我们知道单词false
对 SRL 造成混淆,如果有was thinking
的省略号。我们也知道false
对我们使用的情感分析 Hugging Face transformer 模型造成困惑。
GPT-3 能做得更好吗?让我们看看。
用 GPT-3 游��场进行调查
让我们使用 OpenAI 的高级推文分类器的例子,并通过三个步骤修改它来满足我们的调查需求:
- 步骤 1:向 GPT-3 展示我们期望的内容:
句子:“顾客很满意”
情感:积极
句子:“顾客并不满意”
情感:消极
句子:“服务很好
”
情感:积极
句子:“这是评论的链接
”
情感:中性
- 步骤 2:展示少量输出格式示例:
1\. "我喜欢新的蝙蝠侠电影!"
2\. "我讨厌我的手机电量耗尽时的情况"
3\. "我的一天过得如此 ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Fgitee.com%2FOpenDocCN%2Ffreelearn-dl-pt2-zh%2Fraw%2Fmaster%2Fdocs%2Ftfm-nlp%2Fimg%2FIcon_01.png&pos_id=img-5keXZGB9-1714450845018)"
4\. "这是文章的链接"
5\. "这个新的音乐视频让我大吃一惊"
句子情感评分:1: 积极
2: 消极
3: 积极
4: 中性
5: 积极
- 步骤 3:将我们的句子与其他句子一起输入(编号 3):
1\. "我受不了这个产品"
2\. "服务很差! ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Fgitee.com%2FOpenDocCN%2Ffreelearn-dl-pt2-zh%2Fraw%2Fmaster%2Fdocs%2Ftfm-nlp%2Fimg%2FIcon_02.png&pos_id=img-jOOhwzvn-1714450845018)"
3\. "尽管客户看起来不满意,但事实上她当时是满意的,只是想着其他事情,这给人以错误的印象"
4\. "支持团队很棒!"
5\. "这是产品的链接。"
句子情感评分:1: 消极
2: 积极
3: 积极
4: 积极
5: 中性
输出似乎令人满意,因为我们的句子是积极的(编号 3)。这个结果可靠吗?我们可以在这里多次运行示例。但让我们深入到代码层面去找出答案。
GPT-3 代码
我们只需在游乐场中点击查看代码,复制它,并将其粘贴到我们的 SentimentAnalysis.ipynb
章节笔记本中。我们添加一行只打印我们想要看到的内容:
response = openai.Completion.create( engine="davinci", prompt="This is a Sentence sentiment classifier\nSentence: \"The customer was satisfied\"\nSentiment: Positive\n###\nSentence: \"The customer was not satisfied\"\nSentiment: Negative\n###\nSentence: \"The service was `![](https://gitee.com/OpenDocCN/freelearn-dl-pt2-zh/raw/master/docs/tfm-nlp/img/Icon_01.png)`\"\nSentiment: Positive\n###\nSentence: \"This is the link to the review\"\nSentiment: Neutral\n###\nSentence text\n\n\n1\. \"I loved the new Batman movie!\"\n2\. \"I hate it when my phone battery dies\"\n3\. \"My day has been `![](https://gitee.com/OpenDocCN/freelearn-dl-pt2-zh/raw/master/docs/tfm-nlp/img/Icon_01.png)`\"\n4\. \"This is the link to the article\"\n5\. \"This new music video blew my mind\"\n\n\nSentence sentiment ratings:\n1: Positive\n2: Negative\n3: Positive\n4: Neutral\n5: Positive\n\n\n###\nSentence text\n\n\n1\. \"I can't stand this product\"\n2\. \"The service was bad! ![](https://gitee.com/OpenDocCN/freelearn-dl-pt2-zh/raw/master/docs/tfm-nlp/img/Icon_02.png)\"\n3\. \"Though the customer seemed unhappy she was in fact satisfied but thinking of something else at the time, which gave a false impression\"\n4\. \"The support team was `![](https://gitee.com/OpenDocCN/freelearn-dl-pt2-zh/raw/master/docs/tfm-nlp/img/Icon_03.png)`![](https://gitee.com/OpenDocCN/freelearn-dl-pt2-zh/raw/master/docs/tfm-nlp/img/Icon_03.png)\"\n5\. \"Here is the link to the product.\"\n\n\nSentence sentiment ratings:\n", temperature=0.3, max_tokens=60, top_p=1, frequency_penalty=0, presence_penalty=0, stop=["###"] ) r = (response["choices"][0]) print(r["text"])
输出不稳定,正如我们在以下回应中所看到的:
- 运行 1:我们的句子(编号 3)是中性的:
1: 消极
2: 消极
3: 中性
4: 积极
5: 积极
- 运行 2:我们的句子(编号 3)是积极的:
1: 消极
2: 消极
3: 积极
4: 积极
5: 中性
- 运行 3:我们的句子(编号 3)是积极的
- 运行 4:我们的句子(编号 3)是消极的
这将引导我们得出调查的结论:
- SRL 表明,如果句子是简单而完整的(没有省略号,没有遗漏的单词),我们将得到可靠的情感分析输出。
- SRL 表明,如果句子是中等难度的,输出可能可靠,也可能不可靠。
- SRL 表明,如果句子是复杂的(省略号、多个命题、许多含糊不清的短语等),结果是不稳定的,因此不可靠。
开发者的现在和未来的工作岗位的结论是:
- 云 AI 和即用模块将需要更少的 AI 开发。
- 将需要更多的设计技能。
- 发展用于供给 AI 算法、控制它们并分析其输出的经典流程管道将需要思考和有针对性的发展。
本章展示了开发者作为思想家、设计师和管道开发的巨大前景!
现在是总结我们的旅程并探索新的Transformers地平线的时候了。
摘要
在本章中,我们讨论了一些高级理论。组合性原则不是一个直观的概念。组合性原则意味着Transformers模型必须理解句子的每个部分才能理解整个句子。这涉及到将提供句子部分之间联系的逻辑形式规则。
情感分析的理论难度需要大量的Transformers模型训练、强大的机器和人力资源。虽然许多Transformers模型为许多任务进行了训练,但它们通常需要针对特定任务进行更多的训练。
我们测试了 RoBERTa-large、DistilBERT、MiniLM-L12-H384-uncased 和出色的 BERT-base 多语言模型。我们发现其中一些提供了有趣的答案,但需要更多的训练来解决我们在多个模型上运行的 SST 样本。
情感分析需要对句子有深入的理解和非常复杂的序列。所以,尝试 RoBERTa-large-mnli 是有意义的,以了解干扰任务会产生什么。这里的教训是,在像 transformer 模型这样非常不传统的东西上,不要墨守成规!尝试一切。在各种任务上尝试不同的模型。transformer 的灵活性使我们能够在同一模型上尝试许多不同的任务,或者在许多不同的模型上尝试相同的任务。
我们一路上收集了一些改善客户关系的想法。如果我们发现一个客户经常不满意,那么这个客户可能只是在寻找我们的竞争对手。如果有几个客户抱怨某个产品或服务,我们必须预见未来的问题并改善我们的服务。我们还可以通过 transformer 反馈的在线实时表现来展示我们的服务质量。
最后,我们直接在线使用 GPT-3 进行情感分析,除了使用界面之外什么也不用做!这是令人惊讶的有效,但我们看到人类仍然需要解决更困难的序列。我们看到 SRL 如何帮助识别复杂序列中的问题。
我们可以得出结论,开发人员在思考者、设计者和管道开发方面有着巨大的未来。
在下一章,使用 transformer 分析假新闻,我们将使用情感分析来分析对假新闻的情感反应。
问题
- 对于情感分析,没有必要为 transformer 进行预训练。(是/否)
- 一个句子总是积极的或消极的。它不能是中性的。(是/否)
- 合成性原理表示 transformer 必须理解句子的每一部分才能理解它。(是/否)
- RoBERTa-large 旨在改进 transformer 模型的预训练过程。(是/否)
- 一个 transformer 可以提供反馈,告诉我们客户是否满意。(是/否)
- 如果产品或服务的情感分析一直是负面的,这有助于我们做出适当的决策,以改善我们的服务。(是/否)
- 如果一个模型在一个任务上不能提供良好的结果,那么在更改模型之前,它需要更多的训练。(是/否)
参考文献
- Richard Socher, Alex Perelygin, Jean Wu, Jason Chuang, Christopher Manning, Andrew Ng, 和 Christopher Potts, 递归深度模型用于情感树库的语义组成性:
nlp.stanford.edu/~socherr/EMNLP2013_RNTN.pdf
- Hugging Face 管道、模型和文档:
huggingface.co/transformers/main_classes/pipelines.html
huggingface.co/models
huggingface.co/transformers/
- 刘银涵, 陈丹琪, 奥默·莱维, 迈克·刘易斯, 卢克·泽特莫耶, 和 维塞林·斯托扬诺夫, 2019, RoBERTa: 一个经过强化优化的 BERT 预训练方法:
arxiv.org/pdf/1907.11692.pdf
- 艾伦人工智能研究所:
allennlp.org/
- 艾伦人工智能阅读理解资源:
demo.allennlp.org/sentiment-analysis
- RoBERTa-large 贡献者,吴照峰:
zhaofengwu.github.io/
- 斯坦福情感树库:
nlp.stanford.edu/sentiment/treebank.html
加入我们书籍的 Discord 空间
加入书籍的 Discord 工作空间,与作者进行每月的 问我任何事 会议: