houbb / nlp-hanzi-similar

The hanzi similar tool.(汉字相似度计算工具,中文形近字算法。可用于手写汉字识别纠正,文本混淆等。)
https://houbb.github.io/opensource/nlp-hanzi-similar
Other
232 stars 39 forks source link

外部加载数据 #6

Open zzliux opened 8 months ago

zzliux commented 8 months ago

作者大大:您好! 项目很不错,这是目前唯一能找到的基于字形计算字符相似度的工具,能解决实际问题,对于ocr识别结果与目标字符串比对结果有很大帮助; 我想使用autojs加载您这个字形相似度的工具使用,可以简单理解为android项目热加载dex使用,在目前测试的时候遇到了一些问题: 所有数据都是写死了资源路径,打包成jar再转成dex后所资源类文件会丢失,且资源数据占大头,希望能支持所有资源数据可通过外部加载,如:src/main/resources/nlp下的所有文件与用户定义等,依赖的pinyin与chaizi也能通过一样的方式加载,并且需要使用初始化方法加载,否则会因为类的初始化时就会因文件或文件路径不存在而报错

houbb commented 8 months ago

有时间我统一拓展下吧

发自我的iPhone

------------------ 原始邮件 ------------------ 发件人: zzliux @.> 发送时间: 2024年2月25日 16:35 收件人: houbb/nlp-hanzi-similar @.> 抄送: Subscribed @.***> 主题: Re: [houbb/nlp-hanzi-similar] 外部加载数据 (Issue #6)

作者大大:您好! 项目很不错,这是目前唯一能找到的基于字形计算字符相似度的工具,能解决实际问题,对于ocr识别结果与目标字符串比对结果有很大帮助; 我想使用autojs加载您这个字形相似度的工具使用,可以简单理解为android项目热加载dex使用,在目前测试的时候遇到了一些问题: 所有数据都是写死了资源路径,打包成jar再转成dex后所资源类文件会丢失,且资源数据占大头,希望能支持所有资源数据可通过外部加载,如:src/main/resources/nlp下的所有文件与用户定义等,依赖的pinyin与chaizi也能通过一样的方式加载,并且需要使用初始化方法加载,否则会因为类的初始化时就会因文件或文件路径不存在而报错

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.***>

houbb commented 8 months ago

v1.4.0 你可以参考下下面的引导类写法,词典都是可以自定义的,改成你自己实现,比如外挂词库,数据库之类的。

拼音和拆字是另外的项目,以后版本看下能否支持。本身定死目录是为了对用户透明。

double rate = HanziSimilarBs.newInstance()
                // 笔画数数据
                .bihuashuData(HanziSimilarDatas.bihuashu())
                // 笔画数相似算法
                .bihuashuSimilar(HanziSimilars.bihuashu())
                // 笔画数权重
                .bihuashuRate(HanziSimilarRateConst.BIAHUASHU)

                // 结构数据
                .jiegouData(HanziSimilarDatas.jiegou())
                // 结构相似算法
                .jiegouSimilar(HanziSimilars.jiegou())
                // 结构权重
                .jiegouRate(HanziSimilarRateConst.JIEGOU)

                // 部首数据
                .bushouData(HanziSimilarDatas.bushou())
                // 部首相似算法
                .bushouSimilar(HanziSimilars.bushou())
                // 部首权重
                .bushouRate(HanziSimilarRateConst.BUSHOU)

                // 四角数据
                .sijiaoData(HanziSimilarDatas.sijiao())
                // 四角相似算法
                .sijiaoSimilar(HanziSimilars.sijiao())
                // 四角权重
                .sijiaoRate(HanziSimilarRateConst.SIJIAO)

                // 拼音权重
                .pinyinRate(HanziSimilarRateConst.PINYIN)
                // 拼音相似算法
                .pinyinSimilar(HanziSimilars.pinyin())

                // 拆字权重
                .chaiziRate(HanziSimilarRateConst.CHAIZI)
                // 拆字相似算法
                .chaiziSimilar(HanziSimilars.chaizi())
                // 初始化
                .init()

                // 执行文本相似度对比
                .similar('末', '未');