pyltp安装填坑指南及whl文件制作

对我来说,算是个坑。还好,百度搜索到了这个问题。

LTP及pyltp

LTP提供了一系列中文自然语言处理工具,用户可以使用这些工具对于中文文本进行分词、词性标注、句法分析等等工作。

pyltp 是 LTP 的 Python 封装,提供了分词,词性标注,命名实体识别,依存句法分析,语义角色标注的功能。

github网址:https://github.com/HIT-SCIR/pyltp
在线文档:https://pyltp.readthedocs.io/zh_CN/latest/api.html

源码安装

源码安装或whl打包,都有一个尴尬的地方,也就是python 3.7及以上之后,不受官方原始包支持,得改代码。

pyltp的安装,不推荐通过pip install pyltp==0.2.1这种方式安装。这样的安装方式,报错了也不能解决。所以我们需要从pypi下载源码,然后通过修改源码的方式安装(python 3.6不用更改源码,可以直接pip install安装)。

1, 从pypi下载源码

https://pypi.org/project/pyltp/#files

2, 解压软件包,然后进入目录安装

pip install setup.py

3, 如果Python版本为3.7及以上,可能会报如下错误:

patch/libs/python/src/converter/builtin_converters.cpp:51:64: 
error: 
invalid conversion from ‘const void*’ to ‘void*’ [-fpermissive]
return PyUnicode_Check(obj) ? _PyUnicode_AsString(obj) : 0;
error: command 'gcc' failed with exit status 1

这种出错,是c++和c的差别,c允许包括const void* 转换为void指针类型,但c++不让,所以就gcc报错了。
找到报错文件patch/libs/python/src/converter/builtin_converters.cpp,把51行加一个(void
)类型转换。

截屏2020-07-13上午10.13.25.png

Whl打包及安装

为了不重复修改源码,方便之后的安装,根据源码生成一个whl文件是很有意义的。生成whl文件步骤如下:

1,同样下载及解压pyltp。

2,运行如下命令检查文件的完整性。

python setup.py check

3,运行如下命令会在dist目录下生成whl文件(如果提示报错,则按前面提到的方式修改源码,重新运行)。

python setup.py sdist bdist_wheel || true

参考URL:

https://blog.csdn.net/wangyueshu/article/details/95989891

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。