当前位置:   article > 正文

《自然语言处理实战入门》 第二章:NLP 前置技术 ---- python开发环境搭建(IDE 与编码规范简介)_自然语言处理nlp实战

自然语言处理nlp实战


工欲善其事,必先利其器,熟练掌握python开发环境,虚拟环境,anaconda 等数据科学软件的使用技巧才能令自然语言处理工作游刃有余。

更新内容见新版:python开发简介:编码规范,【Conda,Jupyter】环境搭建、配置与工程基础实践


1.python 开发简介

本节课的主要内容介绍python 工程化开发的实践经验,为后续网络爬虫,正则表达式,分词,可视化等功能进行铺垫。

爬取本人CSDN 博客 , 其目的是为了我们后面课程的一个原始数据积累,语料积累。有了这部分语料和素材我们就可以针对博客数据,实战化的进行一些有针对性的分析。在实际应用中,我们往往做自然语言处理的第一步就是分析语料数据的积累。

语料的积累,以及进一步的自然语言处理工作首先得要做好工程化 的开发准备,下面我们就进一步的针对python 工程化开发实战经验进行一个分享。

1.1 python 集成开发环境

之前课程的内容稍微有点纸上谈兵,旨在给大家热热身。本届课程进入实战环节,下面我们先来看一下python开发环境 的搭建,集成开发环境IDE 不用说了,都大同小异,下面几个是我经常用到的,推荐给大家:

  • 1.pycharm
  • 2.spyder
  • 3.jupyter notebook
  • 4.JupyterLab

1.1.1 pycharm

在这里插入图片描述

pycharm 或者我们后面介绍的anaconda自带的spyder,甚至Sublime Text 都能作为集成开发环境,听说VS CODE 也非常好用,宇宙最强编译器 visual studio 最新版的直接继承了python 开发的插件也可以 说是非常方便,由windows平台开发者直接转python 的朋友一定会上手很快。

1.1.2 spyder

下面介绍一个 非常像matlab 的编译器:
在这里插入图片描述
Spyder is a powerful scientific environment written in Python, for Python, and designed by and for scientists, engineers and data analysts. It features a unique combination of the advanced editing, analysis, debugging, and profiling functionality of a comprehensive development tool with the data exploration, interactive execution, deep inspection, and beautiful visualization capabilities of a scientific package.
写了这么长一个从句,其实就是说spyder 其实是给分析人员用的。实际开发中我推荐,首选使用pycharm,其次spyder,最后我想说的是 jupyter notebook 也得会。

1.1.3 jupyter notebook

Project Jupyter exists to develop open-source software, open-standards, and services for interactive computing across dozens of programming languages.
jupyter 项目是一个开源web 服务开发计划,主要提供使用多种语言进行交互式计算服务。

Reveal.js 可以将notebook或者markdown直接转化为演示文稿
在这里插入图片描述
优点:
1.整合多种资源
2.交互式的编程体验
3.结果重现与可视化

他的多用户版本叫做jupyterhub
https://github.com/jupyterhub/jupyterhub

1.1.4 jupyter lab

这是jupyter lab 中对于洛伦兹方程(Lorenz equation),x, y(吸引子),系统的演化轨迹。

在这里插入图片描述
https://jupyterlab.readthedocs.io/en/latest/getting_started/installation.html

  • 基于项目工作方式。
  • 它的用户体验更好。
  • Jupyter Lab连接Google Drive

JupyterLab的特色是允许用户在一个窗口内安排笔记本、终端、文本文件和输出的工作区。你可以把窗口拖到你想要的位置,也可以通过实时预览编辑常用文件格式,如Markdown、CSV和JSON,实时查看项目进展。

1.1.5 Colaboratory

在这里插入图片描述
Colaboratory 是一款研究工具,用于进行机器学习培训和研究。它是一个 Jupyter 笔记本环境,不需要进行任何设置就可以使用。Colaboratory 若果你用的比较好的话,其实是可以薅羊毛的,google 提供了免费的云GPU使用,勉强做个测试还是可以的。

常见问题解答:
https://research.google.com/colaboratory/faq.html

中文说明:

https://colab.research.google.com/notebooks/welcome.ipynb

1.1.6 Visual Studio Code


1.2 python虚拟环境准备

有了集成开发环境,还要准备搭建python 的编译环境以及虚环境。这是由于开源软件目前更新换代非常快,不同开发包之间相互依赖和更新可能引起的冲突及连锁反应。

进行Python开发时,多个项目可能使用到不同的依赖,例如:

A项目需要1.8版本的tensorflow,2.2版本的OpenCV
B项目需要2.0版本的tensorflow,3.2版本的OpenCV

这种:
为了给不同的工程创建互相独立的运行环境技术

我们称之为python 虚环境技术。 其主要优点是:

  • 避免库之间的相互干扰
  • 系统原生环境过于庞大

python部分开发包,有属于开源组织或商业组织。不同开发包之间相互依赖和更新可能引起的冲突及连锁反应,比如升级scrapy就可能导致matplotlit 失效。一旦我不使用了,可以直接删除虚拟环境,而不用管各种文件残留,关联问题了。

综上使用虚环境进行python 开发是我们的不二选择。

1.2.1 Anaconda

Anaconda is a package manager, an environment manager, a Python/R data science distribution, and a collection of over 1,500+ open source packages.
Anaconda是一个包管理器、一个环境管理器、一个python/R数据科学发行版和一个超过1500个开放源代码包的集合。

1.2.2 虚拟环境与包管理

虚环境有:

  • conda
  • virtualenv
  • pipenv
  • virtualenvwrapper

包管理有:

  • conda
  • pip

virtualenv不便于对环境的集中管理,virtualenvwrapper很好的解决了这个问题
conda结合了pip和virtualenv的功能

1.2.3 conda

Package, dependency and environment management for any language—Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN

https://conda.io/en/latest/

Conda是一个开源软件包管理系统和环境管理系统,运行在Windows、MacOS和Linux上。Conda可以快速安装、运行和更新包及其依赖项。Conda可以在本地计算机上轻松创建、保存、加载和切换环境。它是为Python程序创建的,但它可以为任何语言打包和分发软件。

关于conda 的特点:https://blog.csdn.net/zhouchen1998/article/details/84671528 这篇文章讲的非常清楚,我再来概括一下,conda 的主要特有:

  • pip只能安装Python的包,conda可以安装一些工具软件,即使这些软件不是基于Python开发的
  • 相比其他venv一般占用项目文件夹空间,conda每个虚拟环境不会占用项目文件夹的空间,它创建在用户设定的一个位置,这使得多个项目共享一个虚拟环境更加方便。
  • 图形化管理界面,自动集成主流科学分析开发包numpy,pandas 等安装方便。

在这里插入图片描述

1.2.4 conda基本环境配置

基本python 开发环境要求我们针对本课程单独创建一个隔离环境,使用conda进行管理。
该环境使用的python开发包可以完成,网络爬虫,数据分析,NLP 等功能任务。

0. 基本设置

由于anaconda 的conda 请求源在国外,我们配置为清华镜像,这样速度更快。如果自己也不知后面都要用什么开发包,先随便指定一个。

2019年5月左右,清华,中科大先后无限期关闭了conda 源, 以后只能使用官方的了。

但是过了一个月清华的又开了,哈哈

#conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
#conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
#conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
#conda config --set show_channel_urls yes

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
conda config --show  #查看conda的配置

# 如果有问题 ,可以删除 channels
# conda config --remove-key channels

# 我们使用 python 3.6.2 这个最常用的python 版本
conda create --name NLP_DEMO python=3.6 jieba selenium
conda activate NLP_DEMO



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

1. 创建环境
使用如下命令,并准备好requirements.txt (这个文件罗列了,该环境的基本开发包及版本)

# 创建隔离环境
conda create --name <env> --file <this file>
  • 1
  • 2

requirements.txt

# This file may be used to create an environment using:
# $ conda create --name <env> --file <this file>
# platform: win-64
asn1crypto=0.22.0=py36_0
certifi=2016.2.28=py36_0
cffi=1.10.0=py36_0
cryptography=1.8.1=py36_0
idna=2.6=py36_0
jieba=0.39=py_1
openssl=1.0.2l=vc14_0
packaging=16.8=py36_0
pip=9.0.1=py36_1
pycparser=2.18=py36_0
pyopenssl=17.0.0=py36_0
pyparsing=2.2.0=py36_0
pysocks=1.6.6=py36_0
python=3.6.2=0
selenium=3.141.0=py36hfa6e2cd_1000
setuptools=36.4.0=py36_1
six=1.10.0=py36_0
urllib3=1.21.1=py36_0
vc=14=0
vs2015_runtime=14.0.25420=0
wheel=0.29.0=py36_0
win_inet_pton=1.0.1=py36_0
wincertstore=0.2=py36_0

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

2. 激活conda环境


conda activate NLP_DEMO

#conda批量导出包含环境中所有组件的requirements.txt文件

conda list -e > requirements.txt

#pip批量安装requirements.txt文件中包含的组件依赖

conda install --yes --file requirements.txt

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

3.安装selenium,scrapy

浏览器输入以下地址,查看chrome 版本

chrome://version/
  • 1

我的版本:Google Chrome 72.0.3626.96 (正式版本) (32 位)
在下面地址中找到对应版本

https://sites.google.com/a/chromium.org/chromedriver/downloads

下载后把压缩包中的exe 放在:

D:\ProgramData\Anaconda3\envs\NLP_DEMO\Scripts

4.pycharm 设置使用conda 环境
在这里插入图片描述

1.2.5 后台运行 jupyter notebook


jupyter notebook --allow-root >jupyter_notebook.log 2>&1 &
  • 1
  • 2

1.2.6 jupyter notebook 中使用conda 的虚环境

在这里插入图片描述

# 在基本环境中安装nb_conda
(base) C:\Users\Lenovo>conda install nb_conda
# 切换到 新安装的环境中 activate fast_claim,并安装ipykernel 
(fast_claim) D:\ProgramData\Anaconda3\envs>conda install ipykernel 

  • 1
  • 2
  • 3
  • 4
  • 5

这下就可以用jupyter notebook 中加载了
在这里插入图片描述

1.3 编码规范

1.3.1 PEP8

https://www.python.org/dev/peps/pep-0008/

1.3.2 pylint

代码分析插件
在这里插入图片描述
在这里插入图片描述


2. 实战环境搭建

jupyter notebook 配置

正好我手里面有个虚拟机,CentOs 7 版本的
之前写过一个 CentOS 7 下使用虚拟环境Virtualenv安装Tensorflow cpu版记录

但是,目前的话,我们用conda 管理环境,所以这块我再针对conda 重新梳理一下,

安装anaconda ,首先去官网


wget https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh

# 先生成配置文件
# 生成jupyter notebook启动参数文件并修改参数
jupyter notebook --generate-config

# 配置密码登录
jupyter notebook password

# vi .jupyter/jupyter_notebook_config.py

#文件jupyter_notebook_config.py添加如下参数,后保存

c.NotebookApp.ip = '*'  #外部IP地址客户端可以访问
c.NotebookApp.notebook_dir = '/home/jason/jupyter_nb'  #本地notebook访问的目录
c.NotebookApp.open_browser = False   #jupyter notebook启用时不再本地默认打开浏览器
c.NotebookApp.port = 9999            #默认访问的端口是9999


# root 下启动
#直接启动notebook后台服务,并输出运行日志,之后就可以远程访问这个服务了
jupyter notebook --allow-root >jupyter_notebook.log 2>&1 &

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

windows 下生成的 配置文件信息,所在位置:

(base) C:\Users\Administrator>jupyter notebook --generate-config
Writing default config to: C:\Users\Administrator\.jupyter\jupyter_notebook_config.py
  • 1
  • 2

windows 下设置时候,系统多加了一个变量 “%USERPROFILE%”,所以造成修改c.NotebookApp.notebook_dir 没有生效,删除即可
在这里插入图片描述

jupyter notebook 插件安装

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
jupyter nbextension enable execute_time/ExecuteTime

  • 1
  • 2
  • 3
  • 4

conda 虚环境配置


# 单次使用
# conda install tensorflow -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
conda config --show  #查看conda的配置

# 我们使用 python 3.6.2 这个最常用的python 版本
conda create --name NLP_DEMO python=3.7 selenium tensorflow 
conda activate NLP_DEMO

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

pip 配置


使用方法很简单,直接 -i 加 url 即可!如下:


pip install tensorflow -i https://pypi.douban.com/simple




# pip install tensorflow -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

# 配置清华PyPI镜像(如无法运行,将pip版本升级到>=10.0.0)
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 上面命令会修改文件,Writing to /root/.config/pip/pip.conf

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

TensorFlow 安装

官网链接:TensorFlow 安装

jupyter notebook 中 matplotlib seaborn 中文字体显示

matplotlib seaborn 中文字体显示


参考文献

https://blog.csdn.net/zhouchen1998/article/details/84671528

瞧瞧,这样的代码才叫Pythonic

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/524693
推荐阅读
相关标签
  

闽ICP备14008679号