开发了一个综合影视字幕或音乐歌词的android单词学习软件

用那个应用程式获得的歌词文件可以正常现实 :grin:

更新到0.6.0版本,又增加了一些新的特性:

  • 引入了翻译测试用于单词的输出型测试。基本逻辑是,从单词词库中选择熟练度高的单词,调用AI api服务生成包含该词词义的中文句子,用户使用目标语言翻译该句子,随后返回AI的评估,最后用户自评是否正确使用单词(变形、搭配等)。
  • 新增了质量较高的DA词典数据源。
  • 允许编辑已有的单词并使用网络词典更新词义,提供了人为修正词形还原错误的手段。

目前使用下来感觉还不错(现在变成被AI训练哩),AI的翻译评估看上去靠谱,造句的过程也一定程度回顾了语法和句型。就是每次评估得吃掉几百token :rofl:

可以增加m4a格式的音频支持吗?还有就是如果同时有英文中文分开的字幕,能否实现同时加载,比如XXX.en.srt,XXX.zh.srt或者你觉得有无必要?

可以添加m4a类型。但是音频编码最好是aac、flac这些;alac我测试了一下是不行的。
暂时不会添加识别多个字幕文件的逻辑。

好的,看了下基本上是aac的编码

已更新至0.7.0版本。
特性:

  • 单词书、单词列表等界面将自动选择展示含义测验进度或翻译测验进度
  • 添加单词本的两种排序方式
  • 支持.m4a格式

优化:

  • 根据当前测验进度,优化单词推荐逻辑
  • 与单词相关的偏好设置ui
  • 单词查看时间的更新逻辑

修复:

  • 字幕文件可能存在不合法的时间段问题
  • DA词典的证书问题(希望以后真的可以不用再手动加证书了 :sweat_smile:

我目前的感觉是,如果只靠回顾含义的测试(点击“认识”还是“不认识”),实际最后会用的单词(翻译测试结果)可能在50%左右。不知道有没有人用这个翻译测试 :rofl:

请问下目前是不是还不支持竖屏的视频?昨天开始用的几个素材画面被压缩了,估计是竖屏视频的原因。不知道能否添加支持?谢谢

目前视频界面强制16:9,所以竖屏视频会左右拉伸。这确实是ui上的bug。
后续应该会修复成不拉伸的状态;但这样的话左右两边有黑边,竖屏界面显示区域较小,观感上感觉不太好。
另一个方案是允许视频窗口高度变化。但这样的话我没太想好字幕ui如何摆放比较合适。

后续打算添加一个相似词查询的功能:给定一个单词,在词库中寻找距离最近的topN个单词。目前想做拼写(比如日语中的自他动词)和发音上的相似词查询。遇到的问题是如何定义距离?
目前想到的一个简单方案是编辑距离(Levenshtein Distance),但是单词替换的权重这些可能得研究一下。
借楼想请教坛友,有没有什么适用于移动端平台、在自定义词库下查询相似词的方案?

1 个赞

你说的日语相似词是类似这种吗?这个app叫JP搭子学日语,可以参考下

3 个赞

野生的(日语)自然语言工程师不请自来,提供一点我的浅见:

首先楼主的问题应该拆成两个问题。

第一个问题:如何提高对动漫字幕等口语材料的分词准确率

给定一个单词,在词库中寻找距离最近的 topN 个单词。
有没有什么适用于移动端平台、在自定义词库下查询相似词的方案?

从楼主开发的那个工具来看,个人觉得楼主应该是发现目前使用的形态素解析器 kuromojiIpadic 错的地方太多了,想要提高解析率,所以试图提供「解析结果的相似词」。如果楼主是因为这个原因,那建议更换项目使用的分词器,换成 Sudachi 的 Java 版。

理由: kuromojiIpadic = "0.9.0" 的代码虽然很久都没有更新了,但最大的问题是自带的词库 Ipadic 实在是太小了,2013年之后就不再更新,而且这个词库根本就没有考虑过口语语料中常见,但书面语料中不常见的表记形式——我看楼主项目的 README 用的(好像是)轻音少女的字幕,就默认楼主理解我说的「口语常见,书面不常见」是什么了。

优化建议:Sudachi 的词库和辞典词库还是有不小的区别,如果不满意 Sudachi 的解析结果,可以看看我这篇介绍怎么添加自定义词库的词库的文章:

如果实在在意「动词的可能态视作一个不同的词」这个问题,而且愿意手动补充至少 10 万+ 的自定义词,那可以考虑 Mecab,这个支持 Nbest。

第二个问题:如何优化日语辞典的搜索

目前想做拼写(比如日语中的自他动词)和发音上的相似词查询。遇到的问题是如何定义距离?
目前想到的一个简单方案是编辑距离(Levenshtein Distance),但是单词替换的权重这些可能得研究一下。

如果就是想像 MOJi 那样支持「只」基于「搜索框」(不要求用户提供上下文)的相似词查询,还是放弃移动端实现为好。

因为要做这个方向,其实就是在做「搜索引擎」+「推荐系统」,而且还要在已有的开源工具上完成如下三个方向的优化:极高精度的分词+基于倒排索引的反向倒排索引(日语短语和句型)+基于大量用户查词数据的结果排序。

如果没有这么宏大的目标,只是想解决个别字符的拼写错误和小部分单词的相似词(比如自他动词)的查询问题,那挑个用自己熟悉的编程语言写的编辑距离的相关开源库,基于自己收集的用例,一点点优化吧。

我目前没发现专门针对日语语言做过优化的相似词算法,但用日语词典的词头测试过 Elasticsearch 的模糊匹配,我个人不太满意算出来的结果。

然后,谈一下我个人(非常不成熟的)思考:

日语的相似词查找的关键在于其「单词平均长度」比英语短得多,所以传统的单词相似度算法(很可能)表现一般(未用大规模数据集测试,仅个人主观感受)。

对此,我目前的想法是:针对日语的语言特点,调整长短音、促音以及表外汉字等字符的权重,但具体怎么调,需要大量真实的用户的「查词」数据(语料库的单词频度的高低和用户查词频度并没有必然关系)。

我收集了一些比较刁钻的测试用例,可以作为测试准确度的用例:

书籍推荐

最后,如果有兴趣深入研究「日语词典的搜索优化」,可以读读下面的书:

《这就是搜索引擎》:搜索引擎入门必读。

《Elasticsearch实战(第2版)》 : Elasticsearch 入门必读。

下面都是日语原版书,分析了日语独有的问题,但难度比较大,而且没有给出开箱即用解决方案,只是指明了大致的方向和大概的方法。

理想の辞書を求めて 学習者にほんとうに役立つ辞書とは:系统分析了日语词典的搜索优化「是什么」+「为什么」

検索システム 実務者のための開発改善ガイドブック:阅此书,则日语搜索系统观止矣。

形態素解析の理論と実装 (実践・自然言語処理シリーズ):天下日语分词器入吾彀中矣。

1 个赞

链接里的这几本书都没有公开分享的啊,比较想看第一本书。

1 个赞

感谢建议。
之所以想添加这个功能,核心需求是:在学习部分单词的时候,我希望能够提供一个界面,展示它和之前学过的哪些单词比较“像”,这样我可以通过比较的方法更好地掌握这个单词的用法。比如,我在接触“流す”的时候,我希望这个界面能够找到此前学过的“流れる”(字形上相似);学习到“惜しい"的时候,能找到此前学过的“美味しい”(发音上相似)。当然,这只是字符层面的相似度比较。更高阶的,还存在释义上的比较(相似词义或相反词义):比如,接触到“服”,我希望能找到“衣装”、“格好”这样的词。
查找的范围目前限定在用户自己构建的词库中(数量并不算大),每个单词都存在字形(原形)、读音和简单释义。字形和读音上的比较问题,我个人感觉利用串匹配的思路可以基本解决,只是目前不太清楚是否存在针对英语、日语特定的匹配算法。至于释义比较,我觉得一个可能的思路是利用word2vec提供的embedding,然后计算向量间的距离。但是总的来讲,还是想把上述这些过程做成离线的和适用于移动端的。

至于分词,目前kuromoji体积小巧,也基本能满足我的需求(作为日语初学者,还没有触碰到分词工具的瓶颈 :laughing:

1 个赞

嗯,像有的老番剧是4:3的,也是被强制拉伸了

请问大神可以让APP支持m4b格式吗,谢谢您!

已更新至0.8.0版本。
特性:

  • 支持导出app数据为zip文件
  • 新增启动界面用于导入app数据
  • 新增单词关联界面,展示词库中与当前单词在字形或发音上相似的其它词
  • 修改了默认主题色,与图标保持一致

修复:

  • 修复视频比例不为16:9时视频内容被拉伸的问题

和AI讨论弄了一个相似度算法(带权编辑距离,针对不同操作设置了相应权重),实际使用的时候感觉需要调整阈值以获得全面的比较结果。

暂时不考虑其它格式了 :smiling_face_with_tear:
m4b的话可以考虑转成m4a

用了一天,体验非常丝滑!:face_holding_back_tears: :clinking_beer_mugs:

不过在媒体库管理这里遇到了一点小问题。因为在体验使用时经常一边转换/调整字幕一边传输,所以常常需要反复更新同一个文件夹,但是暂时好像没有在媒体库页面里找到可以更新/重新扫描文件夹的选项。

目前尝试了两种替代方法,但都有一些不足之处:
一个是在更新文件夹内容后更改文件夹名称,再重新添加文件夹进媒体库。只是这样的话,先前的文件夹信息仍会保留在媒体库中,显示稍微有些混乱。
另一个是在清除应用数据后重新添加文件夹。这样媒体库显示很清爽,但是已有的查词和设置记录都会消失。由于导出设置时媒体库信息也会得到保存,所以似乎也没有办法通过重新导入直接恢复查词和设置记录。

不知道有没有机会更新添加这类功能,比如<重新扫描单独/全部已添加的文件夹>/<清除列表内失效文件夹>之类的选项,或者在导出时增加选择单独导出单词/设置的选项?

另外在使用时也有一些新的想法。

目前在单击查词后媒体仍会继续播放。内容生词压力不大时感觉这样可以比较流畅地沉浸在内容中,但是在需要大量查词时就会伴随频繁的回退重听。所以感觉或许可以增加一个<点击查词时自动暂停,关闭弹窗时自动恢复播放>的开关选项,以便按需选择播放方式。
还有就是在查词时如果可以调用弹窗显示其他辞典应用,那么辞典的选择和组合就可以更自由多样,也可以同时在这些应用里整理和复习生词。

不过我没有开发应用的知识和经验储备,不太清楚实现这些功能的方式和难度,不知道会不会给你带来太大压力 :cry:
如果暂时不方便实现的话,我也可以试试借AI的帮助,自己摸索尝试修改一下。如果侥幸改成功了,到时再来播报后续。只是我完全没有开发经验(从零开始 :head_shaking_horizontally:),过程大概会缓慢坎坷不少。

总之非常感谢开发和分享! :saluting_face: :glowing_star: