win7环境下用conda(3.7降级到3.6)安装pyltp哈工大NLP的python拓展包(源码安装)

win7环境下用conda(3.7降级到3.6)安装pyltp哈工大NLP的python拓展包(源码安装)

    • 把conda的python降级
    • 安装Visual C++ 14.0并且配置环境变量
    • 在conda里安装pyltp包
    • 下载ltp模型文件
    • 测试代码,用Ltp进行中文分词

说起来真的不是一般的糟心,安装pyltp花了我将近一天的时间才安装好,安装期间生怕哪一个步骤又报错了,可以算是步步惊心…根据安装失败的过程中出现的error信息,在查阅了中文英文无数篇博客和文档后我在这里汇总一下,说不定以后还可以派上用场。
之所以想在conda里安装pyltp是因为想用anaconda的spyder带的IPython写代码,用起来最方便。

把conda的python降级

也怪自己一开始没把pyltp版本对应的标注放在心上,到目前为止,pyltp是不支持python3.7及以上版本的:
(https://github.com/HIT-SCIR/pyltp )
win7环境下用conda(3.7降级到3.6)安装pyltp哈工大NLP的python拓展包(源码安装)_第1张图片
因为我的conda-自带的python版本是3.7,所以就必须降级到3.6或以下:
打开anaconda navigator, 点击environment
win7环境下用conda(3.7降级到3.6)安装pyltp哈工大NLP的python拓展包(源码安装)_第2张图片
找到python,并点击左侧绿色的小√,选择mark for specific version installation,再点击想要降级到的版本,点apply :
win7环境下用conda(3.7降级到3.6)安装pyltp哈工大NLP的python拓展包(源码安装)_第3张图片
win7环境下用conda(3.7降级到3.6)安装pyltp哈工大NLP的python拓展包(源码安装)_第4张图片

win7环境下用conda(3.7降级到3.6)安装pyltp哈工大NLP的python拓展包(源码安装)_第5张图片
等候重新安装即可。

安装Visual C++ 14.0并且配置环境变量

在pyltp的安装过程中 需要调用 cl.exe 完成源码的编译,而且过程中报错信息说明要安装Visual C++ 14.0,所以需要下载并安装Visual C++2015(对应14.0)https://www.visualstudio.com/zh-hans/downloads/ ,并且安装好要将它加入系统环境路径。(这个过程中最好安装一个叫everything的系统文件搜索工具)
安装好后,现在我们来设置环境路径:
点开始菜单,搜索框输入path,然后点编辑账户的环境变量,打开Path,添加两个路径:
win7环境下用conda(3.7降级到3.6)安装pyltp哈工大NLP的python拓展包(源码安装)_第6张图片
win7环境下用conda(3.7降级到3.6)安装pyltp哈工大NLP的python拓展包(源码安装)_第7张图片
往path里新添加两个路径,就是bin和IDE在你电脑上所在的路径,可以用everything查找后复制路径地址加进去,e.g.
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin;
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE

然后回到系统变量,新建LIB系统变量,并按照以上操作添加三个路径:
win7环境下用conda(3.7降级到3.6)安装pyltp哈工大NLP的python拓展包(源码安装)_第8张图片
同理用everything找到以下三个文件的地址,加入到LIB系统变量
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib;
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\x86;
C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86
值得注意的是x86/x86_64这个需要根据目标设定选择,Windows Kits会有一些变化,原则路径大致相同,所以以上的配置信息谨慎复制粘贴。

然后在系统变量里新建INCLUDE系统变量,添加两个路径:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt

添加好后找到并双击运行vcvarsall.bat文件,再git bash(或cmd)打开命令行,输入cl,查看cl.exe是否安装成功:
win7环境下用conda(3.7降级到3.6)安装pyltp哈工大NLP的python拓展包(源码安装)_第9张图片

在conda里安装pyltp包

pyltp安装步骤 下载pyltp并解压到任意位置

  1. 下载pyltp并解压到任意位置:https://github.com/hit-scir/pyltp
  2. 下载ltp并解压到任意位置:https://github.com/hit-scir/ltp
  3. 将解压后的ltp文件夹命名为ltp,整体复制到pyltp中。
    也就是将ltp所有内容作为一个文件夹放到pyltp中。解压pyltp后所得到的文件夹中已经有一个名为ltp的空文件夹,把它替换或覆盖即可。
  4. 找到anaconda安装文件中的pkgs文件夹,把pyltp复制粘贴到里面,
  5. 打开anaconda prompt进入pkgs文件夹里面的pyltp目录下,然后 python setup.py install 安装,下面是一个漫长的安装过程。有很多警告,不要理会,只要不提示错误就行。。最后一直等到安装完成即可。

下载ltp模型文件

七牛云,当前模型版本 3.4.0,(下面代码里会介绍如何使用模型)
百度云,这里有各个版本的

测试代码,用Ltp进行中文分词

import sys
import os
from pyltp import Segmentor

#reload(sys)
#sys.setdefaultencoding('utf-8')
model_path = r'D:\NLP\ltp3.4\cws.model'#导入ltp分词模型库
segmentor = Segmentor()#实例化分词模块
segmentor.load(model_path)#加载分词库

words = segmentor.segment("在包含问题的所有解的解空间树中,按照深度优先搜索的策略,从根节点出发深度探索解空间树。")
print(' | '.join(words))#分词结果

#分词结果的后处理
postdict = {'解 | 空间':'解空间','深度 | 优先':'深度优先'}#矫正一些分词错误
seg_sent = ' | '.join(words)
for key in postdict:
    seg_sent = seg_sent.replace(key,postdict[key])#string的replace方法
print(seg_sent)
print(postdict['解 | 空间'])

参考:书目《NLP汉语自然语言处理与实践》
https://blog.csdn.net/qq_28905087/article/details/79949717
https://www.cnblogs.com/johnwii/p/4966086.html
https://blog.csdn.net/Kaige_Zhao/article/details/80315697
https://blog.csdn.net/qq_28905087/article/details/79949717
https://github.com/HIT-SCIR/pyltp/issues/125

你可能感兴趣的:(NLP)