掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 3080|回复: 11

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

[复制链接]

该用户从未签到

发表于 2018-6-10 01:03:13 | 显示全部楼层 |阅读模式
本帖最后由 asicsfree 于 2018-6-10 21:48 编辑 / H6 v5 f8 d. g1 g" L& M

. n5 F- r8 M0 }新版的MDXBuilder已经没有「key case sensitive」的选项。其预设为何?官方比较建议区分或是不区分大小写呢?
( H# I! j! k/ F4 O
; W+ x1 n$ K2 f' VMDXBuilder选择不区分大小写时是否意谓,(词典制作时)合并词条也应把大小写(例如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 编辑
1 C5 ?5 [- r- ^/ ^& g
eeshu 发表于 2018-6-10 08:15
* k: \* w/ i9 q5 K3 D不区分大小写查询起来更方便
0 t  G. n8 @) j( E% b3 l
" o  z0 M8 N: w8 }  e8 [# |0 x
另外,strip key的算法详细为何?(只是去头尾?还是全部的符号都被去掉?详细去的符号是?)
7 G% C4 j  r) D. X$ T7 ]) ^3 Z4 Z$ T+ G- g9 B2 B0 ?; i, Y8 E
若加上strip key,同一页面应该要有 a1, a2, a3, a4, a., a-, A1, A2, A3, A4, A. A-。7 J) u* I; P) q
  o6 ~5 Q+ O7 i, L3 R, X! x
我觉得很多词典在合并词条时并没有考虑到strip key,所以a. a- A. A- 并未被合并在一起。其实理论上也应被并入,我的理解应该无误?

该用户从未签到

发表于 2018-6-10 20:23:53 | 显示全部楼层
asicsfree 发表于 2018-6-10 20:10
) a4 N2 n) p/ p. j8 N! |0 J' L另外,strip key的算法详细为何?(只是去头尾?还是全部的符号都被去掉?详细去的符号是?)+ d2 z/ r) H3 f5 M
- ?$ r2 i6 f( c6 k
若加上str ...
7 Y0 }' W8 B" m, y& g
9 T& ?: S& X0 h4 \- p8 p" U
正好前两日问了R大strip key的功用,R大说是“比较单词时忽略非字母和数字外的那些符号”。所以你的理解可行。

评分

1

查看全部评分

该用户从未签到

 楼主| 发表于 2018-6-10 20:46:17 | 显示全部楼层
本帖最后由 asicsfree 于 2018-6-10 21:46 编辑 ' [$ p# ]7 |, d2 {7 g
eeshu 发表于 2018-6-10 20:23/ z( i8 j/ Q6 k' {$ i
正好前两日问了R大strip key的功用,R大说是“比较单词时忽略非字母和数字外的那些符号”。所以你的理解 ...
, O! n" V$ d- ]. S8 E8 U  {
1 [  z& i# ?+ T# y* m( H3 k
“比较单词时忽略非字母和数字外的那些符号”有点模糊。是否只限[a-Z0-9],又或者'α', 'β', 以及一些欧洲字符,这些是字母还或是符号吗?
7 m2 E3 z  _- `( }/ A' o/ I5 M$ O/ Z' r9 p: y
試在MDict查
" z. Z4 u1 j! eAÜ        →        a$ p8 n8 F; X2 n: a
Ü        →        Headword 'Ü' not found
8 r* e# u) r7 J6 aÜA        →        Headword 'ÜA' not found9 p+ Y' F- i) _) G
ÜÜ        →        Headword 'ÜÜ' not found
& p1 G# P7 U! F3 [Ü-        →        Headword 'Ü-' not found

评分

1

查看全部评分

该用户从未签到

 楼主| 发表于 2018-6-10 20:54:53 | 显示全部楼层
本帖最后由 asicsfree 于 2018-6-10 21:58 编辑 ; d7 c5 I1 `; ], {: d9 O2 W
eeshu 发表于 2018-6-10 20:23/ N: r5 o) L( r* L( k
正好前两日问了R大strip key的功用,R大说是“比较单词时忽略非字母和数字外的那些符号”。所以你的理解 ...

% J% d/ W0 R8 j( T
& e0 Y5 `! k0 U3 K, O# ^" f9 ~! _7 y: X我来解释下我逻辑打结的原因:! T, Q% Y- h7 z+ w+ l/ {4 Q$ C
* O  M8 X6 n' P3 b
MDXBuilder一般会选strip key和不区分大小写。那么理论上,字典的制作就也应该循这个逻辑,那么 a a. a- A A. A- 的 key 值通通都得改成 a,对完整字典的「破坏」性是大的。但不改的话,这合并只有半套,在MDict里,你永远打不出 A-,打了 a 后,还得用滑鼠去点 A-。
, G  ~4 L) T4 P+ G5 c4 r0 y" r5 d
加入Goldendict 头就更大了。Goldendict根本不尊重strip key,若是真的全部合并为 a,那么在 Goldendict 里打 A- 是找不到词条的。
# O) r/ j# e. J- h% D7 f+ _$ p9 M$ v/ A( O4 p# `
假设只考虑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根本没法输入查询。
; q' A+ v9 L' Z! {6 ?1 L9 V4 H3 x2 C5 R2. 新版词典格式其实做了较大改进(比较激进),用的是Unicode里的比较算法,其实是可以通过Sorting option里自定义进行排序控制。控制项其实非常强悍,但也比较复杂。例如可以要求汉字按拼音顺序排序(旧版是按内码排序,相同发音不会排在附近),‘β’ 会映射成ss (即输入ss可以查到β),α映射成a。可以控制是否大小写敏感等等。等有空我会写个详细的介绍。
+ ~  z. Q) E8 @2 p& s  R
+ E/ g8 ]" ?' J  i不知道说打不出A-是什么意思?A-是可以输入的啊。

评分

1

查看全部评分

该用户从未签到

 楼主| 发表于 2018-6-11 10:37:58 | 显示全部楼层
本帖最后由 asicsfree 于 2018-6-11 11:16 编辑 * M3 |' d: C  y. b9 `
rayman 发表于 2018-6-11 10:01* V6 O& P7 ]1 c3 s
1. Strip Key的意思是对于内码在0-127之间的字符,在进行关键字比较时只保留字母和数字。 即 A1,A-1,A 1  ...

/ T0 |, m$ s/ I' `& r
9 G6 p8 s# L" |' K+ C也就是 [0-127] - [48-57](0-9) - [65-90](a-z) - [97-122](A-Z) 这些东西都会被 stripKey(),这样理解对吗?
( u2 o7 Q- }8 w- k% s$ h$ o/ s# U* C. E; x  G8 J
另一个问题是,strip key 为何要在mdx制作时选择,而不是单纯MDict的选项?GoldenDict读到相同的mdx,还是会区分 a a. a-。
2 l% N" V! J1 }& e
7 v9 [. `) y9 _说 a- 打不出来,并非查不到。如下图,查了aa. 和 a- 都先出字 aa 和 a。理想上,使用者查 a,MDict可以stripKey()给他们 a a. a-;但是若使用者已经固执地查了 a- , MDict 应该先出字 a-,至于要不要给 a a. 就随意了。MDict PC 2.0 RC2* m: ~% `% k5 R" t
: F) I& a7 f) A2 T' {" r$ ]. Z

本帖子中包含更多资源

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

x

评分

1

查看全部评分

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

    [LV.3]偶尔看看II

    发表于 2019-3-1 00:32:51 | 显示全部楼层
    asicsfree 发表于 2018-6-10 20:10. d5 j8 F2 A% _, y7 i5 K1 \  p+ a
    另外,strip key的算法详细为何?(只是去头尾?还是全部的符号都被去掉?详细去的符号是?)
    $ e9 e* l7 E9 v& W6 [2 Q
      i$ A9 v) S4 c若加上str ...
    # F# A/ J5 g! D' r
    strip key影响的是排序吧,没有页面处理的
  • TA的每日心情
    慵懒
    2020-2-9 17:53
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    发表于 2019-3-1 00:35:07 | 显示全部楼层
    rayman 发表于 2018-6-11 10:012 E% x" }$ g2 K! N& Y5 l+ }
    1. Strip Key的意思是对于内码在0-127之间的字符,在进行关键字比较时只保留字母和数字。 即 A1,A-1,A 1  ...

    ( `" u: I+ [$ }1 c  xR大,不区分大小写好像对英文字以外的,比如说俄文字母,拉丁文字母无效?
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2026-6-10 08:07 , Processed in 0.027668 second(s), 32 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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