掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 2270|回复: 6

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

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

    [LV.6]常住居民II

    发表于 2019-1-30 20:16:44 | 显示全部楼层 |阅读模式
    本帖最后由 jonah_w 于 2019-1-30 20:26 编辑 / n3 d1 x2 ^# B
    ! R: j7 o& [- X$ w
    初步想到希望可以做到几点:: j4 q2 z0 r2 {) q0 L+ }

    5 n9 V' k0 c0 n! E2 ?, {
    • 跨平台,支持Windows、Mac OS、Linux
    • 性能尽量好0 w. [7 f) p4 x( Q

    5 M, z* m9 }, D  ?/ y
    & ?) y. `6 h- j; C( W4 q不知道现在比较好的跨平台框架有哪些。
    7 @- U+ i% m* y9 K& G% V2 t; A5 i3 c" `8 P& Y$ j
    目前做的几个词组提取版的Mac词典基本是通过python代码实现的。
    . d; b4 m1 c2 B) O所以应该用下PyQt5?8 C. J2 U; e# A, S$ q" c

    9 c$ i+ w4 _' R2 U. G. v* {3 @" b4 a我自己倾向于Electron框架,但好像这个是用nodejs写,可能需要重写已有功能,不确定nodejs是否可以实现。. @) S( h9 x- p* n$ }$ o
    python的实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则。
    # [9 Z3 {1 K1 P& T. m
    4 s! N6 m8 U6 v/ L9 P/ @也不确定nodejs是否都支持这些库,以及性能是否足够好。
    : P& x' ^; a9 w& S0 N" _+ Y* U; \1 m' V( E
    另外因为最近想学习一下Rust语言,不知道Rust在这方面咋样,尤其是是否有成熟的跨平台UI框架,考虑到Rust语言本身现在都不是很成熟。
    4 g& a  |4 r* l& {! r/ l2 V% t; w4 h2 y! W/ K4 Z
    考虑Rust是因为它的性能太好了… 前几天推荐给大家的那个rg全文搜索命令就是Rust写的,可以说吊打了一切其他类似命令了。9 G  X0 i6 \' A: T) A5 W
    7 p6 t/ Z" i2 `2 S% r
    rg相关帖子:【2019.01.22更新】Microsoft Bing Dictionary 语料库, r: F7 j. l" b$ E% S; n4 W& z
    https://www.pdawiki.com/forum/thread-32693-1-1.html?x=294297. F2 ^2 ^4 o3 Z* r: r, H
    9 L$ m  J2 \* ~! e/ V- F

    0 k. x& B( x( A) c; C5 X所以很是心动。
    5 L4 c/ [2 G/ G) R9 |
    % E5 w7 X# e( y) w但我怀疑Rust无法满足所有需求。不知道论坛里是否有Rust大佬,或者nodejs大佬,可以指点一二。. C' B, T9 |% Q4 t1 F. O

    - x; Y  V3 t. S1 Y
    9 e; L) R- S, }3 u4 J9 x另外,这个工具目前只是一个想法,没有任何保证什么时候写出来或者能不能写出来,不想有太大压力… 做GDoS Mac词组提取词典的时候压力极大,有时候毫无进展,技术难点无法突破,当时心情很沮丧。还好最后在各种技术群不知羞耻的请教最后做出来了。* r. c4 z! q; W4 T# \

    3 I. m' h& k# x9 U% U9 o: k& B) sGDos 俚语词典的词组提取的效果如何,请参考:18.4 万词条:GDoS 最全俚语词典 词组完全提取版 Green Dict Mac版8 P7 x3 _/ m4 _' b# P0 G
    https://www.pdawiki.com/forum/thread-32839-1-1.html?x=294297" R) z5 b; N6 {5 H$ p. F
    ! J+ F' U: A( R3 O9 z7 C8 I" X" z
    大家有任何意见或者建议(技术上的、非技术上的)还望不吝赐教。
    ; T- O# r! J- L
    ( n+ m# i2 s* Q6 u1 [& {
    * O6 ], q0 `. I' y4 y先谢谢了。
    2 @1 b$ }. V, D9 A) b/ e
    6 H6 f- e! p* y; j) |+ T% ?
    ( F0 D5 c. @: w" @5 m' A+ b: m3 M. x3 w# b0 U1 g! K9 A

    评分

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

    [LV.6]常住居民II

     楼主| 发表于 2019-4-30 21:30:17 | 显示全部楼层
    ogrishman 发表于 2019-4-30 20:40
    5 o$ I  `0 Q9 `% A( k' q楼主的思路是错的,你用Rust、C++还是Python或者Golang,差异都不大。因为这是个词典提取工具,根本就不是 ...

    ; ^3 N( h' ?7 v/ [( b执行效率还是影响心情… 比如朗文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 编辑
    # `+ E3 ?5 W/ T/ i" B
    不确定nodejs是否可以实现。
    0 a  l' D: A5 `4 T( \python的实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则。
    4 q' z0 G& C' ^& L; K# Y! D+ g- o
    0 T' d) ^+ c5 W9 a也不确定nodejs是否都支持这些库,以及性能是否足够好。

    4 a* u$ r' R  k我对 nodejs 以及 python 的了解其实也有限,乱说一通供楼主参考。说错了高人指点一下。你说的python# a( F1 V; l. c# j: j7 |
    实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则等等,nodejs实现应该都是没有问题的。1 `' d4 @2 n& ^+ |5 i/ ?+ @
    lxml基于elementtree,nodejs可以搜到相应的包。beautifulsoup不知道有没有对应的包,但大可以用更好的包
    , c) `0 x9 g8 ]$ H) Z% ~: Fpyquery(nodejs里的jquery/cheerio) 代替,nodejs整xpath以及正则自然没有问题。其实nodejs的内置正则
    ) P3 \, F# D+ m0 s比引擎python的内置正则引擎还强大一些,比如前者支持变宽肯定逆流序环视(variable-length positive " B" C% @  x, P1 m8 `% Z
    lookbehind)后者不支持, python要另装名为regex的包才支持变宽肯定逆流序环视。
    6 \+ X4 |# a* Y9 i- L$ g/ z! G2 P) Q' O! P
    但个人觉得 nodejs 可能不如 python 适合你要做的。我的理解,你要做的(本质是搜索吧)属于计算强度较1 H" `4 F( N2 H+ g
    大的任务而并不是I/O强度较 大的任务。
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-5-1 09:53:57 | 显示全部楼层
    mikeee 发表于 2019-5-1 07:173 l) U# A3 z6 P( e) \
    我对 nodejs 以及 python 的了解其实也有限,乱说一通供楼主参考。说错了高人指点一下。你说的python
    / p0 _6 Q! b0 X9 U2 q实现 ...
      ?3 y. l3 p& r% I2 F
    嗯好的 感谢提供这些信息 很有用
  • TA的每日心情
    开心
    2022-1-21 00:52
  • 签到天数: 699 天

    [LV.9]以坛为家II

    发表于 2019-5-4 11:57:13 | 显示全部楼层
    可以从这个列表开始+ ~) y2 E* ?' ?/ q/ u6 @
    atomore 整理了(Vocabulary.com + Collins + 雅思 + 牛津)中的高频短语词组! d! M4 ?8 p* n7 i4 H5 K4 m
    内容包括:" d8 ]) ^% B% v
    https://www.pdawiki.com/forum/thread-33730-1-1.html?x=1805076 P0 f1 w' U: F% o" H2 `
    1. Vocabulary.com词典中词频小于20000的词组 (1977个,按词频排序);
    ' C0 H) `- f8 O/ a9 d2. 柯林斯双解词典中 五星词组 (4692个, 按五级分组排序);
    $ i4 I0 Q9 h! Q3. 剑桥双解词典中 雅思词组 (2452个,按A1-C2分组);
    3 e" m9 ?- c7 P+ a$ i9 J4 _4. 牛津双解词典中 星标词组 (298个)。
    ) m' X8 _5 a& R# h6 Y# ?' _
    / S' X7 S4 U" P$ I2 E# N$ A要是合并起来,制作成anki记忆库(反面是相应词典中该短语词组的内容)就好了
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2026-10-31 09:32 , Processed in 0.022585 second(s), 26 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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