掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 2310|回复: 11

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

[复制链接]

该用户从未签到

发表于 2018-6-10 01:03:13 | 显示全部楼层 |阅读模式
本帖最后由 asicsfree 于 2018-6-10 21:48 编辑
" r) N2 {$ ], X8 c8 M9 C: {/ c3 ]% E- _9 |/ i1 P
新版的MDXBuilder已经没有「key case sensitive」的选项。其预设为何?官方比较建议区分或是不区分大小写呢?
% c/ y" p: p3 i: M) _  }% T9 K% E+ `  @/ Q# ~+ Z2 i% L
MDXBuilder选择不区分大小写时是否意谓,(词典制作时)合并词条也应把大小写(例如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 编辑 3 G9 c, }8 D; L* P
eeshu 发表于 2018-6-10 08:15" l! I- ~  `) V& E- i
不区分大小写查询起来更方便

- G* o+ G6 I, Z1 \" a; v, K1 ~8 ^0 i' x( X, ~. U5 J
另外,strip key的算法详细为何?(只是去头尾?还是全部的符号都被去掉?详细去的符号是?)
! q$ W5 Y  R8 t' e7 J3 B9 h/ @# u" O
若加上strip key,同一页面应该要有 a1, a2, a3, a4, a., a-, A1, A2, A3, A4, A. A-。
% n+ v8 d; |3 ?- V. b6 p, J( E" B
" k% m, \, B( t+ f5 e, M2 l: W我觉得很多词典在合并词条时并没有考虑到strip key,所以a. a- A. A- 并未被合并在一起。其实理论上也应被并入,我的理解应该无误?

该用户从未签到

发表于 2018-6-10 20:23:53 | 显示全部楼层
asicsfree 发表于 2018-6-10 20:10- x* ~1 s* `; }5 ]- J9 I7 s
另外,strip key的算法详细为何?(只是去头尾?还是全部的符号都被去掉?详细去的符号是?)
. R3 x" J8 Q3 s. G5 r* X& P  [- R0 g6 B2 C0 {5 @2 U& C
若加上str ...

* v7 b) r2 W% N$ ]9 p, @6 X, `5 k5 @- E$ V, w( t
正好前两日问了R大strip key的功用,R大说是“比较单词时忽略非字母和数字外的那些符号”。所以你的理解可行。

评分

1

查看全部评分

该用户从未签到

 楼主| 发表于 2018-6-10 20:46:17 | 显示全部楼层
本帖最后由 asicsfree 于 2018-6-10 21:46 编辑
: R: Z3 d3 J/ I) E' B# C# Y( y
eeshu 发表于 2018-6-10 20:23/ N- P% x* m- Z, q4 M- V. o
正好前两日问了R大strip key的功用,R大说是“比较单词时忽略非字母和数字外的那些符号”。所以你的理解 ...

* f4 r& p; Q+ Z1 K1 _9 w/ o+ }: @; }4 s3 z7 A
“比较单词时忽略非字母和数字外的那些符号”有点模糊。是否只限[a-Z0-9],又或者'α', 'β', 以及一些欧洲字符,这些是字母还或是符号吗?
7 y6 _" [7 _* i$ s4 H
- B( V3 ?, \& M試在MDict查
" ~2 R  v( e& ]( Z+ XAÜ        →        a3 b9 n' X: h) p' s' G
Ü        →        Headword 'Ü' not found& A- C8 p+ }& A0 }+ P% O5 X4 f. G) |
ÜA        →        Headword 'ÜA' not found
) C; M% g% ?: V; L! c, p9 `ÜÜ        →        Headword 'ÜÜ' not found
; {4 C7 G/ T/ M6 G$ o" n5 D& a- m3 sÜ-        →        Headword 'Ü-' not found

评分

1

查看全部评分

该用户从未签到

 楼主| 发表于 2018-6-10 20:54:53 | 显示全部楼层
本帖最后由 asicsfree 于 2018-6-10 21:58 编辑
: E$ x# Z# b& P3 J, q0 r
eeshu 发表于 2018-6-10 20:23& ]% Q# ~* y: \2 i$ _: d" u) P
正好前两日问了R大strip key的功用,R大说是“比较单词时忽略非字母和数字外的那些符号”。所以你的理解 ...
- u3 ~+ k$ B$ Z+ ~) m

* w7 m- Y% |7 j我来解释下我逻辑打结的原因:
$ v+ E" d) W" L( W; Q3 g$ C# g+ h5 {! n& |) A! ]2 Q" ?# ]0 G% R6 K3 |6 X6 P
MDXBuilder一般会选strip key和不区分大小写。那么理论上,字典的制作就也应该循这个逻辑,那么 a a. a- A A. A- 的 key 值通通都得改成 a,对完整字典的「破坏」性是大的。但不改的话,这合并只有半套,在MDict里,你永远打不出 A-,打了 a 后,还得用滑鼠去点 A-。
; w; B- J7 C: s
( W# ^6 i  z4 G6 W. h加入Goldendict 头就更大了。Goldendict根本不尊重strip key,若是真的全部合并为 a,那么在 Goldendict 里打 A- 是找不到词条的。2 O$ ~- W& ?1 h  Q3 G; y

5 E8 W1 G7 V% A& h: x: d& v假设只考虑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根本没法输入查询。: `( t/ h8 U' }' t0 S& k
2. 新版词典格式其实做了较大改进(比较激进),用的是Unicode里的比较算法,其实是可以通过Sorting option里自定义进行排序控制。控制项其实非常强悍,但也比较复杂。例如可以要求汉字按拼音顺序排序(旧版是按内码排序,相同发音不会排在附近),‘β’ 会映射成ss (即输入ss可以查到β),α映射成a。可以控制是否大小写敏感等等。等有空我会写个详细的介绍。
9 P/ o4 }2 U2 u$ i, ~
/ Q+ ^' u3 D# {0 n  y3 E1 V0 H不知道说打不出A-是什么意思?A-是可以输入的啊。

评分

1

查看全部评分

该用户从未签到

 楼主| 发表于 2018-6-11 10:37:58 | 显示全部楼层
本帖最后由 asicsfree 于 2018-6-11 11:16 编辑 4 z! B3 a. T% U, f8 Y
rayman 发表于 2018-6-11 10:013 ~, a( b2 t0 M0 y8 ~# y/ V, Z3 B
1. Strip Key的意思是对于内码在0-127之间的字符,在进行关键字比较时只保留字母和数字。 即 A1,A-1,A 1  ...

7 Q0 Q0 G' F1 e4 \' {) P# ~5 z( ]! T) c/ m: a
也就是 [0-127] - [48-57](0-9) - [65-90](a-z) - [97-122](A-Z) 这些东西都会被 stripKey(),这样理解对吗?# Y* f) T. b; t0 K% @' [* k
( O2 Y) c% w6 A( |2 v; k
另一个问题是,strip key 为何要在mdx制作时选择,而不是单纯MDict的选项?GoldenDict读到相同的mdx,还是会区分 a a. a-。- y! E& ?* I: e6 q8 h4 X
! c" A# H+ O" Z$ ]+ a
说 a- 打不出来,并非查不到。如下图,查了aa. 和 a- 都先出字 aa 和 a。理想上,使用者查 a,MDict可以stripKey()给他们 a a. a-;但是若使用者已经固执地查了 a- , MDict 应该先出字 a-,至于要不要给 a a. 就随意了。MDict PC 2.0 RC2
7 f8 I$ ~* O; z0 [
' l1 ^- |  W: u- c% I# H

本帖子中包含更多资源

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

x

评分

1

查看全部评分

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

    [LV.3]偶尔看看II

    发表于 2019-3-1 00:32:51 | 显示全部楼层
    asicsfree 发表于 2018-6-10 20:10
    , p9 p# i8 _6 U, P8 J5 H) v另外,strip key的算法详细为何?(只是去头尾?还是全部的符号都被去掉?详细去的符号是?), J/ ?- f" M0 v
    + d7 @/ A9 }3 b  S
    若加上str ...
    3 y- `* @$ t3 v! Z* R! R$ l
    strip key影响的是排序吧,没有页面处理的
  • TA的每日心情
    慵懒
    2020-2-9 17:53
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    发表于 2019-3-1 00:35:07 | 显示全部楼层
    rayman 发表于 2018-6-11 10:012 b: ^# J, ]' r( W+ }- D- [# E, J
    1. Strip Key的意思是对于内码在0-127之间的字符,在进行关键字比较时只保留字母和数字。 即 A1,A-1,A 1  ...
    2 o' g1 w$ {- F3 C8 i
    R大,不区分大小写好像对英文字以外的,比如说俄文字母,拉丁文字母无效?
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-5-2 00:36 , Processed in 0.023655 second(s), 24 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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