掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1317|回复: 6

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

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

    [LV.6]常住居民II

    发表于 2019-1-30 20:16:44 | 显示全部楼层 |阅读模式
    本帖最后由 jonah_w 于 2019-1-30 20:26 编辑 $ }( _8 u1 D4 l9 Y+ E

    " Y" {2 M7 f: g; O! D' t8 Q5 z初步想到希望可以做到几点:
    7 ^& i0 _6 T$ |6 P. d$ A$ t1 J0 e2 f/ k" u
    • 跨平台,支持Windows、Mac OS、Linux
    • 性能尽量好( m9 |' |5 c8 `5 j- i" {- u
    & A" e( N0 A: V! D, A# ?, K% O3 U. ~

    . M, Q8 m7 Z) y1 H0 B& T' q不知道现在比较好的跨平台框架有哪些。
    2 g- E5 R3 C3 [; M# b, N+ O+ h0 @% f8 B, A
    目前做的几个词组提取版的Mac词典基本是通过python代码实现的。
    % c# ~  j  {+ ~% C" X所以应该用下PyQt5?( r7 `" R2 F- K2 u+ ]

    # t* B+ b$ i( z! M" H5 S% `' r我自己倾向于Electron框架,但好像这个是用nodejs写,可能需要重写已有功能,不确定nodejs是否可以实现。
    0 m- T* J( K2 Z$ a$ p2 v) Spython的实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则。/ z5 \' [3 ]5 o7 ?# V- ]

    , h% g. f/ n0 Q/ ?+ ^& B也不确定nodejs是否都支持这些库,以及性能是否足够好。6 c' O5 ^$ F( R

    8 N8 a9 t! T! r4 b" }  Q: X( ^1 N另外因为最近想学习一下Rust语言,不知道Rust在这方面咋样,尤其是是否有成熟的跨平台UI框架,考虑到Rust语言本身现在都不是很成熟。
    ( L* C2 R7 x; a; c: D
    6 l* d3 y( A6 i0 A: J2 _  `& P考虑Rust是因为它的性能太好了… 前几天推荐给大家的那个rg全文搜索命令就是Rust写的,可以说吊打了一切其他类似命令了。0 @! `, s8 M$ M" f2 ~
    7 u" I6 @' w* D
    rg相关帖子:【2019.01.22更新】Microsoft Bing Dictionary 语料库
    ! S" p" c* y( \. J6 ehttps://www.pdawiki.com/forum/thread-32693-1-1.html?x=294297
    $ k# q# ^$ R6 J
    ' l7 ?4 J! Y( L2 S, Z9 T+ ]9 i
    % J1 H. u* ~3 i1 f所以很是心动。
    , Q$ V# i2 S& g6 L: x( F, ^0 ~5 L/ f7 _1 R
    但我怀疑Rust无法满足所有需求。不知道论坛里是否有Rust大佬,或者nodejs大佬,可以指点一二。# c" X' R: d3 W

    $ V* `: W% O  f/ c( ]
    , e; J0 D  E- @7 N8 ^! g2 A另外,这个工具目前只是一个想法,没有任何保证什么时候写出来或者能不能写出来,不想有太大压力… 做GDoS Mac词组提取词典的时候压力极大,有时候毫无进展,技术难点无法突破,当时心情很沮丧。还好最后在各种技术群不知羞耻的请教最后做出来了。) Q9 n3 ~: G+ m7 {+ ]7 Y" V2 u. u
    + X: q" A" ~1 ?) u( V
    GDos 俚语词典的词组提取的效果如何,请参考:18.4 万词条:GDoS 最全俚语词典 词组完全提取版 Green Dict Mac版
    % {3 {, h9 z7 H2 z( M, e  {https://www.pdawiki.com/forum/thread-32839-1-1.html?x=294297' z# `$ |0 ?, A4 c% L. l" K9 [& n

    . i& i* Q9 ?( q- F/ C大家有任何意见或者建议(技术上的、非技术上的)还望不吝赐教。
    0 n& V; U; a, V9 g& Q: W# g) ^. K, E* w" H% E% d7 Z

    7 `4 c0 O9 E: K& S' q3 y6 e+ N先谢谢了。1 B7 J% u+ z! b9 q% M9 T: o3 z
    8 b( X5 g1 z% a

    4 z, I, w4 |3 e7 ]) ]0 t1 U5 g
    2 t  t, _& i. _% U7 E' b- Z

    评分

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

    [LV.6]常住居民II

     楼主| 发表于 2019-4-30 21:30:17 | 显示全部楼层
    ogrishman 发表于 2019-4-30 20:40
    % n( L& E! `  [1 \2 U楼主的思路是错的,你用Rust、C++还是Python或者Golang,差异都不大。因为这是个词典提取工具,根本就不是 ...

    & ]& E. a! N# c1 I- 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 编辑 7 I5 `5 N+ m0 G* T. |  _
    不确定nodejs是否可以实现。
    4 H+ V# d6 y, U' ?, j7 ]3 Upython的实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则。
    # p: h1 x, _7 m8 N: j0 [. H  H: w4 t2 B
    也不确定nodejs是否都支持这些库,以及性能是否足够好。
    ' M" |3 K8 D) i  o" W
    我对 nodejs 以及 python 的了解其实也有限,乱说一通供楼主参考。说错了高人指点一下。你说的python
    % m4 |" X6 N9 ~& D( ~% m  I实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则等等,nodejs实现应该都是没有问题的。
    # t% `3 v# `/ J  s$ Blxml基于elementtree,nodejs可以搜到相应的包。beautifulsoup不知道有没有对应的包,但大可以用更好的包8 |6 z2 b2 y6 r0 ^( w- s
    pyquery(nodejs里的jquery/cheerio) 代替,nodejs整xpath以及正则自然没有问题。其实nodejs的内置正则
    ' {1 q. Q( p* N) V( D: E% @比引擎python的内置正则引擎还强大一些,比如前者支持变宽肯定逆流序环视(variable-length positive
    ; r6 L( b: C% D1 F* X4 dlookbehind)后者不支持, python要另装名为regex的包才支持变宽肯定逆流序环视。) J. i  t7 m  N. S# B/ L# u
    & M4 k: Z+ ]6 Y7 i2 H& ~
    但个人觉得 nodejs 可能不如 python 适合你要做的。我的理解,你要做的(本质是搜索吧)属于计算强度较, d8 z$ \% `& x/ h  q
    大的任务而并不是I/O强度较 大的任务。
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-5-1 09:53:57 | 显示全部楼层
    mikeee 发表于 2019-5-1 07:17
    : b: s$ w  j: I( R+ w我对 nodejs 以及 python 的了解其实也有限,乱说一通供楼主参考。说错了高人指点一下。你说的python
    & D0 y) I8 [" d实现 ...

    1 q& c3 @  G; ^5 B) V& R7 v嗯好的 感谢提供这些信息 很有用
  • TA的每日心情
    开心
    2022-1-21 00:52
  • 签到天数: 699 天

    [LV.9]以坛为家II

    发表于 2019-5-4 11:57:13 | 显示全部楼层
    可以从这个列表开始; r; W; n2 _* g) D& n0 V
    atomore 整理了(Vocabulary.com + Collins + 雅思 + 牛津)中的高频短语词组
    % X# Q3 E3 p7 t9 b内容包括:
    * E0 O3 P0 }5 `8 j6 Y- Ehttps://www.pdawiki.com/forum/thread-33730-1-1.html?x=180507: v0 T7 G7 y+ y7 ~
    1. Vocabulary.com词典中词频小于20000的词组 (1977个,按词频排序);
    ; N- g! D) G& {; F: e9 ~2. 柯林斯双解词典中 五星词组 (4692个, 按五级分组排序);" U* `# d# B" `' I/ z8 p/ m
    3. 剑桥双解词典中 雅思词组 (2452个,按A1-C2分组);  O0 C( V& u# P; u$ g! ]' t
    4. 牛津双解词典中 星标词组 (298个)。
    2 _; s% s. X* B$ |7 k6 U9 L1 c& H
    ; o+ N* S4 ~- o. @" t& e% v, ]要是合并起来,制作成anki记忆库(反面是相应词典中该短语词组的内容)就好了
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-5-3 06:02 , Processed in 0.024060 second(s), 28 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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