掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 2059|回复: 6

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

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

    [LV.6]常住居民II

    发表于 2019-1-30 20:16:44 | 显示全部楼层 |阅读模式
    本帖最后由 jonah_w 于 2019-1-30 20:26 编辑
    3 G& x& ^2 t( C% {) a# q, C) i
    6 U' d1 I0 m. R# @0 B! H# l初步想到希望可以做到几点:# B# c5 Y6 L' j! b: Z, q
    # x: l$ Q1 w1 P5 u$ }7 t
    • 跨平台,支持Windows、Mac OS、Linux
    • 性能尽量好' `- n; [. ~5 P
    , o4 S; M) _3 n/ ^

    2 P3 h  G6 D" t0 h! D3 ]8 k, R- z- m不知道现在比较好的跨平台框架有哪些。9 A( U+ ]+ h, F1 p* Z: Q. f
    3 n" s; N/ Q) f3 \
    目前做的几个词组提取版的Mac词典基本是通过python代码实现的。
    % [2 h0 s3 F0 @( C6 j所以应该用下PyQt5?
    4 B# D* [: E  T6 D, t5 t# K$ k  U6 ]8 U4 x2 c
    我自己倾向于Electron框架,但好像这个是用nodejs写,可能需要重写已有功能,不确定nodejs是否可以实现。
    ' W% [; L  t' V$ G& u5 apython的实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则。, ]8 z$ ^* ]+ I% x
    ) ~5 G6 }5 f& T
    也不确定nodejs是否都支持这些库,以及性能是否足够好。
    , _+ o+ p5 P5 H4 U' P# k1 P- X: P; f9 b/ j# E1 y
    另外因为最近想学习一下Rust语言,不知道Rust在这方面咋样,尤其是是否有成熟的跨平台UI框架,考虑到Rust语言本身现在都不是很成熟。; G5 d  C6 l" X8 s! y

    , U, U1 l2 J3 x% E考虑Rust是因为它的性能太好了… 前几天推荐给大家的那个rg全文搜索命令就是Rust写的,可以说吊打了一切其他类似命令了。
    ) X* X# n# B. ?1 T/ D8 j3 |
    / @8 Y4 x+ B$ @% H- F/ grg相关帖子:【2019.01.22更新】Microsoft Bing Dictionary 语料库8 F% }( N/ H4 E( c! A9 t- r
    https://www.pdawiki.com/forum/thread-32693-1-1.html?x=294297
    7 Q3 n6 D5 K2 u4 D6 j+ n3 U$ ^$ W" A8 D' U+ b

    4 _6 N2 ^& m( ^) o6 d所以很是心动。
    1 n& u. _/ Z0 Z0 g# r. P1 a( [. F# a
    但我怀疑Rust无法满足所有需求。不知道论坛里是否有Rust大佬,或者nodejs大佬,可以指点一二。) U. `/ u1 V) W
      K5 }3 \5 G9 z. P$ b

    ! @2 N; q: r8 `  O5 M另外,这个工具目前只是一个想法,没有任何保证什么时候写出来或者能不能写出来,不想有太大压力… 做GDoS Mac词组提取词典的时候压力极大,有时候毫无进展,技术难点无法突破,当时心情很沮丧。还好最后在各种技术群不知羞耻的请教最后做出来了。
    , X) l' L0 N, t5 U& k4 |* K" g& X; O" M0 M% A
    GDos 俚语词典的词组提取的效果如何,请参考:18.4 万词条:GDoS 最全俚语词典 词组完全提取版 Green Dict Mac版% ]# \% u' m; b* S' B
    https://www.pdawiki.com/forum/thread-32839-1-1.html?x=294297
    , `( p' R9 i* f/ r7 o9 k" }- B6 A6 S0 V, e9 Z
    大家有任何意见或者建议(技术上的、非技术上的)还望不吝赐教。
    # C$ \- j6 w+ z) y+ a, v& D; m5 o/ D: ~0 p' Y1 ?* c- q' v" ?

    7 c% B( U, h; D, B, ~# |+ w* e3 C先谢谢了。+ t2 X/ S- P! z6 R0 k; r* b0 m# p& R

    0 ~/ B+ Q4 t! F: I2 Z" x: J- A) V& k9 t5 _2 }4 i
    2 ]* ?/ o9 O9 c0 y/ I( K7 N+ ~

    评分

    1

    查看全部评分

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

    [LV.9]以坛为家II

    发表于 2019-1-30 22:37:47 | 显示全部楼层
    我的天哪。要是有这个工具。那简直是神作啊。
  • TA的每日心情

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

    [LV.8]以坛为家I

    发表于 2019-1-31 23:33:23 | 显示全部楼层
    如果会用 PtQT,用C++做也是个解决方案
    & W$ ~' U0 z- |/ |2 @其实用Python 先做出来,有需要或者兴趣 改成别的语言 会容易很多。
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-4-30 21:30:17 | 显示全部楼层
    ogrishman 发表于 2019-4-30 20:40+ @! f/ B$ n5 d1 l, A& B( E
    楼主的思路是错的,你用Rust、C++还是Python或者Golang,差异都不大。因为这是个词典提取工具,根本就不是 ...
    2 R$ t$ c9 n& [8 g3 B$ A9 j: |' ~
    执行效率还是影响心情… 比如朗文5++ 5分钟提取完 和5个小时提取完 体验差别太大了…
  • TA的每日心情
    开心
    2019-8-21 08:44
  • 签到天数: 163 天

    [LV.7]常住居民III

    发表于 2019-5-1 07:17:22 | 显示全部楼层
    本帖最后由 mikeee 于 2019-5-1 07:19 编辑 & \+ h! G& ~9 s4 ^3 u# W1 v  x
    不确定nodejs是否可以实现。
    # I# q$ Q. ~& kpython的实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则。6 M5 t2 q% x  O$ C. v; }
    , ~( e; o+ A) r3 B6 F4 x# W# A
    也不确定nodejs是否都支持这些库,以及性能是否足够好。

    " I. g9 x; D( W' b/ c& M) J我对 nodejs 以及 python 的了解其实也有限,乱说一通供楼主参考。说错了高人指点一下。你说的python
    # e0 [; R( s$ |" B实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则等等,nodejs实现应该都是没有问题的。4 c- @! p: z0 H4 e( f) w8 K
    lxml基于elementtree,nodejs可以搜到相应的包。beautifulsoup不知道有没有对应的包,但大可以用更好的包5 @% |. p* P4 G8 [7 o7 b
    pyquery(nodejs里的jquery/cheerio) 代替,nodejs整xpath以及正则自然没有问题。其实nodejs的内置正则
    0 H* W" A% l7 ^' a3 g+ ~) u! u( }比引擎python的内置正则引擎还强大一些,比如前者支持变宽肯定逆流序环视(variable-length positive 6 b9 M+ L  ^( w; Z5 @8 p' r
    lookbehind)后者不支持, python要另装名为regex的包才支持变宽肯定逆流序环视。
    " w5 F; O0 a5 l3 e0 S1 T9 ?
    * J# N! u5 U) W, O1 R4 w但个人觉得 nodejs 可能不如 python 适合你要做的。我的理解,你要做的(本质是搜索吧)属于计算强度较" N3 ]. {1 k( k- b8 T# s
    大的任务而并不是I/O强度较 大的任务。
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-5-1 09:53:57 | 显示全部楼层
    mikeee 发表于 2019-5-1 07:17. p+ x3 x2 v; @: {$ v
    我对 nodejs 以及 python 的了解其实也有限,乱说一通供楼主参考。说错了高人指点一下。你说的python
    $ M: F( @3 d6 Y% [0 O7 g# u1 ]4 {实现 ...

      P; T9 Z  \( N% a嗯好的 感谢提供这些信息 很有用
  • TA的每日心情
    开心
    2022-1-21 00:52
  • 签到天数: 699 天

    [LV.9]以坛为家II

    发表于 2019-5-4 11:57:13 | 显示全部楼层
    可以从这个列表开始
    + F" k/ ~% C- x5 X/ C- ^" o" latomore 整理了(Vocabulary.com + Collins + 雅思 + 牛津)中的高频短语词组7 Q$ }& q3 f$ E, i8 v: ^6 b8 u
    内容包括:, J- X+ y- I& a6 y8 Q
    https://www.pdawiki.com/forum/thread-33730-1-1.html?x=180507& ]3 t. ]( f9 i) T1 g
    1. Vocabulary.com词典中词频小于20000的词组 (1977个,按词频排序);
    ( k1 C) ~$ K8 T  J! H" H0 E2. 柯林斯双解词典中 五星词组 (4692个, 按五级分组排序);" a8 T+ I5 n, ?9 h+ i2 j- e* @! N
    3. 剑桥双解词典中 雅思词组 (2452个,按A1-C2分组);" e7 e% G: G6 n8 e
    4. 牛津双解词典中 星标词组 (298个)。  M" ?, J: o' h

    - C" _7 V( }& I9 \  d2 [. n! k要是合并起来,制作成anki记忆库(反面是相应词典中该短语词组的内容)就好了
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2026-9-15 14:38 , Processed in 0.022316 second(s), 28 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表