2020.06
1概述
Node.js 是一个基于Chrome V8引擎的JavaScript 运
行环境,随着前后端分离架构逐步成为Web 端开发的主流,Node.js 也成为各种技术栈的核心所在。另一方面,Python 编程语言则在科学计算和数据分析领域被广
泛应用,伴随着近年来人工智能的火热,更是在机器学习和自然语言处理等方面发挥着难以替代的作用。
在Web 端应用日益人性化、智能化的今天,后端业务逻辑不可避免地涉及到协同过滤等机器学习算法,以及分词、检索等自然语言处理技术。这方面并非Node.js 所长,从零开始实现这些算法,(1)实现成本
过高,(2)实际运行效率低下。
js脚本编程入门因此,提出了一种基于Node.js 的Python 脚本调用方法,可以在后端业务中调用Python 写成的脚本,并将Python 脚本的处理结果输出给前端,以达到智能化Web 端服务的目的。
2
实现原理
2.1前后端分离
从软件工程的角度,开发工作可拆分为两种基本分
工:前端(front-end)和后端(back-end)。所谓前端,简单来说,就是用户看到的用户交互界面和各种数据的展示。而后端则是具体业务逻辑的实现和数据的持久存储。
理想的前后端开发理应与主从式架构(client-server model)保持高度的一致和统一。即,前端只负责客户端的用户界面,后端只负责在服务端提供服务。客户端向服务端提交调用某种服务的请求,服务端就做出响应并将结果返回给客户端。
基于这个思路,在后端只需准备好各种类似设计的接口,每当客户端的请求方法和请求URI 发过来,就调用符合该请求的接口,返回相应的状态码和以JSON 格式承载的响应体就可以了。这类符合REST
(REpre⁃sentational State Transfer,表述性状态转移)设计风格的程序接口就可以称为RESTful API。基于RESTful API,前、后端在开发过程中就可以实现彻底分离:后端只实现API 接口,前端只专注于设计用户界面。如此一来,不仅实现了开发者的职责分离,也实现了前后端技术上的分离。
2.2Python 脚本调用
基于前后端分离架构,实际业务逻辑尽数被封装在
Node.js 实现的接口之中。而涉及到人工智能相关的业
务,可以进一步分离在Python 脚本里,并被接口所调用。调用方面可以借助Node.js 的第三方库python-shell 来实现,利用这个库,能够有效地实现Node.js 和Python 脚本之间的通信。具体方法如下。2.2.1安装与引用
和其他Node.js 的第三方库一样,使用Node.js 的包
管理器NPM (Node Package Manager)进行安装。打开任意命令行工具(比如Windows 的PowerShell 或CMD),输入如下指令执行即可。$npm install python-shell
并在接口文件中,从该库引出PythonShell 类。作者简介:吴晓一(1981-),男,博士,讲师,研究方向:Web 前后端开发、语料库语言学、机器学习、自然语言处理。
基于Node.js 的Python 脚本调用方法
吴晓一
(厦门大学嘉庚学院,福建漳州363105)
要:Node.js 自从问世以来,由于其高并发,语言一致等优点,深受开发者的青睐。特别是在前后端分离逐渐成为业界主流的今天,Node.js 更是作为整个技术栈的核心部分而存在。然而,受Node.js 的自身局限,在后端业务涉及到自然语言处理等人工智能相关领域时,远不如Python 语言便捷、高效。提出了一种基于Node.js 的Python 脚本调用方法,并以一个在线中文分词系统的实例,表明该方法的有效性。
关键词:Node.js 语言;Python 语言;前后端分离;在线中文分词
24

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。