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

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

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

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

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

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

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

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

相关推荐
阡之尘埃1 小时前
Python数据分析案例61——信贷风控评分卡模型(A卡)(scorecardpy 全面解析)
人工智能·python·机器学习·数据分析·智能风控·信贷风控
孙同学要努力3 小时前
全连接神经网络案例——手写数字识别
人工智能·深度学习·神经网络
Eric.Lee20213 小时前
yolo v5 开源项目
人工智能·yolo·目标检测·计算机视觉
其实吧34 小时前
基于Matlab的图像融合研究设计
人工智能·计算机视觉·matlab
丕羽4 小时前
【Pytorch】基本语法
人工智能·pytorch·python
ctrey_4 小时前
2024-11-1 学习人工智能的Day20 openCV(2)
人工智能·opencv·学习
bryant_meng5 小时前
【python】Distribution
开发语言·python·分布函数·常用分布
SongYuLong的博客5 小时前
Air780E基于LuatOS编程开发
人工智能
Jina AI5 小时前
RAG 系统的分块难题:小型语言模型如何找到最佳断点?
人工智能·语言模型·自然语言处理
-派神-5 小时前
大语言模型(LLM)量化基础知识(一)
人工智能·语言模型·自然语言处理