掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 913|回复: 10

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

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

    [LV.7]常住居民III

    发表于 2020-8-2 09:08:30 | 显示全部楼层 |阅读模式
    本帖最后由 wjl 于 2020-8-2 12:58 编辑 , c% T- h$ S! n) A

    ) O" h, I, t' |! N3 d7 \0 q+ J8 V如何用EmEditor正则表达式进行词组拆分?
    9 O) s2 ]! }: w4 A9 o8 F5 {Al/A-one ;    P0001
    ! ]2 H' d: r) ?6 @% _, H7 J更改为
    + _! P4 N  H! x2 J! c+ Z) s: a& LAl/A-one ;    P0001. K0 S3 _; X  u7 ~
    Al;    P0001
    " P; {7 R6 N0 cA-one ;    P0001
    * q; E- S  D2 n8 T6 `1 L___________________________________________________
    & d% `; [" _, Xquarrel (with sb) about/for/over ;    23132 Y3 v1 o* j; U# p3 ^, F
    更改为
    - @3 q* U+ H' j, ^2 l' mquarrel (with sb) about/for/over ;    23139 d. B6 X/ \' ~; d# z
    quarrel with sb about ;    2313
      y3 L! o1 F1 t5 ~quarrel with sb for ;    2313
    ) R5 U) ]* m" W0 W$ Kquarrel with sb over ;    23138 v( {8 {8 L. }! h! \0 L
    quarrel about ;    2313
    & I8 h" q$ A: w" equarrel for ;    2313
    ) W" U0 u9 c0 _6 xquarrel over ;    2313
    - S2 m1 X' }% T, d___________________________________________________7 V0 Y; \7 P  W& w
    dabble at/in/with1 b2 t; f' b# a7 w7 @
    更改为5 L# X3 ~7 q8 J5 ^+ U' m& c6 O
    dabble at/in/with* H& L- o' g3 R7 L8 A
    dabble at0 Y1 v5 D: w- g' e
    dabble in
    , ]: R2 r- I7 l) ]2 {dabble with7 q! w: Z$ A; s  x4 G
    ___________________________________________________
    & Y! q/ X, Y6 p2 C+ p0 Udamn and blast (sb/sth)9 Y  K3 ^& Q4 H& z
    更改为/ V2 T# Z" K+ K8 N
    damn and blast (sb/sth)- h% q- N$ H; y$ C' g2 o* d' n/ T
    damn and blast sb
    $ m# ^: i; I: A( F7 \: pdamn and blast sth
    ; x+ V7 A4 _' `. Z0 I( Kdamn and blast6 n( T" W: p9 U  j8 y9 ]( o
    ___________________________________________________5 T) U1 A1 Q+ u3 x" s2 A3 f
    dance on/upon a rope/nothing) v4 ^/ L- s4 m2 j, F$ R9 c
    更改为
    ( s% B( J* V4 v0 y5 Wdance on/upon a rope/nothing# q' }0 s' ?/ ?, z- P1 r/ S" n. v
    dance on a rope
    . L' F5 T+ w( Q. E3 s0 fdance upon a rope
    2 r/ r5 g0 u5 mdance on a nothing7 e' s- x' x2 R$ m- M! {5 t: g* g
    dance upon a nothing
      k! I4 u* h  q___________________________________________________' G" a! L& |) G" y( R
    dance on (the) air
    * P8 o# c  m; ^9 f( q% N0 E4 E更改为
    9 x, ?  X1 I: O( @) Udance on (the) air, p* `" z6 `" R
    dance on the air  S6 J/ o8 N4 x2 h9 \
    dance on air! E7 i* m8 T3 r' N1 f" ?8 l
    ___________________________________________________
    3 Y, p+ z2 L3 wdead/flat/stark calm
    4 S8 P9 e3 g9 p6 ?0 ~更改为
    , e6 y) \; M' _5 b9 ~* s- Tdead/flat/stark calm' |" P! a9 c# h+ g- e  p7 u4 Y3 E
    dead calm4 v- [5 S* V, \2 r* |( i
    flat calm0 z* j( _( [' S" D5 @
    stark calm
    7 X1 i( S9 l% O  I2 j9 f___________________________________________________
    + i2 T, _! N0 ]/ `do/go/make the/one's round* ^; |; M& ~0 U+ Q6 p1 L
    更改为
    9 U& L( }- z4 p/ Xdo/go/make the/one's round7 t1 {0 @, Y; r" p* [
    do the round  g7 _& T( ~; ^5 ~$ g/ J
    go the round
      s* x0 Q8 |6 \8 V3 Imake the round( B8 Y& H+ D2 e$ e3 g7 X" V
    do one's round
    ) S" _" h* Y, L7 P1 Q9 E' p$ a; Zgo one's round
    0 Q( H" @- O5 ]- m" j3 Kmake one's round
    $ l! a' D8 d0 m$ ~8 a% k$ ?* A/ M___________________________________________________# r) L4 i* x" B1 i
    do (sb/sth) grace
    0 f( t! p  W" f1 n  F更改为
    + Y- m6 g+ \& \# h& }) rdo (sb/sth) grace- C" ?2 Q- @, \9 J- Y  a3 N2 P
    do sb grace
    . Y; `8 ^  H" l; B% ~; }1 zdo sth grace
      P1 G; s% `  @5 N$ \do grace
    ; l" u' B3 K) {. H0 c& D1 D' [$ `___________________________________________________
    + i6 S/ B. r4 P* Q* y" a& ^2 w2 H# `" L6 q
    固定一种模式的话比较好处理,难度在于/和()的出现次数和位置不固定,可能连续出现,也可能分散出现,两者也可能混合在一起出现。示例文件链接: https://pan.baidu.com/s/18rt8d7KxYOsioihLEXxzfQ 提取码: qn3k。如果EmEditor正则表达式不可行的话,用python代码也行2 d. k) R) s6 s/ `6 y; _$ c9 k
    Al/A-one ;    P0001这种简单的可以用+ F/ E4 H1 P* K4 t* P
    \b(\w+)\b/\b([\w-]+)\b(\s{1,});\tP(\d{4})
    ; T) a2 q4 S9 L" Z8 X替换为:
      f2 d" [! B  j\1/\2\3;\tP\4\n\1\3;\tP\4\n\2\3;\tP\43 w$ z5 i. h8 q/ G/ Z
    3 ?" I) a6 Y) o* H# f
    % v" J6 V; e. Q( I4 ~( U7 P+ F
  • TA的每日心情
    擦汗
    2022-3-25 11:07
  • 签到天数: 66 天

    [LV.6]常住居民II

    发表于 2020-8-2 13:12:26 | 显示全部楼层
    本帖最后由 yunhailin123 于 2020-8-2 13:15 编辑 2 o" c# Y8 u5 n, p

    : y! q' n6 S+ b5 y5 y  T可以借鉴一下fearfare的朗文五,有很多是需要你肉眼观察上千条词条而写的,这个没有什么规律。
    - p8 Q" E  n6 G  M! Y- X所以提取词组版的只有ff的朗文五,其他人很少有那个精力去手动提取词组,毕竟那么多词条,还得肉眼加上手工去写规则你也可以去看看garypang的提取朗文五词组完美版,反正花的心思不少,没有捷径可言
    - E( M# W! A9 M5 w: e  q
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-2 13:28:15 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-2 13:30 编辑 ! |  g: u5 t) N& `" A; V
    yunhailin123 发表于 2020-8-2 13:12" f1 o2 b- E. H8 c. \  N9 C
    可以借鉴一下fearfare的朗文五,有很多是需要你肉眼观察上千条词条而写的,这个没有什么规律。+ ?  _4 y0 o3 A2 d
    所以提取词 ...
    . j( q; p' y, f+ U" E, {( ?
    肉眼观察需要考验操作者的观察力和动手能力,可能使用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 编辑 7 G& t3 C2 j7 S$ z5 p

    ' Z3 R  j0 v( D英语词典做得少,没遇到过楼主这样的处理需求。要我处理的话,我会把括号「()」和「/」的情况先后处理,最后全处理完后去重
    0 `& F( S- |7 Q9 `- V4 K. b. K& H, ~& J# y7 r
    个人感觉:「()」的情况还是不难处理的;「/」的情况不太好处理(因为可能存在这种情况『take some/a lot of doing』,会误拆成 take some lot of doing)! B7 J1 d- M2 Q1 @. u3 g  }0 ~

    8 l. b9 y2 P% N, W4 C' F2 K还有,你这个索引是文本识别得到的?在处理之前建议一定要先排查下字符错误,并且统一下排版,把 txt 理顺,否则后面的处理很容易出问题
    7 r" {) `5 z/ o5 X+ D: U
    / W! k9 P/ Z! Z' Z% R7 W0 \$ L( G( M) Y. f" W: T% ?& E0 [; E  U
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

     楼主| 发表于 2020-8-2 13:37:55 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-2 13:42 编辑 ; `) h# z9 V3 i1 i! }. M
    Mandolin 发表于 2020-8-2 13:29
    # |4 c5 N$ @! t英语词典做得少,没遇到过楼主这样的处理需要。要我处理的话,我会把括号「()」和「/」的情况先后处理) h# a$ [6 ~- {$ c& `2 n# r
    & Q  }4 h+ G8 W* B0 R7 n
    个 ...

    / n. C, ?7 f3 k4 X8 ^9 O1 u+ U8 w我现在练手的《当代英语习语大词典(英汉双解)》应该没有这种情况,大多数「/」两侧都是单词,只有一些全英文的不需要拆分的部分例外,所以刚开始设计正则表达式时可以按都是简单单词这种情况处理,最后通过选定范围替换或手动替换即可解决例外情况。示例文件是OCR识别文本,尚未校对,仅供设计正则表达式参考用。
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 13:45:02 | 显示全部楼层
    本帖最后由 Mandolin 于 2020-8-2 13:54 编辑
    ( k9 t% K2 x2 m- F) g4 n; s( ^, y. N3 J
    wjl 发表于 2020-8-2 13:37- O( w) R; _# U) ]" w# Z# [# P
    我现在练手的《当代英语习语大词典(英汉双解)》应该没有这种情况,大多数「/」两侧都是单词,只有一些 ...
    + b4 T& S, h+ }
    如果没有我说的那种情况,那用正则就可以实现。
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 13:46:26 | 显示全部楼层
    wjl 发表于 2020-8-2 13:37: a9 L. K+ X1 q$ U7 E' s2 q- g
    我现在练手的《当代英语习语大词典(英汉双解)》应该没有这种情况,大多数「/」两侧都是单词,只有一些全 ...
    3 i3 ~% Q" a4 r+ d5 ?$ ]9 ~+ w
    如果没有我说的那种情况,那用正则应该就能实现。(果然是在做那本词典,加油,希望作品完成后能分享,很期待)
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

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

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

    [LV.6]常住居民II

    发表于 2020-8-2 16:24:22 | 显示全部楼层
    wjl 发表于 2020-8-2 13:28+ N6 v! K( `+ g/ F
    肉眼观察需要考验操作者的观察力和动手能力,可能使用python代码简单些吧,我有想法,但是编程功底不佳, ...
    + j8 P5 J5 z% L- O8 N' C
    但是要碰见有的词条是这样的 go'es by sb ,这个词组是瞎掰的,只是举个例子,有这样的,你还得再加一个,不管拆分词组还是要找词组,最终目的都是要找到词组的一些规律,即通过观察大量的数据才能下手2 f2 i6 C4 x! _1 e
    也因为这个没有规律,耗时费精力,所以论坛专门弄词组的屈指可数,数据还比较老了。
  • TA的每日心情
    擦汗
    2022-3-25 11:07
  • 签到天数: 66 天

    [LV.6]常住居民II

    发表于 2020-8-2 16:26:53 | 显示全部楼层
    wjl 发表于 2020-8-2 13:57' f" y  {' ^% N& Q" m5 u
    现在还看不到希望,只有3个人参与校对。感觉python字符串拆分方法最简单,不用懂正则表达式,跟人们的思 ...

    + I( \) X# t2 r  q# M9 ?+ b- _建议楼主抽一两个小时恶补一下python基础,只需把基本单位认清,语句怎样写,其实python已经是把代码人性化了,要是c++,过于苛刻。现在随便搜个教程稍微一学,现学现用
  • TA的每日心情
    开心
    2021-12-8 06:17
  • 签到天数: 68 天

    [LV.6]常住居民II

    发表于 2021-9-28 10:57:48 | 显示全部楼层
    本帖最后由 阿尔文 于 2021-9-28 11:04 编辑   X% J! ~+ z# |5 `+ S

    4 Q3 |3 @; Z0 W! @! M# I) U4 C  k3 d你的例子说明写得很好,规则很清晰。这个问题不要直接去用正则,而是去用 python 中的正则,这样才好控制复杂性。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-18 10:25 , Processed in 0.052307 second(s), 8 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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