hanlp安装只需一句话
在jupyter中输入
!python -m pip install --upgrade pip
!pip install hanlp -U
接着加载模型
输入
import hanlp
hanlp.pretrained.mtl.ALL
调用hanlp.load
输入
HanLP = hanlp.load(hanlp.pretrained.mtl.CLOSE_TOK_POS_NER_SRL_DEP_SDP_CON_ELECTRA_BASE_ZH)
具体可以参考https://aistudio.baidu.com/aistudio/projectdetail/1928216
但是如果你没有配置过torch和CUDA,运行hanlp.load一般会报这个错误。
这时就要下载相应的pytorch和CUDA
首先需要确认自己的NVIDIA.DLL后的参数
NVIDIA控制面板 -> 帮助 -> 系统信息 -> 组件
可以看到支持CUDA 11.2的版本
打开下载链接https://developer.nvidia.com/cuda-downloads(英伟达官网很慢,一定要耐心耐心耐心!!!)
往下滑动,找到
因为我的电脑最高支持11.2版本的,所以从11.2.2以下都可以装,但是我目前装的是10.2的版本
下面以10.2版本为例
下载好之后安装,默认路径即可,不用点别的,直接全部点下一步。
安装完成之后以管理员身份运行cmd
输入nvcc -V
显示相关版本即代表安装成功
下一步安装cuDNN
下载链接https://developer.nvidia.com/rdp/cudnn-archive
以10.2版本为例
安装cuDNN
将bin include lib中x64 的所有内容对应的放到cuda的文件夹中
下载的cuda一般路径为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
将cuDNN的bin里边的内容放到cuda里的bin
cuDNN中lib里的内容放到cuda里的include
x64也一样对应放进去
最后就是下载pytorch
不管是官网下载还是cmd中用命令下载都会慢到怀疑人生
所以离线下载吧
https://download.pytorch.org/whl/torch_stable.html
在下载pytorch之前,一定要看好对应的版本
用这个链接去看对应的版本https://pytorch.org/get-started/previous-versions/
cuda版本是10.2的可以对应好多torch的版本,我拿自己下载的1.7.1为例
我圈起来的地方可以清楚地看到,torch版本为1.7.1,对应的torchvision版本应为0.8.2
所以开始下载
看好不要下载cpu的
cpxx的意思是python的版本,可以打开cmd输入python查看自己的python版本
python3.9就是cp39
我自己的python是3.9版本的所以我下载的是这个
然后下载torchvision
通过上边所说的,如果我下载的torch是1.7.1,对应的torchvision版本应该是0.8.2
下载好之后,可以打开pycharm终端
输入pip install 自己下载的文件名(保证自己的torch和torchvision文件所在目录跟目前终端所在文件是一致的)比如我的终端所在的是这个目录,我的torch和torchvision文件需要在untitled文件中
以我下载的1.7.1为例
我要输入的命令就是 pip install torch-1.7.1-cp39-cp39-win_amd64.whl
提示成功后
安装torchvision ,方法同上
我要输入的命令是 pip install torchvision-0.8.2-cp39-cp39-win_amd64.whl
提示成功后即代表安装完成
在终端输入python
输入
import
torch
(torch.__version__)
(torch.cuda.is_available())
显示这个结果代表成功
此时可以在最开始提到的jupyter中新建一个文件,输入
HanLP = hanlp.load(hanlp.pretrained.mtl.CLOSE_TOK_POS_NER_SRL_DEP_SDP_CON_ELECTRA_BASE_ZH)
就不会报错
输入
doc = HanLP(['2021年HanLPv2.1为生产环境带来次世代最先进的多语种NLP技术。', '阿婆主来到北京立方庭参观自然语义科技公司。'])
print(doc)
会显示
成功了!
有部分内容参考的是这个链接https://www.jb51.net/article/210105.htm#_label3
只是感觉有一些细节说的不够完善,自己多说了一些细节而已。