1. NLP的开发环境
NLP的开发环境需要一种功能强大且易于使用的编程语言和相关工具。Python语言以其简洁的语法、丰富的库支持、以及内置的机器学习和数学库而备受青睐。由于Python是开源且免费的,因此无需额外资金投入即可进行NLP开发。推荐使用集成了Python开发环境和常用数据科学库的软件Anaconda,它能够简化环境设置过程。可以从 https://www.anaconda.com/download/ 下载Anaconda。
1.1 Anaconda安装
Anaconda是一个集成了conda、Python以及180多个科学包及其依赖项的开源Python发行版本。conda是一个开源的环境管理器,可用于安装不同版本的软件包及其依赖,并方便在不同环境之间切换。如果您只需要特定的包,或者希望节省带宽和存储空间,可以选择使用较小的Miniconda发行版,它仅包含conda和Python。
Anaconda适用于多种操作系统,包括Windows、Linux和Mac OS X,您可以根据自己的系统选择对应的版本。此外,Anaconda支持同时管理Python 2.7和3.x两个版本,但本文推荐使用Python 3,因为Python 2已经停止更新维护,并且本文中所有代码都基于Python 3编写。
在Windows系统下,安装Anaconda相对简单。您可以按照默认选项进行安装,并在选择安装路径后,在“Advanced Options”中勾选“Add Anaconda to my PATH environment variable”选项。对于初学者来说,建议勾选此选项,这样可以方便后续创建多个Python环境,尽管可能会对其他程序产生影响。
1.2 Anaconda 应用介绍
安装完成后,您会在开始菜单栏中看到几个应用程序,包括 Anaconda Navigator、Anaconda Prompt、Jupyter Notebook 和 Spyder。
1. Anaconda Navigator
Anaconda Navigator 是 Anaconda 发行版中提供的桌面图形界面,可以方便地启动应用程序、管理 conda 包、环境和频道,无需使用命令行。启动 Anaconda Navigator 后会打开一个网页,其中列出了一些应用程序,如 CMD.exe Prompt、JupyterLab、Jupyter Notebook、Spyder 和 RStudio 等。如果要运行 Spyder,只需在 Navigator 的主页上点击 Spyder,即可启动并开始编写和运行代码。
2. 用Anaconda Prompt创建环境
Anaconda Prompt 类似于命令提示符 CMD,但已经配置好了环境变量。刚安装完 Anaconda 时,其中的软件包可能比较旧,为了避免未来出现错误,您可以首先打开 Anaconda Prompt,然后输入 conda update --all 命令来更新所有包。在提示是否更新时输入 y(Yes)以继续更新,等待更新完成即可。
在 Anaconda Prompt 中,您可以直接运行 Python 文件(例如 python hello.py),或者输入 python 进入交互模式。这样的交互界面能让您方便地测试和运行代码。
在开发过程中,不同项目可能需要不同版本的包甚至是不同版本的 Python,这时可以使用虚拟环境来解决这些问题。通过创建一个独立的 Python 开发环境,可以实现不同项目之间的隔离。在 Anaconda Prompt 中,您可以利用 Anaconda 提供的 conda 工具来管理不同的 Python 环境。例如,初学自然语言处理的读者可以使用 conda 创建一个专门用于 NLP 的虚拟环境。
(1) 创建NLP的虚拟环境
先查看python版本,然后创建一个名为“NLP”的虚拟环境,并且指定Python版本,如代码1‑1所示
python --version #查看python版本 conda create -n NLP python=3.11.5 #如果python版本为3.11.5 |
(2) 进入NLP虚拟环境
创建虚拟环境完成之后,使用activate命令进入这个虚拟环境,并在NLP虚拟环境中查看配置的编译环境信息。如代码1-2所示。
activate NLP conda info -e |
1-2
图1‑2所示的信息中显示了虚拟环境所在路径,位于Anaconda安装路径下的 envs文件夹中。刚创建好虚拟环境,除了Python自带的包之外没有其他的包。查看当前环境下的所有包,如代码1‑3所示。
conda env list #查看所有的环境 |
(3) 在NLP虚拟环境中安装或卸载程序包
在学习过程中,我们可以根据需要使用两种方式安装软件包:pip install package_name 和 conda install package_name,其中 package_name 是指软件包的名称。在虚拟环境中,使用 pip install 只会安装指定的软件包本身,而 conda install 会自动处理软件包的依赖关系。在虚拟环境中安装和卸载程序包如代码1‑4、代码1‑5所示。
注意现在不需要卸载numpy包,仅供需要卸载时用
代码1‑4
conda install numpy #安装numpy包 |
代码1‑5
conda update numpy #对现有的numpy包进行升级 conda remove numpy #卸载现有的numpy包。 |
(4) 退出当前的编译环境
代码 1‑6
conda deactivate #退出当前环境,回到最开始的环境。 |
(5) 删除创建的NLP 虚拟环境
注意这里的环境后续还需要用,这一步仅供需要时使用,代码 1‑7
conda remove NLP --all #删除已有的NLP 环境 |
Anaconda能够管理不同环境下的包,使其在不同环境下互不影响。在NLP的学习过程中,会使用到很多的程序包,Anaconda的这种功能无疑为我们的学习提供了很大的便利。
1.3 Jupyter Notebook
Jupyter Notebook 是一个在浏览器中使用的交互式笔记本,适用于数据科学领域的人员,如机器学习和数据分析等。它允许将代码、文字和图像结合在一起,非常适合编写带有程序代码的文章,并进行交互式解释。
打开 Jupyter Notebook 有三种方式:
1. 在开始菜单栏中点击 Anaconda 下的 Jupyter Notebook 图标。
2. 在 Anaconda Prompt 中输入 "jupyter notebook" 命令,浏览器会自动打开并显示当前目录。
3. 在工作目录文件夹中按住 Shift 键并同时右键点击鼠标,在弹出的菜单中选择 "在此处打开命令窗口",然后输入 "jupyter notebook"。
打开 Jupyter Notebook 后,您可以点击右上角的 "New" 创建新的文档。Jupyter 的界面分为编辑模式和命令模式两种输入模式。当单元格的边框线是绿色时,表示处于编辑模式,可以输入代码或文本;按 Esc 键可以切换到命令模式。命令模式下的边框线是蓝色,可以使用键盘输入运行程序的命令,按 Enter 键切换回编辑模式。
在 Jupyter 中,文档以单元格为单位进行编辑。单元格有三种类型:
- Code(代码):用于输入可执行的代码。
- Heading(标题):表示此单元格的内容是标题,可以选择不同级别的标题。
- Markdown:使用 Markdown 语法编辑文本内容。
在编辑完成后,按下 Shift+Enter 快捷键或点击页面上方的 "Run Cell" 按钮来执行单元格中的命令。最后,编辑完成后,可以将文件保存为默认的 ".ipynb" 格式,也可以保存为其他格式,如 ".py"、".md"、".html" 等。
1.4 Spyder
Spyder是一款集成开发环境(IDE),提供了代码编辑器、编译器、调试器和图形用户界面工具,旨在帮助用户更便捷地编写和调试代码。与 Jupyter Notebook 类似,Spyder也是用于编写代码的 IDE 工具之一。
Spyder 的界面包括以下几个主要区域:
1. 菜单栏:包含了各种功能和命令选项。
2. 工具栏:提供了快捷菜单,并可以通过菜单栏中的 "View" 菜单的 "Toolbars" 选项进行勾选显示。
3. 工作区:用于编写和编辑代码。
4. 查看栏:用于查看文件、调试对象和变量。
5. 输出栏:显示程序的输出信息,也可作为 Python shell 终端来输入 Python 语句。
6. 状态栏:显示当前文件权限、编码格式、光标位置以及系统内存等信息。
菜单栏中的具体命令包括:
- File(文件):包含新建、打开、保存、关闭等文件操作。
- Edit(编辑):包含撤销、重复、复制、剪切等编辑内容的操作。
- Run(运行):用于运行代码,可以选择分块运行或整个文件的运行。
- Consoles(控制台):可以打开新的输出栏。
- Tools(工具)→Preferences(首选项)→IPython console:可调整字号、背景颜色,并设置启动执行的脚本和代码提示等。
- Tools→Preferences→Editor:可设置编辑器的显示方式,如背景、行号、代码提示等参数。
Spyder 提供了丰富的功能和定制选项,使得用户能够高效地编写和调试代码。
1.5 总结
简单介绍了一下nlp的环境搭建和常用的开发软件,具体软件方面的使用不多叙述,若有需要可联系我出相关程序的教程,本人水平有限,文中若有错误,欢迎指出。后续我会继续更新这系列的教程,求关注!