掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1125|回复: 6

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

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

    [LV.6]常住居民II

    发表于 2019-1-30 20:16:44 | 显示全部楼层 |阅读模式
    本帖最后由 jonah_w 于 2019-1-30 20:26 编辑
    : ?5 [/ j& i0 R* ?; A  s
    3 B% M7 \- q3 j9 j- z初步想到希望可以做到几点:/ s& T4 d% B- B$ ~5 {$ B5 ?

    / m  O8 I1 y+ z+ ^' k. j
    • 跨平台,支持Windows、Mac OS、Linux
    • 性能尽量好4 s" O5 R  o1 ?* s# t4 H$ }; c

    , S0 V/ B, B9 d- @6 C) E
    1 P+ C! K! f# b2 N不知道现在比较好的跨平台框架有哪些。0 u) U% B. o, m3 M

    8 k$ N$ ]. k! r4 C3 N6 A1 V$ ?目前做的几个词组提取版的Mac词典基本是通过python代码实现的。
    : H( ~9 F: `: x2 P2 I所以应该用下PyQt5?4 L0 R6 d0 n* `! ]/ M
    # C4 s0 U  p' ?
    我自己倾向于Electron框架,但好像这个是用nodejs写,可能需要重写已有功能,不确定nodejs是否可以实现。# s+ x: f4 s0 Y( Z' Q
    python的实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则。
    / ]" Q8 j" }  k! N4 n) @! l% x, X7 ~# W
    也不确定nodejs是否都支持这些库,以及性能是否足够好。4 ?7 i7 T& @8 G' |% M

    8 E5 z+ ?$ B! b: ?  M另外因为最近想学习一下Rust语言,不知道Rust在这方面咋样,尤其是是否有成熟的跨平台UI框架,考虑到Rust语言本身现在都不是很成熟。
    - z2 @$ T* j. b% _1 v( ^4 N5 i. }* M" @
    考虑Rust是因为它的性能太好了… 前几天推荐给大家的那个rg全文搜索命令就是Rust写的,可以说吊打了一切其他类似命令了。
    ! d; ^2 Z* z2 L/ [2 e) o* y5 t2 _% j) @" a
    rg相关帖子:【2019.01.22更新】Microsoft Bing Dictionary 语料库
    6 U$ B& y' ?: A3 X# \- C+ bhttps://www.pdawiki.com/forum/thread-32693-1-1.html?x=294297
    - ^& M$ j% Y, w: S0 c: b/ |
    : K" B. c4 s& A! v$ A* U0 `% j! u% B/ T
    $ B3 d' q5 Q# P6 e4 [8 @% l" _所以很是心动。: y  V6 e$ f) g, u6 A
    1 s6 ^8 `5 h# I  H: H! T
    但我怀疑Rust无法满足所有需求。不知道论坛里是否有Rust大佬,或者nodejs大佬,可以指点一二。4 y3 X0 ^1 {& z+ ]  _* g: a

    ; R0 I# ^1 e6 m4 Z2 w, ?
    4 @0 ~3 ~! P2 N9 u& D( S! b另外,这个工具目前只是一个想法,没有任何保证什么时候写出来或者能不能写出来,不想有太大压力… 做GDoS Mac词组提取词典的时候压力极大,有时候毫无进展,技术难点无法突破,当时心情很沮丧。还好最后在各种技术群不知羞耻的请教最后做出来了。
    1 _  ~. ?" q% C$ s$ a3 O
    0 [' x  T# N/ c( y9 Z4 q% l7 Q! cGDos 俚语词典的词组提取的效果如何,请参考:18.4 万词条:GDoS 最全俚语词典 词组完全提取版 Green Dict Mac版
      q; k4 m! R1 j' [8 z' }https://www.pdawiki.com/forum/thread-32839-1-1.html?x=2942971 Y5 ?: d: w1 r0 {! F; N
    1 I# T! m' P  C
    大家有任何意见或者建议(技术上的、非技术上的)还望不吝赐教。$ N" J9 q" A0 U7 Z9 z
    6 w2 h2 K) H: [+ ~( U

    $ |3 Y, Z+ S4 B6 g) m* R先谢谢了。- J/ {, S3 j4 R5 o. y7 U

    " H0 D/ ?& F/ H: m( V5 c# D7 {0 [% b; ^' V: Y$ W, U: h, h

    9 E1 V9 T& X4 s( D: m) c( p( F+ ]

    评分

    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++做也是个解决方案: V7 d' g" p( I- A
    其实用Python 先做出来,有需要或者兴趣 改成别的语言 会容易很多。
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-4-30 21:30:17 | 显示全部楼层
    ogrishman 发表于 2019-4-30 20:404 q6 x! y6 E8 Y* X/ z
    楼主的思路是错的,你用Rust、C++还是Python或者Golang,差异都不大。因为这是个词典提取工具,根本就不是 ...

    . s7 c  [( k% @4 k+ [; j$ b/ W执行效率还是影响心情… 比如朗文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 编辑 6 X# }0 \/ Q3 w7 O- s
    不确定nodejs是否可以实现。% }, n$ P1 o) ^# W& y; S  M
    python的实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则。
    - i7 ?) u' i6 L& K% J
      @- ?, I9 w2 ~& C2 B% k也不确定nodejs是否都支持这些库,以及性能是否足够好。
    & T7 {% E* x  D5 }) X" q# \
    我对 nodejs 以及 python 的了解其实也有限,乱说一通供楼主参考。说错了高人指点一下。你说的python- a+ ^! a" f, B7 T% D2 Y2 ~1 T
    实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则等等,nodejs实现应该都是没有问题的。
    " ?# H2 Z$ g9 }lxml基于elementtree,nodejs可以搜到相应的包。beautifulsoup不知道有没有对应的包,但大可以用更好的包
    6 r; a3 \# b  v# h. \, s8 U, P9 `pyquery(nodejs里的jquery/cheerio) 代替,nodejs整xpath以及正则自然没有问题。其实nodejs的内置正则9 z# j& ~0 g9 B$ S2 s* y+ O
    比引擎python的内置正则引擎还强大一些,比如前者支持变宽肯定逆流序环视(variable-length positive ' w" t5 r8 y. E- P' O! x3 I8 T
    lookbehind)后者不支持, python要另装名为regex的包才支持变宽肯定逆流序环视。
    3 ~' E3 q6 P( L$ z* j  c' e' z
    9 r) y; W) ~$ A8 Y1 \但个人觉得 nodejs 可能不如 python 适合你要做的。我的理解,你要做的(本质是搜索吧)属于计算强度较
    0 p* ]: N# f" i' k4 O大的任务而并不是I/O强度较 大的任务。
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-5-1 09:53:57 | 显示全部楼层
    mikeee 发表于 2019-5-1 07:17
    . F+ f- o, ~  m4 |我对 nodejs 以及 python 的了解其实也有限,乱说一通供楼主参考。说错了高人指点一下。你说的python
    , r, j2 J- W( Y" r实现 ...
    ; d7 F* B  k2 ~4 [
    嗯好的 感谢提供这些信息 很有用
  • TA的每日心情
    开心
    2022-1-21 00:52
  • 签到天数: 699 天

    [LV.9]以坛为家II

    发表于 2019-5-4 11:57:13 | 显示全部楼层
    可以从这个列表开始
    ; F* l) F0 ^- A) hatomore 整理了(Vocabulary.com + Collins + 雅思 + 牛津)中的高频短语词组4 B! s5 \# w: ^+ O: q  X! M
    内容包括:' d/ A/ y" I' [) l# e
    https://www.pdawiki.com/forum/thread-33730-1-1.html?x=180507, ^* {$ }! r0 D+ w# Y- _5 l6 i3 E
    1. Vocabulary.com词典中词频小于20000的词组 (1977个,按词频排序);
    3 E' P& S3 h1 |2. 柯林斯双解词典中 五星词组 (4692个, 按五级分组排序);
    & o1 ~* {9 `- F7 R3. 剑桥双解词典中 雅思词组 (2452个,按A1-C2分组);7 v, E8 ?8 k. D. ?. s: G
    4. 牛津双解词典中 星标词组 (298个)。
    ( C1 z. y9 h8 Y7 m% f5 z# p2 f( ?- C0 [; Z/ D" r
    要是合并起来,制作成anki记忆库(反面是相应词典中该短语词组的内容)就好了
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-5-8 20:01 , Processed in 0.125748 second(s), 10 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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