掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1428|回复: 10

[求助] 如何用EmEditor正则表达式进行词组拆分?

[复制链接]
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-2 09:08:30 | 显示全部楼层 |阅读模式
    本帖最后由 wjl 于 2020-8-2 12:58 编辑 . ?9 t# b% n/ E) o1 r

      a1 x, P( R+ U3 F如何用EmEditor正则表达式进行词组拆分?, j) ]9 r1 q& @
    Al/A-one ;    P0001. m& U1 O- [$ @) B
    更改为
    ! v. r- Q% r& t, B; lAl/A-one ;    P0001! W8 P+ f- O7 i" l8 x+ t
    Al;    P0001
    6 i' X! i2 J. N; W+ X4 w8 aA-one ;    P0001% s/ B; t' X1 y% l! |$ H+ _9 O
    ___________________________________________________
    1 I& z5 C& |/ y" [  f. qquarrel (with sb) about/for/over ;    2313
    ) b% r+ k! _, O4 S更改为
    $ b: N  b- P. Z3 W& F# Equarrel (with sb) about/for/over ;    2313
    8 @: ]4 x. w( o8 `( Rquarrel with sb about ;    2313
    . l; x8 {  |" `quarrel with sb for ;    2313
    # Q7 f9 j7 g; tquarrel with sb over ;    2313
    ' x0 h% \( c, Q& D- L3 X" |3 nquarrel about ;    23137 F3 p9 J3 J( X7 Z6 |
    quarrel for ;    2313
    3 p. Q2 Q- X+ A+ N; a8 Yquarrel over ;    2313
    ) z+ J. P8 d4 }+ O___________________________________________________
    6 D$ T4 p) T" U4 C: qdabble at/in/with- G5 j5 B  q4 N
    更改为0 q% m& M$ D- f3 ~0 |, b2 h
    dabble at/in/with; a) q2 O( p6 ]* @, y$ @
    dabble at
    " e2 c, |: \; Bdabble in
    8 d3 D" [$ ?2 C; Xdabble with0 F* \/ Q* h# q5 d1 Q4 ^6 p
    ___________________________________________________
    4 B6 f7 a: z$ Odamn and blast (sb/sth)+ V- R, ^  V+ s, P& k
    更改为
    / t* x. ]1 k+ odamn and blast (sb/sth)
    % G1 w6 p9 ?/ L4 O& t" I! r0 G$ S/ Ldamn and blast sb& t1 h0 k' p: y. ?9 j, p  ]
    damn and blast sth  e5 {. p5 h5 h% o- B
    damn and blast
    + V3 g$ S' D0 X; W: s___________________________________________________
    ' `' D5 g$ h  |* i2 pdance on/upon a rope/nothing
    ( X' u2 w3 `2 C& ~( ?/ B更改为
    7 A3 l/ r( [: h. x( P- p8 w4 {$ }dance on/upon a rope/nothing
    3 s8 u- Q' u( Ydance on a rope
    , e2 W& A" s1 K+ \6 R% V$ h% Rdance upon a rope
    ! G* ^9 g& Q/ a, l6 ndance on a nothing% h$ _9 [( d4 o* e& f/ e
    dance upon a nothing- z& n  R3 o* J" q) {
    ___________________________________________________
    ) S* k" ]( z/ l' U1 ]) W- i3 M; `3 Bdance on (the) air
    , x1 Z. Q8 C2 }6 e- s3 w/ p1 u8 f更改为
    " A" H/ U" w2 b& hdance on (the) air2 g6 [% {1 E& [  p/ m
    dance on the air2 T7 Y) ?3 I' j
    dance on air2 r% u$ f: x  b- m3 ]
    ___________________________________________________4 R2 {/ b3 Z4 ?# z0 S- @
    dead/flat/stark calm
    0 t& K, W! l! U  U. H更改为
      N, ]/ L& R* k3 o5 `dead/flat/stark calm" \/ c4 Z, \: h
    dead calm
    0 e" w, F$ D8 `0 Cflat calm% }: N; J, k2 p1 F) ^
    stark calm, j9 x' g* `3 m; r
    ___________________________________________________& ]( F  B; q/ }" k
    do/go/make the/one's round/ y3 G1 q5 y- q7 ?6 \: y, \
    更改为
    ; h1 p2 A- ]! \: C2 x" i# W" k1 Q" cdo/go/make the/one's round
    9 ]! B. L# [- V" ^7 m. k1 x! d9 f& Gdo the round
    ! p9 O  s6 U2 \9 D/ v9 G. X8 H1 m. xgo the round
    / y" u% x' O+ V+ i* x0 \. X0 x) Gmake the round
    * Q7 E$ Q- Q( x0 w+ D+ \do one's round
    3 |6 h( `3 c  q: kgo one's round
    % K7 u$ y8 }, {) ~4 z* g# Imake one's round0 N5 m# X# j, L* S) U
    ___________________________________________________
    / |/ h% C$ m  E6 kdo (sb/sth) grace
    . W3 g- z8 \% P: W- G更改为
    # K4 u  O7 v' ]# Q% `  K% |do (sb/sth) grace6 M1 e3 J+ H+ D( U9 f3 i" }3 O
    do sb grace. W  t$ D) B- a. R
    do sth grace
    7 i( `& X* Q; M- tdo grace
    ( ?2 O: w* [  S) v5 g8 K___________________________________________________0 V- H! m8 V+ I; L8 |
    1 h. w) O: h- d2 @+ b% d
    固定一种模式的话比较好处理,难度在于/和()的出现次数和位置不固定,可能连续出现,也可能分散出现,两者也可能混合在一起出现。示例文件链接: https://pan.baidu.com/s/18rt8d7KxYOsioihLEXxzfQ 提取码: qn3k。如果EmEditor正则表达式不可行的话,用python代码也行# @, z6 ~% r$ C( d
    Al/A-one ;    P0001这种简单的可以用/ M6 v: V" W; n5 x! B8 B# S6 |
    \b(\w+)\b/\b([\w-]+)\b(\s{1,});\tP(\d{4})
    3 f* ?* n3 y, n0 \1 h& v替换为:' L% ?# o1 p6 X: L4 W3 I3 D
    \1/\2\3;\tP\4\n\1\3;\tP\4\n\2\3;\tP\4
    , i5 b. B5 D* g4 a+ n* k- e; m- y$ ^& ^! M
    ; j' m/ ~; C) l( W1 Y) L
  • TA的每日心情
    擦汗
    2022-3-25 11:07
  • 签到天数: 66 天

    [LV.6]常住居民II

    发表于 2020-8-2 13:12:26 | 显示全部楼层
    本帖最后由 yunhailin123 于 2020-8-2 13:15 编辑   p- Q9 C8 T0 I2 d: c/ e, t

    8 w3 m/ Q' l5 j2 X0 t可以借鉴一下fearfare的朗文五,有很多是需要你肉眼观察上千条词条而写的,这个没有什么规律。
    $ z7 E1 _, r. x3 d3 Y$ u( B; ~所以提取词组版的只有ff的朗文五,其他人很少有那个精力去手动提取词组,毕竟那么多词条,还得肉眼加上手工去写规则你也可以去看看garypang的提取朗文五词组完美版,反正花的心思不少,没有捷径可言
    9 y- B( f* A& p' m2 u9 V6 \
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-2 13:28:15 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-2 13:30 编辑 , T3 [, v/ w- ]: ~1 Y2 |& @
    yunhailin123 发表于 2020-8-2 13:122 M4 h: y4 f: B- W6 D3 u3 S
    可以借鉴一下fearfare的朗文五,有很多是需要你肉眼观察上千条词条而写的,这个没有什么规律。
    # G$ B, |8 x- Q% Y) {* f# f所以提取词 ...
    1 n  b; D% y1 T, V/ Q" h% _3 G2 J
    肉眼观察需要考验操作者的观察力和动手能力,可能使用python代码简单些吧,我有想法,但是编程功底不佳,我的想法是将词组先按空格拆分,如果有括号的话,则按空字符串和括号内字符串与别的单词链接组合到一起,这样就有两种情况;如果有两个连在一起的/的话,则将其按/拆分成三个单词,与别的单词链接组合到一起,这样就有三种情况。简单情况能处理的话,感觉用程序实现复杂情况也没问题才对呀。比如quarrel (with sb) about/for/over,括号2种,/3种,排列组合一下总共6种
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 13:29:05 | 显示全部楼层
    本帖最后由 Mandolin 于 2020-8-2 13:35 编辑 $ v0 m9 N/ w* ?+ m, ?6 x. Q

    6 S. R3 {% A. a( ~* ?2 T  G& p英语词典做得少,没遇到过楼主这样的处理需求。要我处理的话,我会把括号「()」和「/」的情况先后处理,最后全处理完后去重
    ' J1 r$ d7 G3 y: v+ b1 K& `0 N  A3 n) R, a  S8 ~$ |. [$ K
    个人感觉:「()」的情况还是不难处理的;「/」的情况不太好处理(因为可能存在这种情况『take some/a lot of doing』,会误拆成 take some lot of doing)
    1 l5 _' C0 c4 B3 X% g- |& |; {$ O1 C& @# q
    还有,你这个索引是文本识别得到的?在处理之前建议一定要先排查下字符错误,并且统一下排版,把 txt 理顺,否则后面的处理很容易出问题
    . O4 ]/ E: q/ ~$ l3 F( I9 v2 B. h) T* m
    / j. M8 d* A; A& I
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-2 13:37:55 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-2 13:42 编辑
    5 Y7 O  q6 F) c: Q4 w; y
    Mandolin 发表于 2020-8-2 13:29+ A8 i  Z2 x) n3 p
    英语词典做得少,没遇到过楼主这样的处理需要。要我处理的话,我会把括号「()」和「/」的情况先后处理
    ) C- C3 S$ ^5 x. f! D
    * J" E$ i4 r+ W! o个 ...
    $ v+ Q( a6 O! R; c. i& e4 ?% K
    我现在练手的《当代英语习语大词典(英汉双解)》应该没有这种情况,大多数「/」两侧都是单词,只有一些全英文的不需要拆分的部分例外,所以刚开始设计正则表达式时可以按都是简单单词这种情况处理,最后通过选定范围替换或手动替换即可解决例外情况。示例文件是OCR识别文本,尚未校对,仅供设计正则表达式参考用。
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 13:45:02 | 显示全部楼层
    本帖最后由 Mandolin 于 2020-8-2 13:54 编辑 ; ?6 o& `3 T! {! E/ x8 ]$ w
    wjl 发表于 2020-8-2 13:374 K1 b" b& s0 ~" V' C
    我现在练手的《当代英语习语大词典(英汉双解)》应该没有这种情况,大多数「/」两侧都是单词,只有一些 ...
    1 r) V* ]% H+ p1 n  V. z
    如果没有我说的那种情况,那用正则就可以实现。
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 13:46:26 | 显示全部楼层
    wjl 发表于 2020-8-2 13:37/ T5 a8 A, u( i8 G( V
    我现在练手的《当代英语习语大词典(英汉双解)》应该没有这种情况,大多数「/」两侧都是单词,只有一些全 ...
    9 L: t$ N8 _3 D/ ^# ?) t, d# B' A
    如果没有我说的那种情况,那用正则应该就能实现。(果然是在做那本词典,加油,希望作品完成后能分享,很期待)
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-2 13:57:53 | 显示全部楼层
    Mandolin 发表于 2020-8-2 13:46( C1 k, B# j! @
    如果没有我说的那种情况,那用正则应该就能实现。(果然是在做那本词典,加油,希望作品完成后能分享,很 ...

    % H8 a- u9 j1 P$ u5 S现在还看不到希望,只有3个人参与校对。感觉python字符串拆分方法最简单,不用懂正则表达式,跟人们的思考方法一致。用正则表达式的话,还得肉眼观察出所有模式,再设计相应的正则表达式,否则不知道如何区分和处理仅含()、仅含/、同时含有()和/,同时含有()和/并且()中也含有/,()和/出现一次或多次、连续出现、分散出现这些情况。只有一种固定模式还好设计,难在怎么一次查找替换所有情况
  • TA的每日心情
    擦汗
    2022-3-25 11:07
  • 签到天数: 66 天

    [LV.6]常住居民II

    发表于 2020-8-2 16:24:22 | 显示全部楼层
    wjl 发表于 2020-8-2 13:28
    - Q, E  b+ ~! b) f7 ^0 j肉眼观察需要考验操作者的观察力和动手能力,可能使用python代码简单些吧,我有想法,但是编程功底不佳, ...

    . x5 C0 {' @* I$ F但是要碰见有的词条是这样的 go'es by sb ,这个词组是瞎掰的,只是举个例子,有这样的,你还得再加一个,不管拆分词组还是要找词组,最终目的都是要找到词组的一些规律,即通过观察大量的数据才能下手
    2 m7 I* b- P& n5 u) [  H6 E也因为这个没有规律,耗时费精力,所以论坛专门弄词组的屈指可数,数据还比较老了。
  • TA的每日心情
    擦汗
    2022-3-25 11:07
  • 签到天数: 66 天

    [LV.6]常住居民II

    发表于 2020-8-2 16:26:53 | 显示全部楼层
    wjl 发表于 2020-8-2 13:57; P! L' A9 s. `# ~- r) i
    现在还看不到希望,只有3个人参与校对。感觉python字符串拆分方法最简单,不用懂正则表达式,跟人们的思 ...

    : b+ C& H3 ~! f" z& V) y建议楼主抽一两个小时恶补一下python基础,只需把基本单位认清,语句怎样写,其实python已经是把代码人性化了,要是c++,过于苛刻。现在随便搜个教程稍微一学,现学现用
  • TA的每日心情
    开心
    2021-12-8 06:17
  • 签到天数: 68 天

    [LV.6]常住居民II

    发表于 2021-9-28 10:57:48 | 显示全部楼层
    本帖最后由 阿尔文 于 2021-9-28 11:04 编辑 , F6 H' \& f& M
    # _5 N8 D$ k* A$ ~
    你的例子说明写得很好,规则很清晰。这个问题不要直接去用正则,而是去用 python 中的正则,这样才好控制复杂性。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-7-9 16:19 , Processed in 0.022419 second(s), 21 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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