掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1341|回复: 6

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

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

    [LV.6]常住居民II

    发表于 2019-1-30 20:16:44 | 显示全部楼层 |阅读模式
    本帖最后由 jonah_w 于 2019-1-30 20:26 编辑   l6 w+ K0 `8 ?/ @
    5 c/ @  C" q, G3 K" e
    初步想到希望可以做到几点:
    + I0 N0 |& [' j; E4 s* f* i" G* O; e4 f4 I5 l% c
    • 跨平台,支持Windows、Mac OS、Linux
    • 性能尽量好2 y2 y  E' K7 H" `0 }- S+ M7 P6 Y

    ' O; c# h1 _& b- [$ D! J
    ; j3 d* u6 R6 c& u0 X4 ^不知道现在比较好的跨平台框架有哪些。
    % G. [# ~) F7 x6 t7 E9 ^5 m" b& I
    6 E) u' f/ {0 D- [; b9 V目前做的几个词组提取版的Mac词典基本是通过python代码实现的。
    ! Z8 T! m1 o) l所以应该用下PyQt5?- ^0 X; ~4 _5 D" |

    ( U# g, C- {; G; k+ l" g我自己倾向于Electron框架,但好像这个是用nodejs写,可能需要重写已有功能,不确定nodejs是否可以实现。
    7 y2 n) i' K$ t: y1 f$ T+ epython的实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则。
    , C+ {" b' Y* {, N, [8 k( j9 ^1 b1 t5 ^0 {9 m6 s
    也不确定nodejs是否都支持这些库,以及性能是否足够好。3 g8 v% j% H2 l5 d4 J

    7 _& @4 z1 }. z; t, W1 n! ~1 V1 j1 `: Z另外因为最近想学习一下Rust语言,不知道Rust在这方面咋样,尤其是是否有成熟的跨平台UI框架,考虑到Rust语言本身现在都不是很成熟。
    & K4 H$ t* Q9 ~
    ( d1 N  O. e: p7 G考虑Rust是因为它的性能太好了… 前几天推荐给大家的那个rg全文搜索命令就是Rust写的,可以说吊打了一切其他类似命令了。& _- |9 R2 v* o, L$ P
    ) G1 |+ }  n0 E( \' _
    rg相关帖子:【2019.01.22更新】Microsoft Bing Dictionary 语料库. {3 S4 [1 {- O) C( j
    https://www.pdawiki.com/forum/thread-32693-1-1.html?x=294297! [1 }' s' {" S1 o, u3 t. o

    9 T3 P- R8 T7 |6 b# C
    9 E: y' _6 ^& x" v5 b. z8 T所以很是心动。& `) k, O* y2 L  Q) F  N
    ! U7 a& {% j5 m$ i, a7 Z0 |4 x' ~& a* o
    但我怀疑Rust无法满足所有需求。不知道论坛里是否有Rust大佬,或者nodejs大佬,可以指点一二。8 }4 K; |% D' b* S( n# z" Q6 i7 E

      @' U9 a. k5 a" g/ k3 m7 L- B' L$ v. v
    另外,这个工具目前只是一个想法,没有任何保证什么时候写出来或者能不能写出来,不想有太大压力… 做GDoS Mac词组提取词典的时候压力极大,有时候毫无进展,技术难点无法突破,当时心情很沮丧。还好最后在各种技术群不知羞耻的请教最后做出来了。6 ]3 {" {, o1 H

    & ?- U' y! W# D$ R/ o1 {5 nGDos 俚语词典的词组提取的效果如何,请参考:18.4 万词条:GDoS 最全俚语词典 词组完全提取版 Green Dict Mac版
    ! Z$ S$ l$ B% Q" Dhttps://www.pdawiki.com/forum/thread-32839-1-1.html?x=294297
    5 @- m; k" V9 b' p/ x/ i1 g
    2 z$ z  H" f6 E# V' `! u1 f大家有任何意见或者建议(技术上的、非技术上的)还望不吝赐教。
    # ]' u" [; D5 A* y' k
    : s  N1 i$ H* M$ s; R+ ~: D& L( w9 \
    先谢谢了。. A+ p( {8 n. q1 I

    2 U5 c: H7 |- t3 y/ U$ A8 K0 B- t6 f* ?: v
    - \% ~* V" h+ Q" x! u

    评分

    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++做也是个解决方案2 K* W+ \- w6 R' V0 t
    其实用Python 先做出来,有需要或者兴趣 改成别的语言 会容易很多。
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-4-30 21:30:17 | 显示全部楼层
    ogrishman 发表于 2019-4-30 20:40; P: t! d, `/ C, D! L$ ^
    楼主的思路是错的,你用Rust、C++还是Python或者Golang,差异都不大。因为这是个词典提取工具,根本就不是 ...
    6 u' k' t; U' C
    执行效率还是影响心情… 比如朗文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 编辑 % r! D+ [1 E5 j' O2 w+ {: [# }, X
    不确定nodejs是否可以实现。
    2 k/ V" Z9 k+ W) V9 }python的实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则。
    6 _* q* ?9 u% ?5 _# ~; D' P& [$ e/ E* D" d% W( d5 a6 d( l5 @
    也不确定nodejs是否都支持这些库,以及性能是否足够好。
      E% k$ D8 ?9 x8 f2 X& x+ k) }
    我对 nodejs 以及 python 的了解其实也有限,乱说一通供楼主参考。说错了高人指点一下。你说的python6 f) ~0 B% W# E3 L) F4 X
    实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则等等,nodejs实现应该都是没有问题的。
    * \7 O6 [% g7 B" Q( j4 ?4 ^1 N0 \lxml基于elementtree,nodejs可以搜到相应的包。beautifulsoup不知道有没有对应的包,但大可以用更好的包4 f0 i/ k; S$ k
    pyquery(nodejs里的jquery/cheerio) 代替,nodejs整xpath以及正则自然没有问题。其实nodejs的内置正则
    9 d% ^# D$ I! `: _比引擎python的内置正则引擎还强大一些,比如前者支持变宽肯定逆流序环视(variable-length positive
    - D7 _/ x8 J. zlookbehind)后者不支持, python要另装名为regex的包才支持变宽肯定逆流序环视。- j9 t& Q, W  v2 ^2 q0 r4 ^
    % d( c8 B0 `+ A# m, ^2 ^- T
    但个人觉得 nodejs 可能不如 python 适合你要做的。我的理解,你要做的(本质是搜索吧)属于计算强度较
    # B& E, y! s7 K# \$ P大的任务而并不是I/O强度较 大的任务。
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-5-1 09:53:57 | 显示全部楼层
    mikeee 发表于 2019-5-1 07:17; f9 e5 j; I& M& {
    我对 nodejs 以及 python 的了解其实也有限,乱说一通供楼主参考。说错了高人指点一下。你说的python
    0 i; H& x+ m& ~. e9 ~* Y" B实现 ...

    ( _, Y* o/ m3 G6 U/ s嗯好的 感谢提供这些信息 很有用
  • TA的每日心情
    开心
    2022-1-21 00:52
  • 签到天数: 699 天

    [LV.9]以坛为家II

    发表于 2019-5-4 11:57:13 | 显示全部楼层
    可以从这个列表开始
    $ O# s$ X; P7 O# m$ c7 Ratomore 整理了(Vocabulary.com + Collins + 雅思 + 牛津)中的高频短语词组
    7 L: R2 S; n* l: }9 `5 @. F6 f内容包括:0 E* z7 f( @: o& w' x
    https://www.pdawiki.com/forum/thread-33730-1-1.html?x=180507
    & O9 B# l1 z$ P* M6 }1 R; o1 s1. Vocabulary.com词典中词频小于20000的词组 (1977个,按词频排序);- l9 B( u, @$ B9 L7 }
    2. 柯林斯双解词典中 五星词组 (4692个, 按五级分组排序);( ~- d, D5 U5 S9 W0 r/ M8 k
    3. 剑桥双解词典中 雅思词组 (2452个,按A1-C2分组);
    5 T5 D2 X9 x; ^  k1 U$ k4 z! z4. 牛津双解词典中 星标词组 (298个)。1 L+ w4 l0 q( w# D* ^
    % a- o5 ?( S4 h2 n4 Q
    要是合并起来,制作成anki记忆库(反面是相应词典中该短语词组的内容)就好了
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-5-25 00:15 , Processed in 0.024479 second(s), 29 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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