掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1113|回复: 6

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

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

    [LV.6]常住居民II

    发表于 2019-1-30 20:16:44 | 显示全部楼层 |阅读模式
    本帖最后由 jonah_w 于 2019-1-30 20:26 编辑 ! y, }$ m& S  s. V. d- y. d

    9 G& B, b* c/ c6 R$ X8 F) Z初步想到希望可以做到几点:
      J7 j- S. q/ N7 J% d5 ?2 s$ h* u* l
    # Y* y, P( B/ I1 Z' w4 D; F
    • 跨平台,支持Windows、Mac OS、Linux
    • 性能尽量好
      ) _) M8 @/ r, W* y+ f, f0 N# f: |
    * `8 |2 J$ J8 d; `

    4 R1 A! l6 d1 l9 Y不知道现在比较好的跨平台框架有哪些。
    2 N) Q8 X9 H7 a7 c6 H' [  Q
    % z  N2 I! |6 f. M目前做的几个词组提取版的Mac词典基本是通过python代码实现的。! y! L5 H4 h$ S; E! F: Z' v1 i
    所以应该用下PyQt5?% v% u- R; f" v# t3 }

    4 q8 l  B( I: D* k! Z0 }/ U( V我自己倾向于Electron框架,但好像这个是用nodejs写,可能需要重写已有功能,不确定nodejs是否可以实现。
    * `2 y% u* O: T( q% }$ Upython的实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则。; H1 V3 A, C2 S

    / u% T! _% J8 Q2 ]- y也不确定nodejs是否都支持这些库,以及性能是否足够好。( P" d) j) `7 G

    * m  C0 h0 T% V6 e( T4 k另外因为最近想学习一下Rust语言,不知道Rust在这方面咋样,尤其是是否有成熟的跨平台UI框架,考虑到Rust语言本身现在都不是很成熟。; w" i7 x. x' O# H9 m8 M

    4 ?( B0 K" g4 s; V5 O考虑Rust是因为它的性能太好了… 前几天推荐给大家的那个rg全文搜索命令就是Rust写的,可以说吊打了一切其他类似命令了。4 I" @& c& B# K* J7 a; O: Q8 R

    ' h9 `' _( o! ~) L7 G+ a. R0 J6 yrg相关帖子:【2019.01.22更新】Microsoft Bing Dictionary 语料库
    1 z, ?# |( V  x0 ihttps://www.pdawiki.com/forum/thread-32693-1-1.html?x=2942973 b7 l; p8 o1 _' R
    0 }5 j! {! a6 m( t: B5 w

    * P3 Y: r2 N+ g- y1 @- G4 X所以很是心动。
    , k) A. h& [7 |: j2 Q$ `' {2 j8 q* O; h) w! L
    但我怀疑Rust无法满足所有需求。不知道论坛里是否有Rust大佬,或者nodejs大佬,可以指点一二。' _! f$ j3 T: n2 R" F) Q
    ! ~2 [. t4 q8 N' E

    5 g9 E* z" i# k% ~: [6 o& T另外,这个工具目前只是一个想法,没有任何保证什么时候写出来或者能不能写出来,不想有太大压力… 做GDoS Mac词组提取词典的时候压力极大,有时候毫无进展,技术难点无法突破,当时心情很沮丧。还好最后在各种技术群不知羞耻的请教最后做出来了。
    0 S8 h9 ~9 L4 w2 Z: q+ n
      e( v' R+ W- T, x$ F. IGDos 俚语词典的词组提取的效果如何,请参考:18.4 万词条:GDoS 最全俚语词典 词组完全提取版 Green Dict Mac版" x$ e  q: q+ D: I+ O7 Z
    https://www.pdawiki.com/forum/thread-32839-1-1.html?x=294297( y1 S2 Z* T) g
    - d/ V: W$ c# Z9 u' o: v) [
    大家有任何意见或者建议(技术上的、非技术上的)还望不吝赐教。! U9 A% ~2 @+ c1 z: p% I
    & k' }) X" Y' ]9 ~* g
    / m7 R$ T/ J  h( U1 s0 I  C
    先谢谢了。7 G# J" `3 {1 z) H( H7 h
    0 ]' V9 w8 ^% o  v" J8 ^: B8 j
    1 i" n7 l% {. @, ^6 ^. k6 K, C) J; E

    4 f" u  L9 h0 V: R, A+ L

    评分

    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++做也是个解决方案
    , i- f- D5 q; C* d2 B其实用Python 先做出来,有需要或者兴趣 改成别的语言 会容易很多。
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-4-30 21:30:17 | 显示全部楼层
    ogrishman 发表于 2019-4-30 20:40) R# t+ N) [* x5 F8 r6 \- [! j
    楼主的思路是错的,你用Rust、C++还是Python或者Golang,差异都不大。因为这是个词典提取工具,根本就不是 ...

    * E! x1 D% ~# p+ b' \( 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 编辑
    ( M0 ~2 e. q+ W3 b+ M  u  W9 ~
    不确定nodejs是否可以实现。
    $ j7 {/ x4 {! upython的实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则。
    * R8 `- n; {+ u) z5 _7 G5 J$ [3 ]" B, g7 s* p, Q6 D7 S3 y$ o" {
    也不确定nodejs是否都支持这些库,以及性能是否足够好。

    - R; L+ [2 @2 {0 z我对 nodejs 以及 python 的了解其实也有限,乱说一通供楼主参考。说错了高人指点一下。你说的python# W/ a; B; i4 ]7 I( d. S
    实现里涉及的技术点主要包括lxml库、beautifulsoup、xpath还有正则等等,nodejs实现应该都是没有问题的。% t# @7 H6 B6 z. O& |1 ~
    lxml基于elementtree,nodejs可以搜到相应的包。beautifulsoup不知道有没有对应的包,但大可以用更好的包
    ( i4 N" c  F. k# Q% j3 cpyquery(nodejs里的jquery/cheerio) 代替,nodejs整xpath以及正则自然没有问题。其实nodejs的内置正则# W5 a& J4 r  o/ o& s
    比引擎python的内置正则引擎还强大一些,比如前者支持变宽肯定逆流序环视(variable-length positive # |1 }- U9 R: R+ U6 L
    lookbehind)后者不支持, python要另装名为regex的包才支持变宽肯定逆流序环视。$ K+ _0 o5 U& k2 z3 g2 W8 S( C

      E+ [* e6 K2 ]0 v' y# R% r但个人觉得 nodejs 可能不如 python 适合你要做的。我的理解,你要做的(本质是搜索吧)属于计算强度较
    . w0 e/ @: ~1 E/ A大的任务而并不是I/O强度较 大的任务。
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-5-1 09:53:57 | 显示全部楼层
    mikeee 发表于 2019-5-1 07:17
    5 |- p6 h, v, [$ Y我对 nodejs 以及 python 的了解其实也有限,乱说一通供楼主参考。说错了高人指点一下。你说的python1 {* Y3 f# W" S4 j" b& K
    实现 ...

    0 s& E( R7 k% J; W嗯好的 感谢提供这些信息 很有用
  • TA的每日心情
    开心
    2022-1-21 00:52
  • 签到天数: 699 天

    [LV.9]以坛为家II

    发表于 2019-5-4 11:57:13 | 显示全部楼层
    可以从这个列表开始1 B3 I- O7 U: h& ~- P( m+ D. c6 H. V  @5 S
    atomore 整理了(Vocabulary.com + Collins + 雅思 + 牛津)中的高频短语词组
    5 T/ O# R7 U) F: l# @内容包括:
    " N' T7 G+ }  Yhttps://www.pdawiki.com/forum/thread-33730-1-1.html?x=180507
    - [) M& {% |5 T9 J  M" d1. Vocabulary.com词典中词频小于20000的词组 (1977个,按词频排序);
    ) M( k# G+ {6 |0 m+ i2. 柯林斯双解词典中 五星词组 (4692个, 按五级分组排序);
    0 E" T4 O9 O1 U: O3. 剑桥双解词典中 雅思词组 (2452个,按A1-C2分组);* Q# }4 [9 \5 G, ?
    4. 牛津双解词典中 星标词组 (298个)。4 ~4 q+ R5 _9 T/ l. q
    2 t( @% u/ Z" m0 A
    要是合并起来,制作成anki记忆库(反面是相应词典中该短语词组的内容)就好了
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-27 04:56 , Processed in 0.047961 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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