掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 2299|回复: 11

[求助] 词条合并应不区分大小写与Strip Key?

[复制链接]

该用户从未签到

发表于 2018-6-10 01:03:13 | 显示全部楼层 |阅读模式
本帖最后由 asicsfree 于 2018-6-10 21:48 编辑 5 z) R- k) D1 d' v' E

3 L! ]$ O/ {5 Z* W: B( c6 O& W新版的MDXBuilder已经没有「key case sensitive」的选项。其预设为何?官方比较建议区分或是不区分大小写呢?6 {9 F) U; v- t1 i  [/ J/ v

+ ~! R: S% U# Z) _( MMDXBuilder选择不区分大小写时是否意谓,(词典制作时)合并词条也应把大小写(例如monk, Monk)都合并在同一页面比较合理?各位的习惯建议为何?

该用户从未签到

发表于 2018-6-12 09:25:39 | 显示全部楼层
因为Stripkey后,输入的内容也会去掉符号之类的再比较,所以A- 也会先匹配到A。

评分

1

查看全部评分

该用户从未签到

发表于 2018-6-10 08:15:54 | 显示全部楼层
不区分大小写查询起来更方便

该用户从未签到

 楼主| 发表于 2018-6-10 20:10:24 | 显示全部楼层
本帖最后由 asicsfree 于 2018-6-10 20:14 编辑
5 s( h2 W, @- y' y& h
eeshu 发表于 2018-6-10 08:154 b0 V  M. N/ b6 l7 u" h( `
不区分大小写查询起来更方便
0 D' u/ J: }# ~/ U' H
/ h* e/ ]2 ^( n6 T! @6 O, z$ q
另外,strip key的算法详细为何?(只是去头尾?还是全部的符号都被去掉?详细去的符号是?)2 Y; q" e2 m/ I" L' }

4 O% j1 S$ d# o, j6 h若加上strip key,同一页面应该要有 a1, a2, a3, a4, a., a-, A1, A2, A3, A4, A. A-。# a! L2 D/ l6 }6 p- \6 N) l

- r  \  i) i% F; b4 b; D我觉得很多词典在合并词条时并没有考虑到strip key,所以a. a- A. A- 并未被合并在一起。其实理论上也应被并入,我的理解应该无误?

该用户从未签到

发表于 2018-6-10 20:23:53 | 显示全部楼层
asicsfree 发表于 2018-6-10 20:10: K% ?; F( T6 s0 N+ r- o
另外,strip key的算法详细为何?(只是去头尾?还是全部的符号都被去掉?详细去的符号是?)% f3 ~  N+ U, @7 I5 N9 _
. g4 `. L! x5 A' c% E( H
若加上str ...
; c7 |) P2 A7 `9 u4 l! k$ G
+ ^8 M: `; c6 Y- Y8 `4 Y
正好前两日问了R大strip key的功用,R大说是“比较单词时忽略非字母和数字外的那些符号”。所以你的理解可行。

评分

1

查看全部评分

该用户从未签到

 楼主| 发表于 2018-6-10 20:46:17 | 显示全部楼层
本帖最后由 asicsfree 于 2018-6-10 21:46 编辑
0 ]8 z; y0 s" d
eeshu 发表于 2018-6-10 20:239 n! ?7 Q0 n$ R$ {+ V
正好前两日问了R大strip key的功用,R大说是“比较单词时忽略非字母和数字外的那些符号”。所以你的理解 ...
( x2 J( m2 T0 Y7 `& ~1 I3 `# R# j* ?
  j; q9 [1 X$ }) A% {* b2 _* U- U
“比较单词时忽略非字母和数字外的那些符号”有点模糊。是否只限[a-Z0-9],又或者'α', 'β', 以及一些欧洲字符,这些是字母还或是符号吗?
5 C, e( W; f+ F  B% _
- n' p( ^) s; t( V* C試在MDict查
( r" b6 N1 ]  M) m8 s& z# w; o: aAÜ        →        a
8 g2 j( W  f% B( i7 SÜ        →        Headword 'Ü' not found& z7 ]: F3 H2 I
ÜA        →        Headword 'ÜA' not found- `8 F! J" g( p- ~9 A: P! B0 e9 V
ÜÜ        →        Headword 'ÜÜ' not found . h5 G% b/ A6 U  J0 n; b! e8 b
Ü-        →        Headword 'Ü-' not found

评分

1

查看全部评分

该用户从未签到

 楼主| 发表于 2018-6-10 20:54:53 | 显示全部楼层
本帖最后由 asicsfree 于 2018-6-10 21:58 编辑 " _# ^) M& K# c+ E4 {! M  L* W. Y
eeshu 发表于 2018-6-10 20:23+ S8 w& s7 B% v, I9 c" I0 V1 B. o
正好前两日问了R大strip key的功用,R大说是“比较单词时忽略非字母和数字外的那些符号”。所以你的理解 ...
$ o, Z  `- k% R! n" n! D! j

5 S! x6 |* ^$ F5 y/ ]% d6 P6 |7 Y我来解释下我逻辑打结的原因:4 _5 I0 m0 R. u6 [1 B0 @* I" q* {3 q
+ s9 X* A9 X& t8 `, a0 p% v
MDXBuilder一般会选strip key和不区分大小写。那么理论上,字典的制作就也应该循这个逻辑,那么 a a. a- A A. A- 的 key 值通通都得改成 a,对完整字典的「破坏」性是大的。但不改的话,这合并只有半套,在MDict里,你永远打不出 A-,打了 a 后,还得用滑鼠去点 A-。4 s7 ~' X  P6 K1 D$ e" f

+ O; ~1 q- b( c5 u) c% g9 g& u' V. R加入Goldendict 头就更大了。Goldendict根本不尊重strip key,若是真的全部合并为 a,那么在 Goldendict 里打 A- 是找不到词条的。
1 N6 \+ x& z! \4 o0 i2 w
2 B% q: D6 J( J5 l. ^: m& M7 n假设只考虑MDict,做词典时必须对所有的key做strip key后再进行合并,那么strip key的算法为何?(见上楼例)

评分

1

查看全部评分

该用户从未签到

发表于 2018-6-11 08:33:27 | 显示全部楼层
这我说不上来。 我去搬救兵。

该用户从未签到

发表于 2018-6-11 10:01:04 | 显示全部楼层
1. Strip Key的意思是对于内码在0-127之间的字符,在进行关键字比较时只保留字母和数字。 即 A1,A-1,A 1 都视为A1来进行排序和比较。这个影响的只是在匹配过程的运算,不影响显示,无需对词典源码进行调整。好处时是有些词典的词头不规范,含有各种符号。如果不想输入符号就能查到的话,制作时就要选上StripKey。例如21世纪和ETDict 的词头就是 “aaa.bbb.cc" 这样风格的,不去掉stripkey根本没法输入查询。
/ O5 q5 |5 g& b" S2. 新版词典格式其实做了较大改进(比较激进),用的是Unicode里的比较算法,其实是可以通过Sorting option里自定义进行排序控制。控制项其实非常强悍,但也比较复杂。例如可以要求汉字按拼音顺序排序(旧版是按内码排序,相同发音不会排在附近),‘β’ 会映射成ss (即输入ss可以查到β),α映射成a。可以控制是否大小写敏感等等。等有空我会写个详细的介绍。
& b3 X2 J0 s5 V, f
/ t  h* m2 `9 G不知道说打不出A-是什么意思?A-是可以输入的啊。

评分

1

查看全部评分

该用户从未签到

 楼主| 发表于 2018-6-11 10:37:58 | 显示全部楼层
本帖最后由 asicsfree 于 2018-6-11 11:16 编辑 " O4 i. `4 h/ r  [
rayman 发表于 2018-6-11 10:01$ A  i6 J" M; k( P6 x
1. Strip Key的意思是对于内码在0-127之间的字符,在进行关键字比较时只保留字母和数字。 即 A1,A-1,A 1  ...
9 ]& j9 V( \0 p  t6 f* ]
- P! L8 }, H1 @6 b
也就是 [0-127] - [48-57](0-9) - [65-90](a-z) - [97-122](A-Z) 这些东西都会被 stripKey(),这样理解对吗?
/ Z$ \% `0 l# L1 m4 C# r6 V- D5 l* ?: W2 C! w/ p4 x( s
另一个问题是,strip key 为何要在mdx制作时选择,而不是单纯MDict的选项?GoldenDict读到相同的mdx,还是会区分 a a. a-。
# K- W- O. u3 w4 @3 e& c& f: ^
/ h/ S8 ]% }9 ^! t$ I  d2 `说 a- 打不出来,并非查不到。如下图,查了aa. 和 a- 都先出字 aa 和 a。理想上,使用者查 a,MDict可以stripKey()给他们 a a. a-;但是若使用者已经固执地查了 a- , MDict 应该先出字 a-,至于要不要给 a a. 就随意了。MDict PC 2.0 RC2
& @% z1 n  \' X( ^5 I: z, ^  E- a- g- h6 G

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

1

查看全部评分

  • TA的每日心情
    慵懒
    2020-2-9 17:53
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    发表于 2019-3-1 00:32:51 | 显示全部楼层
    asicsfree 发表于 2018-6-10 20:10) D0 i  S2 D9 @: s
    另外,strip key的算法详细为何?(只是去头尾?还是全部的符号都被去掉?详细去的符号是?)( a/ j- w0 |) Z
    + f7 r" b% W& t! U
    若加上str ...

      ~+ I  T' d1 P' xstrip key影响的是排序吧,没有页面处理的
  • TA的每日心情
    慵懒
    2020-2-9 17:53
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    发表于 2019-3-1 00:35:07 | 显示全部楼层
    rayman 发表于 2018-6-11 10:01
    - j+ l8 X+ p1 u# k. T1. Strip Key的意思是对于内码在0-127之间的字符,在进行关键字比较时只保留字母和数字。 即 A1,A-1,A 1  ...

    & y* w5 _+ I& {: ]; K: lR大,不区分大小写好像对英文字以外的,比如说俄文字母,拉丁文字母无效?
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-4-29 14:16 , Processed in 0.022728 second(s), 24 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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