掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 107|回复: 9

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

[复制链接]
  • TA的每日心情
    无聊
    15 小时前
  • 签到天数: 57 天

    [LV.5]常住居民I

    发表于 2020-8-2 09:08:30 | 显示全部楼层 |阅读模式
    本帖最后由 wjl 于 2020-8-2 12:58 编辑 % r( w0 ]0 R  x0 w5 @* t

    ! F- H" B! N) u5 K如何用EmEditor正则表达式进行词组拆分?4 g' W# i, D/ s" D" E& C
    Al/A-one ;    P0001
    6 p$ W, Z8 G0 k7 C* V. V更改为
    3 ?( Y! @2 t0 O* m5 O6 oAl/A-one ;    P0001
    : ~7 z4 G- J0 h; B+ w0 e$ CAl;    P0001
    & H: w/ e2 |. yA-one ;    P0001) W# A: Y4 W: Y/ a
    ___________________________________________________5 d! J' N* b: N$ p
    quarrel (with sb) about/for/over ;    23136 ?! J3 s6 q. o! v; d( a
    更改为1 ?" C$ ~) F9 Q" C$ ~6 Y5 u
    quarrel (with sb) about/for/over ;    2313
    4 j5 i0 n3 V) \  l2 i2 tquarrel with sb about ;    2313$ H: I8 E; r  _! o
    quarrel with sb for ;    2313
    + L" N, Z5 ]; T( Squarrel with sb over ;    2313
    ; ~8 M3 v$ m& J- d0 Z; qquarrel about ;    2313
    - t# o) L0 W1 n4 [quarrel for ;    23131 ]& T% A% z5 D, b0 ]7 W
    quarrel over ;    2313" r) O" Y; K  `
    ___________________________________________________1 p4 v# r) V; K& Y8 }
    dabble at/in/with9 [0 P, {0 q- N$ S( j
    更改为0 X" J( w7 P( v* h" X
    dabble at/in/with
    / A( s/ S" y0 b" G7 pdabble at+ k1 T! ^9 j# e5 {5 ^
    dabble in! I+ H8 P. r* S: E* i
    dabble with8 f7 z3 ]( E! }8 K) N% ^  x( {* |
    ___________________________________________________, h( t) k# L* R8 w6 ^# I/ A* p
    damn and blast (sb/sth)
    & R0 d* X+ Q; G更改为9 b, Y* s0 O" ^7 @1 X( b4 C
    damn and blast (sb/sth)3 E/ \. I" H1 a- g' l1 M6 h9 `
    damn and blast sb
    4 ^, w3 d. J3 J! m) ydamn and blast sth/ P' M% w. s8 t7 y( {$ F# U9 {
    damn and blast( x9 m5 F9 r: y2 h& Y: M
    ___________________________________________________
    % p5 N8 o, f" c: @# Zdance on/upon a rope/nothing
    0 P% ?$ }9 }/ n) O  X, a) D& U1 D更改为
    4 U% F( j; |) \' x2 o0 Gdance on/upon a rope/nothing
    & D9 P, c4 }! d8 Z% F9 }dance on a rope
    8 {" E8 O9 V1 J2 P" a$ Z9 A1 ydance upon a rope5 ~9 o! x6 I* A' r, n( P
    dance on a nothing' Y: v* D6 I# \% T0 L$ Y
    dance upon a nothing- a0 C. Z, u! \. y8 ?- W7 X) @
    ___________________________________________________1 V' Y# C" b% {# D8 j2 w6 _
    dance on (the) air$ N# f( g$ E- ?7 }4 F* n
    更改为
    5 {: ]) K, n. @# _dance on (the) air+ w6 e8 _" v$ M
    dance on the air
    7 _. h  }) W5 V, |dance on air
    2 R# Y8 D7 }6 _! R$ y8 i5 ~___________________________________________________
    7 s6 F2 C) l: r0 P( ]dead/flat/stark calm1 ?* L7 {" R) q8 r
    更改为
    9 k  Q" b/ \2 O' Gdead/flat/stark calm) C7 W7 q/ Z% V) ^& b
    dead calm& T5 l/ L" t$ U$ h& ~7 L
    flat calm0 }( b: }% s# P
    stark calm
    0 G! f$ H7 \! a. C. w; t___________________________________________________0 z' t/ T* s( K1 b9 }
    do/go/make the/one's round
    1 B& W( U" R1 J' U- R  f更改为
    ' ]6 J9 W! ~" U& Z2 Tdo/go/make the/one's round- s6 }  D9 w8 ?& V$ a2 s$ \4 O
    do the round2 {& J+ {7 ]6 c7 G9 m
    go the round! A! x6 z! E" I, g8 e& Q
    make the round3 M3 @# }/ V1 ^# y) h
    do one's round5 {/ @! E0 t) P9 P1 |( s/ M/ j- f9 P6 Z
    go one's round! A# a$ k- N/ f: n5 F
    make one's round* h6 f" H1 b1 l4 _2 v& N
    ___________________________________________________
    0 t* F1 q! A3 C" d. O! I* E$ hdo (sb/sth) grace
    . M# E, [+ y, i8 T2 ]* G8 N) \更改为
    5 n# I7 ]1 N8 Xdo (sb/sth) grace0 n6 K! [0 Z: P7 I
    do sb grace- c6 ^" ^% ?, Z& C# e8 F
    do sth grace* A* H& E2 V4 d
    do grace  R" b; J! t( I% I( \
    ___________________________________________________& n; `* ^/ D  j
    4 E: y  f/ y: [* M  S; W
    固定一种模式的话比较好处理,难度在于/和()的出现次数和位置不固定,可能连续出现,也可能分散出现,两者也可能混合在一起出现。示例文件链接: https://pan.baidu.com/s/18rt8d7KxYOsioihLEXxzfQ 提取码: qn3k。如果EmEditor正则表达式不可行的话,用python代码也行4 V' b7 Z% ~  z' ?6 F, A& Q
    Al/A-one ;    P0001这种简单的可以用
    ( b. J2 y1 ^" @- u" q\b(\w+)\b/\b([\w-]+)\b(\s{1,});\tP(\d{4})
    $ J9 v, x; R7 d( Q替换为:
    9 A% x) @! R4 [9 @4 P) u\1/\2\3;\tP\4\n\1\3;\tP\4\n\2\3;\tP\4. l( |" s9 q$ y9 c
    % J/ s- [1 _% I
    * d3 N6 O1 f; ^  }  [
  • TA的每日心情
    擦汗
    2020-1-6 01:34
  • 签到天数: 63 天

    [LV.6]常住居民II

    发表于 2020-8-2 13:12:26 | 显示全部楼层
    本帖最后由 yunhailin123 于 2020-8-2 13:15 编辑 # B" B9 r8 Z3 A- K' s4 ?

    & o4 p: H/ E, t$ `" o3 ^" q可以借鉴一下fearfare的朗文五,有很多是需要你肉眼观察上千条词条而写的,这个没有什么规律。8 l$ ^- S& \. i" U
    所以提取词组版的只有ff的朗文五,其他人很少有那个精力去手动提取词组,毕竟那么多词条,还得肉眼加上手工去写规则你也可以去看看garypang的提取朗文五词组完美版,反正花的心思不少,没有捷径可言3 B* p% g+ b+ V- R
  • TA的每日心情
    无聊
    15 小时前
  • 签到天数: 57 天

    [LV.5]常住居民I

     楼主| 发表于 2020-8-2 13:28:15 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-2 13:30 编辑
    ; l: K% I* i! v. Y
    yunhailin123 发表于 2020-8-2 13:12
    : [2 ]$ z5 ~5 D& }6 o& c可以借鉴一下fearfare的朗文五,有很多是需要你肉眼观察上千条词条而写的,这个没有什么规律。
    # u$ \0 _6 [' \2 a6 c3 Y所以提取词 ...
    7 t. d# M) Y( [
    肉眼观察需要考验操作者的观察力和动手能力,可能使用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 编辑
    # F. i! x& _6 Z! W- Y* [7 M% J9 N2 q, q9 s( A' n
    英语词典做得少,没遇到过楼主这样的处理需求。要我处理的话,我会把括号「()」和「/」的情况先后处理,最后全处理完后去重) F* e+ I3 K! y0 }  p3 j9 Y

    7 C. X# e0 z' ?8 ^个人感觉:「()」的情况还是不难处理的;「/」的情况不太好处理(因为可能存在这种情况『take some/a lot of doing』,会误拆成 take some lot of doing)
    " q/ [! W0 R' F- [0 c! `8 q2 Q* B0 Z' ?/ _+ T
    还有,你这个索引是文本识别得到的?在处理之前建议一定要先排查下字符错误,并且统一下排版,把 txt 理顺,否则后面的处理很容易出问题
    4 g. J/ {  L3 o1 t: L9 r3 N3 k8 s7 b3 P- ]# v. J
    $ }6 c! ~4 c: Z
  • TA的每日心情
    无聊
    15 小时前
  • 签到天数: 57 天

    [LV.5]常住居民I

     楼主| 发表于 2020-8-2 13:37:55 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-2 13:42 编辑
    5 m5 C1 j2 X+ k  K* |
    Mandolin 发表于 2020-8-2 13:29
    / m# h/ ?, b& t6 z1 |0 i4 n英语词典做得少,没遇到过楼主这样的处理需要。要我处理的话,我会把括号「()」和「/」的情况先后处理
    0 D' i3 `0 ^/ y& e& H) Y0 ]
    ( f8 F* D0 W( ^个 ...
    ( i8 t3 T( W& P
    我现在练手的《当代英语习语大词典(英汉双解)》应该没有这种情况,大多数「/」两侧都是单词,只有一些全英文的不需要拆分的部分例外,所以刚开始设计正则表达式时可以按都是简单单词这种情况处理,最后通过选定范围替换或手动替换即可解决例外情况。示例文件是OCR识别文本,尚未校对,仅供设计正则表达式参考用。
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 13:45:02 | 显示全部楼层
    本帖最后由 Mandolin 于 2020-8-2 13:54 编辑
    . p" H+ _4 D+ Q5 C
    wjl 发表于 2020-8-2 13:37
    ( N. C+ |0 a% J0 D. R5 d我现在练手的《当代英语习语大词典(英汉双解)》应该没有这种情况,大多数「/」两侧都是单词,只有一些 ...
    ! V7 G7 g/ `; @' g2 c
    如果没有我说的那种情况,那用正则就可以实现。
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 13:46:26 | 显示全部楼层
    wjl 发表于 2020-8-2 13:37
    ' v$ F* Q8 q5 @3 W6 c: q" V3 {# _我现在练手的《当代英语习语大词典(英汉双解)》应该没有这种情况,大多数「/」两侧都是单词,只有一些全 ...
    7 q, O, O5 f# Z' S4 x
    如果没有我说的那种情况,那用正则应该就能实现。(果然是在做那本词典,加油,希望作品完成后能分享,很期待)
  • TA的每日心情
    无聊
    15 小时前
  • 签到天数: 57 天

    [LV.5]常住居民I

     楼主| 发表于 2020-8-2 13:57:53 | 显示全部楼层
    Mandolin 发表于 2020-8-2 13:46
    ' x/ _9 {# O, O; W' u" U1 w如果没有我说的那种情况,那用正则应该就能实现。(果然是在做那本词典,加油,希望作品完成后能分享,很 ...

    9 U8 K0 V. ^" n* N现在还看不到希望,只有3个人参与校对。感觉python字符串拆分方法最简单,不用懂正则表达式,跟人们的思考方法一致。用正则表达式的话,还得肉眼观察出所有模式,再设计相应的正则表达式,否则不知道如何区分和处理仅含()、仅含/、同时含有()和/,同时含有()和/并且()中也含有/,()和/出现一次或多次、连续出现、分散出现这些情况。只有一种固定模式还好设计,难在怎么一次查找替换所有情况
  • TA的每日心情
    擦汗
    2020-1-6 01:34
  • 签到天数: 63 天

    [LV.6]常住居民II

    发表于 2020-8-2 16:24:22 | 显示全部楼层
    wjl 发表于 2020-8-2 13:28
    # F# U" \% e/ s/ C& }5 L肉眼观察需要考验操作者的观察力和动手能力,可能使用python代码简单些吧,我有想法,但是编程功底不佳, ...

    , M% g" g" g* t0 d4 l但是要碰见有的词条是这样的 go'es by sb ,这个词组是瞎掰的,只是举个例子,有这样的,你还得再加一个,不管拆分词组还是要找词组,最终目的都是要找到词组的一些规律,即通过观察大量的数据才能下手( \$ I) I" R* M% [! n: o
    也因为这个没有规律,耗时费精力,所以论坛专门弄词组的屈指可数,数据还比较老了。
  • TA的每日心情
    擦汗
    2020-1-6 01:34
  • 签到天数: 63 天

    [LV.6]常住居民II

    发表于 2020-8-2 16:26:53 | 显示全部楼层
    wjl 发表于 2020-8-2 13:575 c1 S9 L( m+ W3 G5 g
    现在还看不到希望,只有3个人参与校对。感觉python字符串拆分方法最简单,不用懂正则表达式,跟人们的思 ...
    & F# d1 _0 U! J5 L# n" @
    建议楼主抽一两个小时恶补一下python基础,只需把基本单位认清,语句怎样写,其实python已经是把代码人性化了,要是c++,过于苛刻。现在随便搜个教程稍微一学,现学现用
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    顶部qrcode底部
    关注公众号送论坛充值码
    关注微信公众平台
    关注微信公众号 pdawiki,获取邀请码,看文抢积分,抽奖得浮云! Follow our Wechat official account "pdawiki", get invitation codes, and play the lottery to earn points (积分)!

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

    GMT+8, 2020-8-13 15:55 , Processed in 0.041876 second(s), 7 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

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