非mdx也能所划即所得啦_日本語非辞書形辞典_v3_For_Quicker_Demo

注:本文是日本語非辞書形辞典项目的Python版本的说明文档。

在以下网站都有备份:
非mdx也能所划即所得啦_日本語非辞書形辞書_v3_For_Quicker_Demo - 日语 - FreeMdict Forum
v3_For_Quicker_Demo · 语雀 (yuque.com)

前排提示:这个项目是日本語非辞書形辞書_v3 版本的 Demo 产品,可能会遇到不少问题,欢迎留言反馈:)

另外,文档在v3_For_Quicker_Demo · 语雀 (yuque.com)有备份,有问题欢迎通过GitHub或者通过邮箱 NoHeartPen@outlook.com 与我沟通。

最终效果

直接上图:sunglasses:

(实际使用应该没有看起来的这么卡,演示时有停顿)

下载

如果你在GitHub/Gitee的README页面:打开dist文件夹,下载里面的v3_index.txtmain.exe2个文件

如果你不在项目的README页面,请通过下面的方式下载:
蓝奏云:https://wwp.lanzouf.com/b011uva4d 密码:e3h4

注意:

  1. 最好找个地方专门放,完成设置后,不要随便删也不要随便移动main.exev3_index.txt
  2. 解压路径中最好不要有空格
  3. 目前需要与Quicker配合使用,直接双击 exe 没有反应是正常的:)

更新说明

2022-11-06

  1. 跟进v2版本的更新

    1. 支持沸きたつわき立つ等复合动词的异形词
    2. 支持一段动词使役态口语约音食べせる(划食べせ
  2. 只需通过用言的“非辞書形”即可推导出原型的猜想通过了日语NLP的权威工具的检验:
    1. 通过 Mecab 对维基百科和青空文库进行分词,获取分词结果中的动词和形容词,然后调用非辞書算法进行验证,v3的 Python 版本的正确率达到了 99%!!!
    2. 另外,顺便测试了下在剪贴板查词这样丢失了上下文的情况下,Mecab 推导辞書形的准确率:70%——这个结果并不能否定 Mecab 在日语 NLP界的权威 ,只是再次证明了一点:日语的剪贴板查词不能只返回一个结果(一段动词的连用形一对 Mecab 的干扰真的太大了)。
    1. 补充:由于 Mecab 分词后的结果与本项目支持的划词方案略有差异,故测试时只覆盖了分词结果中的部分活用。另外,针对2个工具的特点分别对测试文本做了微调,二者并不是在完全一致的条件下进行测试,无法保证绝对中立客观,测试结果仅供参考
    2. 有兴趣复现测试可以到GitHub项目主页的endorse文件下阅读详细内容,
    3. 青空文库处理结果:

     4. 维基百科处理结果:
    

本次更新需要同时更新main.exe文件和v3_index.txt文件,Quicker动作不需要更新。

下载地址https://wwp.lanzouf.com/b011uva4d 密码: e3h4,下载后解压覆盖即可

反馈

推荐到GitHub的issue处反馈

也可以填写这个问卷: v3问卷反馈

使用方法

可以和这个上手视频一起看:【日本語非辞書形辞典】沙拉查词XQuicker:所见所划,即为所查

使用本项目前,需要到Quicker 官网,下载安装并注册登录。

注:可以填写我的推荐码:353808-6234,这样我们都可以获得 90 天的专业版时长

粘贴动作(必看)

YiDicForSaladict

YiDicEBWin

基础设置(必看)

打开 Quicker,粘贴动作,然后右键打开编辑,双击运行脚本

脚本内容中填入下载的 exe 文件的路径(Win11 的可以通过右键点击然后复制文件路径获取,双引号可以不删)

接着在下面的工作目录填入文件夹的路径,去掉双引号和 main.exe 就可以了。

到这里基本设置就完成了。下面介绍高级选项。

注意,请确认授予沙拉查词读取剪贴板写入剪贴板的权限(位于扩展选项-权限管理)

沙拉查词 (必看)

如果沙拉词典的在独立窗口搜索剪贴板内容的快捷键不是Alt+C,还需要进行修改。

打开编辑页面,模拟按键 B(参数)

参考快捷键语法,填入你喜欢的快捷键即可

EBWin (非必看)

默认的分享的动作需要自己提前打开 EBWin 才可以用,如果希望每次选中文本后直接启动软件查词,那么还需要另外的设置。

先把电脑上的 EBWin 软件打开,然后打开YiDicForEBWin的编辑界面

双击下面的激活进程主窗口

点击下面的红框

会发现切换到了 EBWin 的界面,随便点击 EBWin 顶部状态栏的一个位置

会发现,软件路径就自动填好了

如果上述方法搞不定的话,自己手动填也行。

当然,你也可以根据自己的需要,填入自己喜欢的词典软件,只是这样一来,需要改程序路径进程名称/pid2 个地方。

Todo

  • [ ] 正则支持
    • [x] 在 MS Word 中或是像軋(きし)み合(あ)わない这样的句子划词翻译,正则可以直接处理为軋み合わ
    • [x] 々ゝゞ/\/″\
    • [ ] <ruby></ruby>(浏览器内划词)
  • [x] 支持跨行的划词,常用于扫描版的PDF文件
  • [ ] 验证算法真实准确度
  • [ ] ……
    欢迎提出其他意见

大致思路

举个例子简单说明下脚本的工作原理,方便大家结合自己的需要修改。

对于ご飯を食べたい这个句子,我们用鼠标选中食べた按下快捷键,Quicker 会将选中的文字复制到剪贴板,然后启动电脑上的main.exe文件,这个 exe 文件会读取剪贴板,获取到最近一次复制的内容,即食べた

然后程序会读取最右侧的假名即,根据 v2 版本的词条规律我们可以知道,出现在词尾假名说明要么是一段动词,要么是五段动词(注:技术细节处会给出这么假设的相关数据)。

我们先假设它是五段动词,然后程序会将替换为,然后在这个v3_index.txt文件中查找有没有食べつ这个动词。
……
找了一圈没有,那说明这个我们的假设是错误的。

然后程序会验证另一种假设:将词尾替换为,然后再去v3_index.txt文件中查找食べる,很幸运,这次找到了。

程序会将找到的食べる写入剪贴板,Quicker 检测到剪贴板内容发生变化后就会调起词典软件了(所以你也可以在支持 mdx 的 GoldenDic 上用,享受双倍的快乐)。

另外,v3_index.txt里面保存的原型数量也会影响最终的效果,可以自由向里面添加收集到的单词。

技术细节

可能有人会好奇,最近怎么突然高产了起来开始刷版本号,v2 版本都才出一周多,怎么这么快 v3 版本就来了。

这是因为 v3 版本其实是 v2 版本的逆过程,而且 v3 版本之后的改进在很大程度上取决于 v2 版本的成果,所以先制作了这么一个小工具,供有兴趣的同学折腾。

接下来是正文:

如果有人分析过 v2 版本的源文件,就会注意到穷举出的变形的词尾假名似乎重复率有点高呀,有没有什么规律呢?

我们把词尾部分都提取出来,整理下得到下面这个表格:

查阅这个表格我们就知道只能由一段和五段动词产生,但具体是谁我们只能采用笨办法:查原型来判断。

虽然有一半左右的的词尾假名都只有一种来源,但在丢失了上下文的情况下,我们可能都需要进行 3 次替换和 3 次遍历查找,不过好在即使是最差的情况,大多数人的电脑应该也能满足日常的需要。

不过,即使把 v2 的 172580 个词条都给查一遍,也只要区区6 分钟

所以这算法也没有那么烂吧……QAQ

最后,手动@MOJi、@沙拉查词@EBWin@欧路词典@Yomichan@AnkiHelper 等开发者,最强开源日语取词算法的 Python 版本已经托管在 Github 上啦,欢迎 PR 和提交 issue 呀:)
https://github.com/NoHeartPen/JapaneseConjugation

更新历史

2022-09-03

  1. 鸽了一个月的上手视频【日本語非辞書形辞典】沙拉查词XQuicker:所见所划,即为所查
  2. 支持 MS Word 的注音或是像軋(きし)み合(あ)わない这样的句子划词(后台处理为軋み合わ)
  3. 支持所有踊り字标记:々ゝゞ/\/″\,还原为大多数词典都会收录的形式
  4. 优化扫描版的PDF文件的查词体验,
    1. 支持跨行的划词
    2. 自动删除OCR中经常出现的半角空格

本次更新只需下载main.exe即可,其余文件没有改动。

2022-08-03

  1. 支持返回多个结果
  2. 索引文件新增单词
  3. 提高准确率,v3 版本现在返回的结果与 v2 基本一致啦

本次更新需要同时更新 Quicker 动作和 main.exe、index_v3 文件才可使用

Quicker 动作更新:右键-来源动作-更新即可

main.exe 和 index_v3 文件下载地址https://wwp.lanzouf.com/b011uva4d 密码:e3h4,下载后解压覆盖即可

6 个赞

看了半天没整明白,你这是不是 用 Quicker 把多个软件整合起来的意思?还是自己写了个新的软件?

是 用 Quicker 来整合起来的。

自己写了点代码,可以解决日语的用言变形对划词翻译的影响(类似英语单复数以及过去式),但由于技术不过关,不能直接PR到日语词典软件上,再加上目前的准确度不是很高,有待完善,所以现在先用Quicker来整合。

另外,主要是目前为止对于日语的变形问题,没有一个软件支持得很好,最后除了最后提到的那几个软件之外,还有kindle(实测也有问题,也不能处理复杂变形),网易有道词典笔(直接不支持日语划词,只支持中日的整句翻译,估计是发现即使买了日语词典不解决变形就基本等于不能用)

1 个赞

第一次知道有 Quicker 这个东西,大概就相当于 AHK 或者 安卓上的 Tasker吧,回头研究一下

嗯嗯,不过我忘了说,这软件不开源,要收费(但比较合理,一年50左右),另外不注册登录就不能用,,轻度使用的话,不付费也行233

好东西收费是应该的

主要是我这几天才看到了有关这个软件收费和强制登录的讨论,就下意识地打打预防针(主要是那几篇文章的老哥太冲了 :rofl:

我一向认为好东西收费天经地义,而且收费了就有责任做好,也是一种改善的动力

Quicker 是个国产的,恕我有点崇洋媚外,难道这种通用的粘合剂软件没有国外的更主流一些的?感觉AHK也能干这个事情,安卓上的 Tasker 更不用说

啊,我比较喜欢的是他的场景和快捷键功能,再加上我一开始就是为了用别人分享的动作才下载的,所以就懒得折腾AHK了。

场景就是,在不同的软件界面内,同一套快捷键可以调用不同的工具,比如我在资源管理器上ctrl+鼠标右键调用的是


在笔记软件里面调用的是
图片

快捷键的特殊:不止ctrl+alt这样的模式(虽然这样的思路我在AHK上也有看到),各种奇怪的快捷键模式都支持,让我意识到什么是真正的快捷键,点名批评Win11上的那个shfit+F10的快捷键,我只想问设计者真会这么用吗……

最后,有比较成熟的社区和大量别人分享的项目可以白嫖(而且要改成符合自己习惯的也没有那么难),小白也可以用得很欢乐。好吧其实是看了下AHK文档被劝退了

1 个赞

AHK 快捷键也可以方便地限定在特定的活动软件下有效。你这样能整合出一套完整、有实用价值、方便非专业用户使用的解决方案,倒也是个不错的创新。

2 个赞

啥意思
v3出来了
就是说v2的版本,算是已经完成了?

哈哈哈,没有没有,这个只是v3的一个雏形吧,v2还是会继续维护的(古语都还没开始动呢),不过v2能够暴力穷举的部分已经做得差不多了(古语还暂时不会做),最近的维护工作可能就是手动修改增加词条了。

不出意外的话,日本語非辞書形辞典应该就这3个版本了,他们之间的区别:

  1. 不基于词性、真·暴力穷举的v1:放弃维护;
  2. 基于词性暴力穷举的v2:以mdx词典形式发布,持续维护;
  3. 基于v1和v2的经验,让词典软件能推导辞書形的v3:以代码形式发布,持续维护,欢迎大家去给日语词典软件开发者反馈,推荐他们尝试下这种不基于语法的日语划词翻译解决方案:)

重大更新 :sunglasses:

话说quicker到底是个啥?看了官网没看懂。。。

为啥v3不做mdx?

你估计没用过沙拉查词,你去看看使用简介就会用quicker啦

1 个赞

不好意思,我过几天录一个视频演示下如何从零上手:),或者也可以等我修改沙拉查词的源码,到时候就可以不用装Quicker了(不过最快可能要9月底)

v3版本做不了mdx,因为推断「辞書形」只是v3的一个目标(这一点来说,v2和v3是基本一样的,以后v2更新的话,v3也会更新);

v3的重头戏是:解决日文独有的排版问题(下次更新才会开始解决哈)

所以如果不在意日文独有的排版问题,可以忽略v3版本

比如Word标注了读音之后:

选中查词就会发现剪贴板上的是 食(た)べる,而我们实际要查的是食べる,所以这种时候我们也得自己手动打。

不过考虑到没有几个会在Word里面手动注音然后才翻词典,所以并不值得为了个Word专门做v3。

但是很多公众号也喜欢用类似的方法来标音,所以这个需求还是有解决的价值。不过,这个在mdx里面做起来就太麻烦了其实是我太弱了233,也没有必要——词典体积至少要翻5倍。

再比如青空文库里面那些奇怪的标注方式

(这里面的标记々已经在v2里面解决,//″\稍微麻烦点——要手动判断清浊音,但我懒得搞;ゝゞ最麻烦,任意2个靠得近的假名似乎都可以直接用这个标记来表示(我是从刺青得出的结论),如果非要穷举的话,估计词典体积也得翻5倍)

最后,如果是看网页的话,下面这样的标记复制到剪贴板后,会变成类似怒鳴どなる这样完全搅在一起的状态


当然,也可以穷举(但是词典体积至少又得翻五倍),而且也很麻烦。如果从软件角度是可以比较轻松的解决这个问题(注:仅限于电脑浏览器,手机浏览器可能不行)。

(多说一句,如果用FireFox就不会搅在一起)

综上,v3版本要做的事情用mdx来做太麻烦了,全部实现的话,词典至少15M起步,这样一来,就要修改、维护一个200M的文件,我的电脑实在遭不住。

而且我也尝试了下,差点把我给搞自闭了:原理和把下面的读音给批量替换成需要的形式是一致的。

と‐・す 【賭】
たいくつ‐が・る 【退屈─】  退屈がる  
そり‐こく・る 【剃─】  剃こくる  
たか‐ぶ・る【高─・昂】品词  高ぶる  
たか‐ぶ・る高  高ぶる  
あい‐くろし・い 【愛─】  愛くろしい  
あい‐ぐ・す 【相具】  相具す  
あが・る【上・揚・挙・騰】上る、揚る、挙る、騰る
そり‐かえ・る 【反返】  反返る

看出规律了吗,没看出来的话,和楼主一起等大佬出手吧:)

另外,给这项目起名字好像又没有取好233

久违的更新233,另外日本語非辞書形辞典迎来了首个JavaScript版本, 日本語非辞書形辞典_v3_For_MOJi&Auto.js_Demo,不过非常鸡肋,大家有兴趣的话也可以去了解下:)

1 个赞

哈哈哈哈,本项目的正确率高达99%虽然有一定的水分233,终于担得起“最强”二字了(请允许我嘚瑟一下:)

2 个赞