查看: 973|回复: 6
打印 上一主题 下一主题

[求助] 想写一个词典词组提取工具(带界面)

[复制链接]
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

    250

    主题

    2966

    回帖

    53万

    积分

    状元

    吃水不忘挖井人

    Rank: 9Rank: 9Rank: 9

    积分
    531111

    灌水大神章笑傲江湖章推广专家QQ 章

    跳转到指定楼层
    1
    发表于 2019-1-30 20:16:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 jonah_w 于 2019-1-30 20:26 编辑

    初步想到希望可以做到几点:

    • 跨平台,支持Windows、Mac OS、Linux
    • 性能尽量好


    不知道现在比较好的跨平台框架有哪些。

    目前做的几个词组提取版的Mac词典基本是通过python代码实现的。
    所以应该用下PyQt5?

    我自己倾向于Electron框架,但好像这个是用nodejs写,可能需要重写已有功能,不确定nodejs是否可以实现。
    python的实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则。

    也不确定nodejs是否都支持这些库,以及性能是否足够好。

    另外因为最近想学习一下Rust语言,不知道Rust在这方面咋样,尤其是是否有成熟的跨平台UI框架,考虑到Rust语言本身现在都不是很成熟。

    考虑Rust是因为它的性能太好了… 前几天推荐给大家的那个rg全文搜索命令就是Rust写的,可以说吊打了一切其他类似命令了。

    rg相关帖子:【2019.01.22更新】Microsoft Bing Dictionary 语料库
    https://www.pdawiki.com/forum/thread-32693-1-1.html?x=294297


    所以很是心动。

    但我怀疑Rust无法满足所有需求。不知道论坛里是否有Rust大佬,或者nodejs大佬,可以指点一二。


    另外,这个工具目前只是一个想法,没有任何保证什么时候写出来或者能不能写出来,不想有太大压力… 做GDoS Mac词组提取词典的时候压力极大,有时候毫无进展,技术难点无法突破,当时心情很沮丧。还好最后在各种技术群不知羞耻的请教最后做出来了。

    GDos 俚语词典的词组提取的效果如何,请参考:18.4 万词条:GDoS 最全俚语词典 词组完全提取版 Green Dict Mac版
    https://www.pdawiki.com/forum/thread-32839-1-1.html?x=294297

    大家有任何意见或者建议(技术上的、非技术上的)还望不吝赐教。


    先谢谢了。



    评分

    1

    查看全部评分

  • TA的每日心情
    开心
    2020-4-12 13:04
  • 签到天数: 453 天

    [LV.9]以坛为家II

    41

    主题

    2084

    回帖

    3万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    36418

    灌水大神章QQ 章笑傲江湖章

    2
    发表于 2019-1-30 22:37:47 | 只看该作者
    我的天哪。要是有这个工具。那简直是神作啊。
  • TA的每日心情

    2020-5-14 13:56
  • 签到天数: 334 天

    [LV.8]以坛为家I

    1

    主题

    449

    回帖

    5572

    积分

    会元

    Rank: 7Rank: 7Rank: 7

    积分
    5572
    3
    发表于 2019-1-31 23:33:23 | 只看该作者
    如果会用 PtQT,用C++做也是个解决方案
    其实用Python 先做出来,有需要或者兴趣 改成别的语言 会容易很多。
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

    250

    主题

    2966

    回帖

    53万

    积分

    状元

    吃水不忘挖井人

    Rank: 9Rank: 9Rank: 9

    积分
    531111

    灌水大神章笑傲江湖章推广专家QQ 章

    4
     楼主| 发表于 2019-4-30 21:30:17 | 只看该作者
    ogrishman 发表于 2019-4-30 20:40
    楼主的思路是错的,你用Rust、C++还是Python或者Golang,差异都不大。因为这是个词典提取工具,根本就不是 ...

    执行效率还是影响心情… 比如朗文5++ 5分钟提取完 和5个小时提取完 体验差别太大了…
  • TA的每日心情
    开心
    2019-8-21 08:44
  • 签到天数: 163 天

    [LV.7]常住居民III

    17

    主题

    393

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    14980
    5
    发表于 2019-5-1 07:17:22 | 只看该作者
    本帖最后由 mikeee 于 2019-5-1 07:19 编辑
    不确定nodejs是否可以实现。
    python的实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则。

    也不确定nodejs是否都支持这些库,以及性能是否足够好。

    我对 nodejs 以及 python 的了解其实也有限,乱说一通供楼主参考。说错了高人指点一下。你说的python
    实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则等等,nodejs实现应该都是没有问题的。
    lxml基于elementtree,nodejs可以搜到相应的包。beautifulsoup不知道有没有对应的包,但大可以用更好的包
    pyquery(nodejs里的jquery/cheerio) 代替,nodejs整xpath以及正则自然没有问题。其实nodejs的内置正则
    比引擎python的内置正则引擎还强大一些,比如前者支持变宽肯定逆流序环视(variable-length positive
    lookbehind)后者不支持, python要另装名为regex的包才支持变宽肯定逆流序环视。

    但个人觉得 nodejs 可能不如 python 适合你要做的。我的理解,你要做的(本质是搜索吧)属于计算强度较
    大的任务而并不是I/O强度较 大的任务。
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

    250

    主题

    2966

    回帖

    53万

    积分

    状元

    吃水不忘挖井人

    Rank: 9Rank: 9Rank: 9

    积分
    531111

    灌水大神章笑傲江湖章推广专家QQ 章

    6
     楼主| 发表于 2019-5-1 09:53:57 | 只看该作者
    mikeee 发表于 2019-5-1 07:17
    我对 nodejs 以及 python 的了解其实也有限,乱说一通供楼主参考。说错了高人指点一下。你说的python
    实现 ...

    嗯好的 感谢提供这些信息 很有用
  • TA的每日心情
    开心
    2022-1-21 00:52
  • 签到天数: 699 天

    [LV.9]以坛为家II

    17

    主题

    1754

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    19738
    7
    发表于 2019-5-4 11:57:13 | 只看该作者
    可以从这个列表开始
    atomore 整理了(Vocabulary.com + Collins + 雅思 + 牛津)中的高频短语词组
    内容包括:
    https://www.pdawiki.com/forum/thread-33730-1-1.html?x=180507
    1. Vocabulary.com词典中词频小于20000的词组 (1977个,按词频排序);
    2. 柯林斯双解词典中 五星词组 (4692个, 按五级分组排序);
    3. 剑桥双解词典中 雅思词组 (2452个,按A1-C2分组);
    4. 牛津双解词典中 星标词组 (298个)。

    要是合并起来,制作成anki记忆库(反面是相应词典中该短语词组的内容)就好了