学习NLP的第13天——HanLP的CoreBiGramTableDictionary读取自己训练的模型所有值为0

问题详情

Python调用HanLP的CoreBiGramTableDictionary载入自己训练的模型数据时,使用getBiFrequency查看,发现读取的所有二元语法数据均为0。

排除的可能原因

1.若没有设置HanLP.Config.BiGramDictionaryPath,则显示的结果应为默认模型的结果,而不是0。

2.若设置的HanLP.Config.BiGramDictionaryPath路径为空,应报错而不是0。

问题原因:编码格式错误

通过检查,发现一元语法导出的文件编码格式为UTF-8,而二元语法导出的文件编码格式为GBK,所以怀疑是因为编码格式错误导致的问题。

于是我将导出的二元语法模型文件的编码格式由GBK改为UTF-8,再使用CoreBiGramTableDictionary读取训练的模型,发现二元语法数据不再为0。于是确认问题就是因为默认编码格式的问题。

最优解决方案

我后来再大神的论坛“蝴蝶效应”中,找到了“为啥运行的代码总是乱码呢?”帖子,其中提到了一个修复的补丁。可以通过下载最新版的HanLP替换pyhanlp/static/hanlp-1.7.5.jar解决以上编码问题。

最新版HanLP下载地址:https://github.com/hankcs/HanLP/files/3894918/hanlp-1.7.5.jar.zip

pyhanlp文件夹你的Python安装路径的Lib\site-packages文件夹下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值