基于gensim的自然语言处理web服务器开发
一、自然语言处理笔记
1.generator与list区别
generator采用next机制,不用构建整个存储空间,而list需要构建整个存储空间
2.字符串前面加u、r、b的含义
u indicate string use unicoder indicate do not use transfer.etc,print('/n') will make cursor to next raw,but print(r'/n') will print '/n' exactlyb indicate python2.x's bytes
3.处理步骤
1.下载wiki的原始数据包2.用wiki的process.py解析数据包得到繁体字数据3.opencc进行处理,转换成简体中文数据4.jieba进行分词和词性分类5.gensim建模6.界面开发
4.文件上传
选择一个语料文件上传:
#视图函数代码片
file=request.files['file']
file.save
5.文件下载
#https://www.jianshu.com/p/8daa3d011cfd
from flask import send_file, send_from_directory
import os
@app.route("/download/<filename>", methods=['GET'])
def download_file(filename):# 需要知道2个参数, 第1个参数是本地目录的path, 第2个参数是文件名(带扩展名)directory = os.getcwd() # 假设在当前目录return send_from_directory(directory, filename, as_attachment=True)
6.http 413
上传文件过大导致
在nginx配置中添加 client_max_body_size 200m;
7.yield
用于构造生成器。返回关键字右边表达式结果,相当于return,在下一次调用next()的时候继续执行语句def foo(num):print("starting...")while num<10:num=num+1yield num
for n in foo(0):#隐式调用next()print(n)
------------------------------------------
starting...
1
2
3
4
5
6
7
8
9
10
8.导航栏标签选中效果实现
1.导航栏<li>标签添加ID2. $(document).ready(function(){var location=window.location.href;var id=location.substring(location.lastIndexOf('/')+1);$("#"+id).addClass("active");#此处id若为空,jQuery会报符号错误!});
服务器部署
1.第一种(gunicorn+flask+Nginx)
https://blog.csdn.net/qq_36114862/article/details/81380956 1)安装gunicorn pip install gunicorn2)启动gunicorngunicorn --worker=3 main:app -b 127.0.0.1:50003)安装Nginxsudo apt install nginx4)启动Nginxsudo /etc/init.d/nginx start#一般会自启动5)Nginx检查配置文件sudo Nginx -t6)修改Nginx配置文件sudo vim /etc/nginx/sites-available/defaultserver { listen 80; server_name _; # 外部地址 location / { proxy_pass http://127.0.0.1:5000; #此处和你gunicore的ip和端口一致 proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }}7)重启Nginxsudo service nginx restart
附录:部署中遇到的问题合集
1.调整Python优先级
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 10
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 20
2.virtualenv使用(重点):
1.首先,安装virtualenv,在默认的python2下的pip就行:
[sudo] pip install virtualenv
2.创建虚拟环境:
virtualenv -p /usr/bin/python3 py3env
3.激活虚拟环境:
source py3env/bin/activate你会注意到shell的提示符行前多了(py3env)字样,这样你就可以放心的使用python3做开发了。先下载个三方库试试吧pip install httplib2
大功告成了!
如果要退出python3虚拟环境,输入命令即可:deactivate
主要记录的是在:创建虚拟环境:这一步,这里直接创建的是python3环境而不再是python2.x环境了。
3.SyntaxError: Non-ASCII character ‘\xe6’ in file test.py on line 1, but no encoding declared
解决:在该.py的文件头部添加: 下列代码,即可!# -- coding: utf
4.No module named distutils.spawn virtualenv python3
解决:sudo apt-get install python3-distutils
5.pip install gensim read timeout
解决:更换镜像源pip install -i https://pypi.mirrors.ustc.edu.cn/simple gensim
6.vim回退
命令行模式下u
7.Nginx重启
sudo service nginx restart
8.HTPP 502
有很多种原因,目前发现的有1.nginx配置文件的端口号与gunicorn监听的不一致导致
9.requirements.txt
1.创建pip freeze > requirements.txt2.安装pip install -r requirements.txt
10./upload 上传文件请求无法识别
form表单中添加 enctype='multipart/form-data'
11.添加日志模块
1.创建好目录结构2.创建日志配置文件3.如下代码即可生成日志对象import logging.config
logging.config.fileConfig("./app/config/logger.ini")
logger = logging.getLogger("main")
logger.info('first log')
11.文件上传后没生成模型文件
服务器自带的Python版本为3.5,而开发环境是3.7.2。所以,在服务器上安装3.7.2
1.下载Python
wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
2.解压tar -zvxf Python-3.7.2.tgz
3…/configure&sudo make &sudo make install
4.安装Python3.7.2中遇到如下问题
1.zipimport.ZipImportError: can’t decompress data; zlib not available
sudo apt install zlib1g.devsudo apt install zlib1g输入以上指令后变为问题13↓
2.ModuleNotFoundError: No module named ‘_ctypes’
sudo apt-get install libffi-dev
3.No module named _ssl
1.vi /root/Python-3.7.1/Modules/Setup.dist2.将下面原本注释掉的内容给取消注释即可,一共四行Socket module helper for socket(2)_socket socketmodule.c timemodule.c3.sudo apt-get install libssl-dev(可以尝试直接使用步骤3&4)4.重新编译安装./configure --prefix=/usr/local/python37makemake install
4.No module named ‘_bz2’
sudo apt-get install libbz2-devcd python3.7./configuremakemake install
12.查看内存情况
free -m
13.Word2Vec报错,执行时卡住一段时间后killed
14.安装gensim更换镜像源
pip install -i https://pypi.mirrors.ustc.edu.cn/simple gensim
15.运行gensim报警告 smart_open deprecated
pip uninstall -r reuirement.txt 卸载所有包后按照能运行的环境重新装包
基于gensim的自然语言处理web服务器开发相关推荐
- 基于Go语言的Web服务器开发
基于Go语言的Web服务器开发 本文将介绍使用Go语言来开发一个简单的Web服务器,其中将包括文件上传和下载功能. 必备条件 Go语言环境 一个文本编辑器 网络服务器 步骤一:编写server.go文 ...
- arm Linux 低成本方案,参赛作品《低成本基于ARM+Linux平台搭建web服务器的物联网学习板》...
[报名阶段需要填写的内容] 1. 参赛者姓名(必填项): 王徕泽 2. 单位或学校名称(选填项): 徕泽电子工作室 3. 当前职务或职称(选填项): 室长 4. 参赛作品的名字(必填项): 低成本基于 ...
- JavaScript之后端Web服务器开发Node.JS基本模块学习篇
JavaScript之后端Web服务器开发Node.JS基本模块学习篇 基本模块 fs文件系统模块 stream支持流模块 http crypto加密模块 基本模块 因为Node.js是运行在服务区端 ...
- C++web服务器开发
C++web服务器开发 1. 首先介绍一下这个项目:这个项目是通过C++11编写的web服务器,模型为Reactor+非阻塞I/O(epoll作为I/O多路复用实现方式)+线程池,支持get.head ...
- 基于Docker和Golang搭建Web服务器
1 场景描述 基于centos7的docker镜像搭建golang开发环境 在docker容器内,使用golang实现一个Web服务器 启动docker容器,并在容器内启动Web服务器 我购买了一个最 ...
- 基于第三方开源库的OPC服务器开发指南(2)——LightOPC的编译及部署
基于第三方开源库的OPC服务器开发指南(2)--LightOPC的编译及部署 前文已经说过,OPC基于微软的DCOM技术,所以开发OPC服务器我们要做的事情就是开发一个基于DCOM的EXE文件.一个代 ...
- 基于epoll实现简单的web服务器
1. 简介 epoll 是 Linux 平台下特有的一种 I/O 复用模型实现,于 2002 年在 Linux kernel 2.5.44 中被引入.在 epoll 之前,Unix/Linux 平台下 ...
- 项目--基于http协议的小型web服务器
在我们对网络的学习过程中,会接触到网络编程,我们在网络中可以深刻认识到服务器与客户端的交互,当我们输入网址时背后发生的一系列后端操作,为了加深我们对网络部分的学习,我们找到了一个开源项目TinyWeb ...
- SuperDog——一个基于netty的web服务器开发项目
项目GitHub地址:https://github.com/HelloWorld-Ian/SuperDog 这是我在实习期间开发的一个项目demo,简单来说是一个基于netty框架的web服务 ...
最新文章
- 【网络协议】TCP分段与IP分片
- mysql Table 'plugin' already exists
- linux命令之查看动态库符号-nm
- Sql Server 监控 Job 执行情况
- 征战蓝桥 —— 2018年第九届 —— C/C++B组第3题——乘积尾零
- 如何成为一名优秀的程序员?
- 下载ueditor-1.1.3.jar源码和源代码
- c语言将链表写入二进制文件_通过逐级遍历将二进制树转换为单链表的C程序
- Python 神经网络是这样识别手写字符哒?
- Ubuntu帮大忙了
- PHP URL参数获取方式的四种例子
- UNIX网络编程第三版
- Algorithms 学习笔记——1.1
- 什么是PERT网络分析?
- 每天做好一件事,坦然微笑地面对生活
- 几个在线网页聊天网站
- C语言short转成int,short转换int的小例子
- 14期《未来,我来》1月刊
- 面向 Java 开发人员的区块链链代码
- 东华大学计算机蔡博士,蔡雅琦博士为信息学院学生做“大学生人际关系”讲座...