掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 3598|回复: 11

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

[复制链接]

该用户从未签到

发表于 2018-6-10 01:03:13 | 显示全部楼层 |阅读模式
本帖最后由 asicsfree 于 2018-6-10 21:48 编辑
6 c4 k4 D5 E  _$ v/ E  F  ~* z
9 \+ z2 F0 |6 ^8 A* B7 S/ N" y新版的MDXBuilder已经没有「key case sensitive」的选项。其预设为何?官方比较建议区分或是不区分大小写呢?5 G- u' \% o: G8 T$ b. i

3 z/ O# ^& R0 Y1 k. pMDXBuilder选择不区分大小写时是否意谓,(词典制作时)合并词条也应把大小写(例如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 编辑 ) \; g  E& z/ S  E4 y+ O0 [
eeshu 发表于 2018-6-10 08:15
$ Y! S- H( Z4 M& [, \' v不区分大小写查询起来更方便

, S/ A- z1 U' S. C$ }$ D7 \/ y1 B) s2 f4 C/ J
另外,strip key的算法详细为何?(只是去头尾?还是全部的符号都被去掉?详细去的符号是?)
& F! o5 `" i& [  c* t# q6 U5 e5 B/ F! w! C* F7 R
若加上strip key,同一页面应该要有 a1, a2, a3, a4, a., a-, A1, A2, A3, A4, A. A-。$ J. L4 z! a. F7 y  Y7 z7 j

" m6 V1 d" A# p1 M' R0 N" b8 J" i我觉得很多词典在合并词条时并没有考虑到strip key,所以a. a- A. A- 并未被合并在一起。其实理论上也应被并入,我的理解应该无误?

该用户从未签到

发表于 2018-6-10 20:23:53 | 显示全部楼层
asicsfree 发表于 2018-6-10 20:101 j' f$ V% K% q* l6 b' l& Z- K
另外,strip key的算法详细为何?(只是去头尾?还是全部的符号都被去掉?详细去的符号是?)9 l. i; ?. }! q. ~
; Q8 n' @3 S' ?
若加上str ...

3 L) A5 _5 L2 i
& M/ w/ t2 v2 s正好前两日问了R大strip key的功用,R大说是“比较单词时忽略非字母和数字外的那些符号”。所以你的理解可行。

评分

1

查看全部评分

该用户从未签到

 楼主| 发表于 2018-6-10 20:46:17 | 显示全部楼层
本帖最后由 asicsfree 于 2018-6-10 21:46 编辑
& y0 y/ L. R6 W
eeshu 发表于 2018-6-10 20:23
$ F1 A4 o1 [" [; Q正好前两日问了R大strip key的功用,R大说是“比较单词时忽略非字母和数字外的那些符号”。所以你的理解 ...
: y$ d: h5 h  h, S" M
4 G  f# i4 E; i2 c
“比较单词时忽略非字母和数字外的那些符号”有点模糊。是否只限[a-Z0-9],又或者'α', 'β', 以及一些欧洲字符,这些是字母还或是符号吗?
. J% o8 u# H# a& k) |7 u
; }, w$ L3 {9 x' d6 w' f: e試在MDict查
. ?8 O  G0 u/ N9 Y! J8 S0 [1 cAÜ        →        a
5 L6 Q8 v5 f% ?Ü        →        Headword 'Ü' not found* ?& N! C" V+ s& P
ÜA        →        Headword 'ÜA' not found2 N! B, ?- H7 t9 ^3 G$ j
ÜÜ        →        Headword 'ÜÜ' not found
) H/ J' n1 A7 e& B- R9 ^+ FÜ-        →        Headword 'Ü-' not found

评分

1

查看全部评分

该用户从未签到

 楼主| 发表于 2018-6-10 20:54:53 | 显示全部楼层
本帖最后由 asicsfree 于 2018-6-10 21:58 编辑 5 t$ k% |+ T. i
eeshu 发表于 2018-6-10 20:23% q8 _4 t, M7 S# J; k" z9 h
正好前两日问了R大strip key的功用,R大说是“比较单词时忽略非字母和数字外的那些符号”。所以你的理解 ...
" c. \/ B- s+ v; l. N
. J3 F# z0 L# i0 `2 Y! C
我来解释下我逻辑打结的原因:5 W/ f' y. X7 A9 Z" f

9 X% K) N! X# y+ C4 dMDXBuilder一般会选strip key和不区分大小写。那么理论上,字典的制作就也应该循这个逻辑,那么 a a. a- A A. A- 的 key 值通通都得改成 a,对完整字典的「破坏」性是大的。但不改的话,这合并只有半套,在MDict里,你永远打不出 A-,打了 a 后,还得用滑鼠去点 A-。
3 k7 o0 L$ c; o2 R. a
* l) T0 j8 w  T0 x5 M0 a/ a加入Goldendict 头就更大了。Goldendict根本不尊重strip key,若是真的全部合并为 a,那么在 Goldendict 里打 A- 是找不到词条的。6 x7 Z6 Q% T; C9 ~  ]0 Z# ~
  J+ }$ Q" C( G: 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根本没法输入查询。
8 ^9 }% a7 r9 _) z, y7 ~2. 新版词典格式其实做了较大改进(比较激进),用的是Unicode里的比较算法,其实是可以通过Sorting option里自定义进行排序控制。控制项其实非常强悍,但也比较复杂。例如可以要求汉字按拼音顺序排序(旧版是按内码排序,相同发音不会排在附近),‘β’ 会映射成ss (即输入ss可以查到β),α映射成a。可以控制是否大小写敏感等等。等有空我会写个详细的介绍。  ^; A" j+ Z" z* F+ y0 _- T9 c) H
7 F. }8 G! m9 l) J9 e9 |" a
不知道说打不出A-是什么意思?A-是可以输入的啊。

评分

1

查看全部评分

该用户从未签到

 楼主| 发表于 2018-6-11 10:37:58 | 显示全部楼层
本帖最后由 asicsfree 于 2018-6-11 11:16 编辑
' L; ^- T! \, J; w& t
rayman 发表于 2018-6-11 10:01. t2 z5 V4 _' u& T
1. Strip Key的意思是对于内码在0-127之间的字符,在进行关键字比较时只保留字母和数字。 即 A1,A-1,A 1  ...
$ n6 i2 V  B! c: Y2 k4 ]- `& g

- t) }0 a; P2 N1 X4 @也就是 [0-127] - [48-57](0-9) - [65-90](a-z) - [97-122](A-Z) 这些东西都会被 stripKey(),这样理解对吗?2 K8 ?, y. z8 j% p' X' d
4 \/ w* D; e. {
另一个问题是,strip key 为何要在mdx制作时选择,而不是单纯MDict的选项?GoldenDict读到相同的mdx,还是会区分 a a. a-。5 z# \7 a& R) L6 @: w
6 I# g( I" {& I& `
说 a- 打不出来,并非查不到。如下图,查了aa. 和 a- 都先出字 aa 和 a。理想上,使用者查 a,MDict可以stripKey()给他们 a a. a-;但是若使用者已经固执地查了 a- , MDict 应该先出字 a-,至于要不要给 a a. 就随意了。MDict PC 2.0 RC2
( e$ N7 j) r/ p, N; p! L2 L8 ?! D: 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
    ( T, \) f2 `, d  C/ t另外,strip key的算法详细为何?(只是去头尾?还是全部的符号都被去掉?详细去的符号是?). \5 h% r, G; T+ J

    4 f/ l8 ?: x6 I. o$ ]4 H若加上str ...

    / j; W: M9 X% T& Jstrip key影响的是排序吧,没有页面处理的
  • TA的每日心情
    慵懒
    2020-2-9 17:53
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    发表于 2019-3-1 00:35:07 | 显示全部楼层
    rayman 发表于 2018-6-11 10:01& p. I+ D4 r0 B6 G; O( M5 Q
    1. Strip Key的意思是对于内码在0-127之间的字符,在进行关键字比较时只保留字母和数字。 即 A1,A-1,A 1  ...

    * Y. V; D' \$ v* z. O0 i& O1 MR大,不区分大小写好像对英文字以外的,比如说俄文字母,拉丁文字母无效?
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2026-10-15 21:57 , Processed in 0.024768 second(s), 24 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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