【Python机器学习】NLP概述——深度处理

自然语言处理流水线的各个阶段可以看作是层,就像是前馈神经网络中的层一样。深度学习就是通过在传统的两层机器学习模型架构(特征提取+建模)中添加额外的处理层来创建更复杂的模型和行为。

上图中,前四层对应于聊天机器人流水线中的前两个阶段(特征提取和特征分析)。例如,词性标注(POS标注)是在聊天机器人流水线的分析阶段生成特征的一种方法。POS标签由默认的SpaCY流水线自动生成,该流水线包括上图中所有的前四层。POS标注通常使用优先状态转换机来完成,就像nltk.tag包中的方法一样。

底部的两层(实体关系和知识库)用户构成包括特定领域信息/知识的数据库。使用所有这6层从特定语句或文档中提取的信息可以与该数据库结合使用进行推理。这里的推理结果是从环境中检测到的一组条件中进行的逻辑推理,就像聊天机器人语句中包含的逻辑一样。图中较深层的这种推理机被认为属于人工智能的领域,机器可以对它们的世界进行推理,并使用这些推理结论做出决策。然而,聊天机器人只使用上面几层的算法,可以在没有上述知识库的情况下做出合理的决策。这些决策组合起来可能会产生令人惊讶的类人行为。

在NLP的最上面几层,最上面3层是进行有意义的情感分析和语义搜索,以及构建仿人聊天机器人所需要的全部内容。事实上,只使用一层,直接使用文本(字符序列)作为语言模型的特性,就可以构建一个有用且有趣的聊天机器人。如果给出足够的实例语句和回复,只进行字符串匹配和搜索的聊天机器人就能够参与到合理的令人信服的对话中。

举例来说,开源项目ChatterBot大大简化了上述流水线,它只计算输入语句和记录在数据库中的语句之间的字符串"编辑距离"(莱文斯坦距离)。如果其语句-回复对数据库中包含匹配的语句,则可以通过复用对应的回复(来自预先"学习"过的人工或机器对话框)作为最新语句的回复。对于该流水线,所需要的只是聊天机器人流水线的步骤3(生成)。在这个阶段,只需要一个暴力搜索算法就可以找到最佳回复。通过这种简单的技术(不需要分词或特征生成),ChatterBot作为Salvius的对话引擎可以维护令人信服的对话过程。

Will是有Steven Skoczen开发的一个开源的Python聊天机器人框架,它采用了完全不同的方法。Will只能通过训练对正则表达式语句作出回复。这是"重人力轻数据"的一种NLP方法。这种基于语法的方法对于问答系统和任务执行助理机器人尤其有效。这些系统通过使用"模糊正则表达式"和其他技术来寻找近似的语法匹配,从而克服了精确正则表达式的脆弱性。模糊正则表达式不做精确匹配,而是无视插入、删除和替换的最大错误数目,在可能的语法规则(正则表达式)列表中寻找最接近的语法匹配结果。然而,要对基于语法的聊天机器人行为的广度和复杂度进行扩展,需要大量的人力开发工作。

浅层MLP能够完成许多强大的任务,而且,几乎不需要人工监督。通常来说,机器可以持续不断地从它所处的环境中学习。

相关推荐
Gigavision5 小时前
基于BUAA-MIHR数据集的噪声解耦对比学习算法
人工智能·python·深度学习·算法
IPdodo_5 小时前
跨境 API 调用不稳定怎么办:出口、超时重试与链路监控的实践
网络·python·网络协议
红海云5 小时前
Kimi 双端接入 CloudBase 的工程价值
人工智能·语言模型
Madison-No76 小时前
搭建项目测试环境
linux·运维·服务器·python
计算机编程-吉哥6 小时前
YOLO26 vs YOLO11 vs YOLOv8:深度学习咖啡果实成熟度分割系统【计算机毕业设计选题推荐】
人工智能·python·深度学习·yolo·django·毕业设计
冬奇Lab6 小时前
一年前没启动 AI 提效的团队,今年在付什么钱?
人工智能
大衛說7 小时前
11 · 异常处理与日志
python
NeoGressAI外贸数字化7 小时前
IOR新规9月18日生效:Form 5106六项资料自查清单
人工智能
auto_go7 小时前
Python 实战指南(7)——账本动不动就崩?先把“魔法字符串”和“裸报错”干掉
python
Beyond_System|系统之外7 小时前
【学编程】Python基础编程题100道(21-60)
开发语言·python·算法