安装CRF++,
到CRF++网站CRF++: Yet Another CRF toolkit,下载C++源代码安装包(这里用的是 CRF++-0.58.tar.gz ),解压,进入解压文件并如下过程安装
1 2 3 4 5 | hd@hd:~ /DLStudy $ tar -zxvf CRF++-0.58. tar .gz hd@hd:~ /DLStudy $ cd CRF++-0.58/ hd@hd:~ /DLStudy/CRF ++-0.58$ . /configure hd@hd:~ /DLStudy/CRF ++-0.58$ make hd@hd:~ /DLStudy/CRF ++-0.58$ sudo make install |
在当前文件夹下cd python进入安装python包
1 2 3 | hd@hd:~ /DLStudy/CRF ++-0.57$ cd python/ hd@hd:~ /DLStudy/CRF ++-0.57 /python $ python setup.py build hd@hd:~ /DLStudy/CRF ++-0.57 /python $ sudo python setup.py install |
此时,当我们在Python环境下调用CRFPP时,出现如下错误
1 2 3 4 5 6 7 8 9 10 11 12 13 | hd@hd:~ /DLStudy/CRF ++-0.57 /python $ sudo python Python 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609] on linux2 Type "help" , "copyright" , "credits" or "license" for more information. >>> import CRFPP Traceback (most recent call last): File "<stdin>" , line 1, in <module> File "CRFPP.py" , line 25, in <module> _CRFPP = swig_import_helper() File "CRFPP.py" , line 17, in swig_import_helper import _CRFPP ImportError: /home/hd/anaconda2/lib/libstdc ++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/lib/libcrfpp .so.0) >>> |
提示"anaconda2/lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found"
解决方法:
1. 首先查找libstdc++.so.6存在的位置:
1 2 3 4 5 6 7 8 9 | hd@hd:~$ sudo find / -name libstdc++.so.6* /home/hd/anaconda2/lib/libstdc ++.so.6.0.19 /home/hd/anaconda2/lib/libstdc ++.so.6 /home/hd/anaconda2/pkgs/libgcc-4 .8.5-2 /lib/libstdc ++.so.6.0.19 /home/hd/anaconda2/pkgs/libgcc-4 .8.5-2 /lib/libstdc ++.so.6 find : ‘ /run/user/1000/gvfs ’: Permission denied /usr/lib/x86_64-linux-gnu/libstdc ++.so.6.0.21 /usr/lib/x86_64-linux-gnu/libstdc ++.so.6 /usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc ++.so.6.0.21- gdb .py |
这说明在多个文件夹都存在。
分别检查每个路径下是否存在GLIBCXX_3.4.20.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | hd@hd:~$ strings /home/hd/anaconda2/lib/libstdc ++.so.6 | grep GLIBCXX GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBCXX_DEBUG_MESSAGE_LENGTH |
可以发现,其中没有GLIBCXX_3.4.20,这就是为什么前面提示出错的原因
那么在检查/usr/lib/x86_64-linux-gnu/中是否存在,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | hd@hd:~$ strings /usr/lib/x86_64-linux-gnu/libstdc ++.so.6 | grep GLIBCXX GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBCXX_3.4.20 GLIBCXX_3.4.21 GLIBCXX_DEBUG_MESSAGE_LENGTH |
可以发现其中存在GLIBCXX_3.4.20
3. 重新做链接
1 2 | hd@hd:~$ sudo cp /usr/lib/x86_64-linux-gnu/libstdc ++.so.6.0.21 /home/hd/anaconda2/lib/ <br>hd@hd:~$ sudo rm -rf /home/hd/anaconda2/lib/libstdc ++.so.6 hd@hd:~$ sudo ln -s /home/hd/anaconda2/lib/libstdc ++.so.6.0.21 /home/hd/anaconda2/lib/libstdc ++.so.6 |
4.检查问题是否解决,看是否可以import CRFPP:
1 2 3 4 5 6 | hd@hd:~$ sudo python Python 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609] on linux2 Type "help" , "copyright" , "credits" or "license" for more information. >>> import CRFPP >>> |
此时不在有错误提示。问题解决
更多参考:
关于libstdc++.so.6: version `GLIBCXX_3.4.20' not found问题解决
CRF++ 实现中文分词
中文分词入门之字标注法4
标签:
CRF++
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧