0%

2019-10-04 cocoNLP使用踩坑实录

2019-10-04 cocoNLP使用踩坑实录

NLP推荐:funNLP cocoNLP

在github上找到一个nlp的包,只可惜只有python版的,因此去速成了一下。在这个过程中踩了很多坑,特此记录。

使用的包叫 cocoNLP ,具有强大的中文分词功能,可以抽取自然语言中的邮箱、手机号、身份证号、手机归属地、运营商、地址信息等等,是一个十分强大的NLP包。

包本身是用python写的,不过在使用过程中我发现,它的一个依赖HanLP 是基于jtype用python来调用java包的。这也就是说,要使用这个包,本身要具有python和java的环境才行。作为一个程序猿我自然都是有的。

好的,下面开始讲讲踩坑。

踩坑一:Could not reserve enough space for object heap error

表面上看是jvm的内存不足,搜出来的结果也大多是这个。

实际上的问题是,32位的python只能调用32位的java,所以会无法申请到足够的空间来运行。

python的版本问题是本次的核心。

解决问题的办法就是更换python版本为64位。

踩坑二:ImportError: No module named “_Jtype”

表面上是找不到_Jtype,实际上问题还是和上面一样,就是版本问题。

在这里要注意一个细节,对于电脑上有多个版本python的人尤其要注意。在pip的时候,pip使用的python版本。

在这里我可以猜测,pip会下载调用自身的python版本对应的包。也就是说,如果pip是被32位python调用,那么下载下来的包就是32位的。因此,这里的坑就在于,pip要使用对应版本的python。最简单的方法就是直接cd到对应pip目录下载执行pip

踩坑三:ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。

是的没错,这个问题实际上和上面还是一样的。是32位的python调用64位的java失败。因此更换python版本就行了。

踩坑四:ValueError: 配置错误: 数据包……\data 不存在,请修改配置文件中的root

依赖HanLP中的data没有下载,前往https://github.com/hankcs/HanLP下载即可

并在python-3.6.8\Lib\site-packages\pyhanlp\static\hanlp.properties文件中修改根路径。注意,此处貌似有两个配置文件,修改没有.in后缀的那个

总结

综上,最大的问题就在于要统一python和java和系统的位数。以前下载python的时候没注意下载成了32位的,这才导致了那么多坑。

本文作者:草梅友仁
本文地址: https://blog.cmyr.ltd/archives/2e6ce36c.html
版权声明:转载请注明出处!

坚持原创技术分享,您的支持将鼓励我继续创作!