掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 2271|回复: 6

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

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

    [LV.6]常住居民II

    发表于 2019-1-30 20:16:44 | 显示全部楼层 |阅读模式
    本帖最后由 jonah_w 于 2019-1-30 20:26 编辑 / }, F1 D$ c. J5 x

    5 s# }% K8 ]! K5 r, e6 q初步想到希望可以做到几点:" ]) t& `; I% ?! W

    6 q, F, ]4 ?! m# K" w
    • 跨平台,支持Windows、Mac OS、Linux
    • 性能尽量好
      * _; K3 x  g; n8 [2 I- X

    . d* q) Q) ]- I( G/ z' M7 K4 C2 @* m9 U
    不知道现在比较好的跨平台框架有哪些。" ]+ i% Z# L" F. X2 j) I3 A

    / M& o$ N% t- U0 k/ W: y目前做的几个词组提取版的Mac词典基本是通过python代码实现的。
    1 g' |% M& _' v所以应该用下PyQt5?6 f/ }0 @' |1 Z4 P; M8 g

    1 {; o& Q9 j6 L1 E& o我自己倾向于Electron框架,但好像这个是用nodejs写,可能需要重写已有功能,不确定nodejs是否可以实现。" c+ E" E8 y! o" i
    python的实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则。2 g6 O( C# w% X: l
    $ G: j5 O& z2 c& |
    也不确定nodejs是否都支持这些库,以及性能是否足够好。
    + j7 F4 \! ~9 u! u: |" ?) U/ _
    $ A  I8 _  R# \6 c" e& i另外因为最近想学习一下Rust语言,不知道Rust在这方面咋样,尤其是是否有成熟的跨平台UI框架,考虑到Rust语言本身现在都不是很成熟。! {( y1 C3 N2 o/ l5 F

    ; l7 B+ F3 k+ k+ ~2 |8 H考虑Rust是因为它的性能太好了… 前几天推荐给大家的那个rg全文搜索命令就是Rust写的,可以说吊打了一切其他类似命令了。- ?0 P  @# t  F. X% J% M4 z

    8 P! {/ a3 Z/ V8 x6 P# S" ^! \  t1 ?rg相关帖子:【2019.01.22更新】Microsoft Bing Dictionary 语料库
    % m" _& r  _2 s0 C" y% x6 n  g& ?. Phttps://www.pdawiki.com/forum/thread-32693-1-1.html?x=2942971 x/ g1 Q  T! {; q% \

    * v+ w1 H& r( D8 F7 r, {2 M( \0 o/ u, A
    所以很是心动。
    3 X2 }* Z( Y! k" C- T6 U
    ) p+ \/ Y) L" k2 m0 ^4 g' w( O3 S但我怀疑Rust无法满足所有需求。不知道论坛里是否有Rust大佬,或者nodejs大佬,可以指点一二。# H8 _; F# s: {

    " _, I0 z* U" h+ d2 z& B" M$ c% h7 h4 x  M
    另外,这个工具目前只是一个想法,没有任何保证什么时候写出来或者能不能写出来,不想有太大压力… 做GDoS Mac词组提取词典的时候压力极大,有时候毫无进展,技术难点无法突破,当时心情很沮丧。还好最后在各种技术群不知羞耻的请教最后做出来了。( R. L0 h" ^% ~2 v/ v! Q' Z

    + v8 y8 x$ c% b4 `5 {GDos 俚语词典的词组提取的效果如何,请参考:18.4 万词条:GDoS 最全俚语词典 词组完全提取版 Green Dict Mac版) e8 I4 \/ L* U
    https://www.pdawiki.com/forum/thread-32839-1-1.html?x=294297
    ; r$ E" F( J& U/ J( ?; l. C( O4 |& T8 g% j5 g0 M
    大家有任何意见或者建议(技术上的、非技术上的)还望不吝赐教。
    1 G! r3 L! H" C8 {! H- w5 Q" E3 J8 `- Q# H( k( s: j( V
    1 Y2 M7 _5 p- M# K5 E* S
    先谢谢了。: K4 |6 @* y7 z9 H' D. F( X
    5 d- I' h: \6 t  B  d, ?' m/ _
    3 f/ L$ x0 L  f! s$ L! d

    * V, d% n/ }' P6 }3 E

    评分

    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 u4 f- U% v$ N, d. ^% D
    其实用Python 先做出来,有需要或者兴趣 改成别的语言 会容易很多。
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-4-30 21:30:17 | 显示全部楼层
    ogrishman 发表于 2019-4-30 20:40% n) t; D: Z6 m8 u7 ~
    楼主的思路是错的,你用Rust、C++还是Python或者Golang,差异都不大。因为这是个词典提取工具,根本就不是 ...

    ' n8 t6 v3 f; }' ^9 l7 n5 x+ t执行效率还是影响心情… 比如朗文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 }. ?, G% j/ |8 s5 B$ Q
    不确定nodejs是否可以实现。
    ' L2 t# @2 Z' [: j$ a/ D* F: V$ Xpython的实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则。2 q: |4 X* j, t' S. Z
    0 U' {1 S# N# Q! B
    也不确定nodejs是否都支持这些库,以及性能是否足够好。

    $ p6 \" y4 \+ _9 [7 [# {# ~我对 nodejs 以及 python 的了解其实也有限,乱说一通供楼主参考。说错了高人指点一下。你说的python. c6 j" C7 B6 H, f  z
    实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则等等,nodejs实现应该都是没有问题的。
    8 ^3 W9 z# |) D  q2 ~, ~1 xlxml基于elementtree,nodejs可以搜到相应的包。beautifulsoup不知道有没有对应的包,但大可以用更好的包
    6 x; X; v' f' f( o! ypyquery(nodejs里的jquery/cheerio) 代替,nodejs整xpath以及正则自然没有问题。其实nodejs的内置正则/ U: f/ m# r# ~: o( [, r
    比引擎python的内置正则引擎还强大一些,比如前者支持变宽肯定逆流序环视(variable-length positive ( H5 m, |1 G- f1 h) W7 C" H# Z
    lookbehind)后者不支持, python要另装名为regex的包才支持变宽肯定逆流序环视。7 v5 N- f6 A9 u7 v% |

    # g5 m- D! e- ]! l$ g但个人觉得 nodejs 可能不如 python 适合你要做的。我的理解,你要做的(本质是搜索吧)属于计算强度较9 W" e2 y& z0 m
    大的任务而并不是I/O强度较 大的任务。
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-5-1 09:53:57 | 显示全部楼层
    mikeee 发表于 2019-5-1 07:17
    2 q; D  U; C% P; m: l9 G( |, L0 l我对 nodejs 以及 python 的了解其实也有限,乱说一通供楼主参考。说错了高人指点一下。你说的python
    - Z$ h0 F, P4 a& E! z" u4 H; ^6 q实现 ...
    + _8 |' T. ]: n6 V/ l( p
    嗯好的 感谢提供这些信息 很有用
  • TA的每日心情
    开心
    2022-1-21 00:52
  • 签到天数: 699 天

    [LV.9]以坛为家II

    发表于 2019-5-4 11:57:13 | 显示全部楼层
    可以从这个列表开始
    . ]9 {* {, I5 ]& X: L" b  }' vatomore 整理了(Vocabulary.com + Collins + 雅思 + 牛津)中的高频短语词组( d; V' \* V! o( L7 A
    内容包括:$ m+ ^+ h1 ~: }3 c7 e* Q
    https://www.pdawiki.com/forum/thread-33730-1-1.html?x=180507
    # x4 D2 `) h9 Y0 {1. Vocabulary.com词典中词频小于20000的词组 (1977个,按词频排序);
    , d" Q2 E' Y" ?2. 柯林斯双解词典中 五星词组 (4692个, 按五级分组排序);. m7 O& _/ O. Y5 Q  L$ h3 T
    3. 剑桥双解词典中 雅思词组 (2452个,按A1-C2分组);
    9 v9 J" h3 b- w; {/ n' j4. 牛津双解词典中 星标词组 (298个)。2 n% ^$ m' n2 P0 A6 ?

    & g+ o+ A! m" `3 c要是合并起来,制作成anki记忆库(反面是相应词典中该短语词组的内容)就好了
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2026-10-31 10:27 , Processed in 0.020587 second(s), 24 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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