查看: 1231|回复: 11
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

62

主题

392

回帖

1万

积分

状元

Rank: 9Rank: 9Rank: 9

积分
10872

灌水大神章小蜜蜂章笑傲江湖章

跳转到指定楼层
1
发表于 2018-6-10 01:03:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 asicsfree 于 2018-6-10 21:48 编辑

新版的MDXBuilder已经没有「key case sensitive」的选项。其预设为何?官方比较建议区分或是不区分大小写呢?

MDXBuilder选择不区分大小写时是否意谓,(词典制作时)合并词条也应把大小写(例如monk, Monk)都合并在同一页面比较合理?各位的习惯建议为何?

该用户从未签到

45

主题

1420

回帖

1万

积分

管理员

Rank: 13Rank: 13Rank: 13Rank: 13

积分
10971

管理组专用章

推荐
发表于 2018-6-12 09:25:39 | 只看该作者
因为Stripkey后,输入的内容也会去掉符号之类的再比较,所以A- 也会先匹配到A。

评分

1

查看全部评分

该用户从未签到

131

主题

2650

回帖

3万

积分

翰林院编修

Rank: 11Rank: 11Rank: 11Rank: 11

积分
34126

灌水大神章小蜜蜂章笑傲江湖章翰林院专用章管理组专用章

2
发表于 2018-6-10 08:15:54 | 只看该作者
不区分大小写查询起来更方便

该用户从未签到

62

主题

392

回帖

1万

积分

状元

Rank: 9Rank: 9Rank: 9

积分
10872

灌水大神章小蜜蜂章笑傲江湖章

3
 楼主| 发表于 2018-6-10 20:10:24 | 只看该作者
本帖最后由 asicsfree 于 2018-6-10 20:14 编辑
eeshu 发表于 2018-6-10 08:15
不区分大小写查询起来更方便


另外,strip key的算法详细为何?(只是去头尾?还是全部的符号都被去掉?详细去的符号是?)

若加上strip key,同一页面应该要有 a1, a2, a3, a4, a., a-, A1, A2, A3, A4, A. A-。

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

该用户从未签到

131

主题

2650

回帖

3万

积分

翰林院编修

Rank: 11Rank: 11Rank: 11Rank: 11

积分
34126

灌水大神章小蜜蜂章笑傲江湖章翰林院专用章管理组专用章

4
发表于 2018-6-10 20:23:53 | 只看该作者
asicsfree 发表于 2018-6-10 20:10
另外,strip key的算法详细为何?(只是去头尾?还是全部的符号都被去掉?详细去的符号是?)

若加上str ...


正好前两日问了R大strip key的功用,R大说是“比较单词时忽略非字母和数字外的那些符号”。所以你的理解可行。

评分

1

查看全部评分

该用户从未签到

62

主题

392

回帖

1万

积分

状元

Rank: 9Rank: 9Rank: 9

积分
10872

灌水大神章小蜜蜂章笑傲江湖章

5
 楼主| 发表于 2018-6-10 20:46:17 | 只看该作者
本帖最后由 asicsfree 于 2018-6-10 21:46 编辑
eeshu 发表于 2018-6-10 20:23
正好前两日问了R大strip key的功用,R大说是“比较单词时忽略非字母和数字外的那些符号”。所以你的理解 ...


“比较单词时忽略非字母和数字外的那些符号”有点模糊。是否只限[a-Z0-9],又或者'α', 'β', 以及一些欧洲字符,这些是字母还或是符号吗?

試在MDict查
AÜ        →        a
Ü        →        Headword 'Ü' not found
ÜA        →        Headword 'ÜA' not found
ÜÜ        →        Headword 'ÜÜ' not found
Ü-        →        Headword 'Ü-' not found

评分

1

查看全部评分

该用户从未签到

62

主题

392

回帖

1万

积分

状元

Rank: 9Rank: 9Rank: 9

积分
10872

灌水大神章小蜜蜂章笑傲江湖章

6
 楼主| 发表于 2018-6-10 20:54:53 | 只看该作者
本帖最后由 asicsfree 于 2018-6-10 21:58 编辑
eeshu 发表于 2018-6-10 20:23
正好前两日问了R大strip key的功用,R大说是“比较单词时忽略非字母和数字外的那些符号”。所以你的理解 ...


我来解释下我逻辑打结的原因:

MDXBuilder一般会选strip key和不区分大小写。那么理论上,字典的制作就也应该循这个逻辑,那么 a a. a- A A. A- 的 key 值通通都得改成 a,对完整字典的「破坏」性是大的。但不改的话,这合并只有半套,在MDict里,你永远打不出 A-,打了 a 后,还得用滑鼠去点 A-。

加入Goldendict 头就更大了。Goldendict根本不尊重strip key,若是真的全部合并为 a,那么在 Goldendict 里打 A- 是找不到词条的。

假设只考虑MDict,做词典时必须对所有的key做strip key后再进行合并,那么strip key的算法为何?(见上楼例)

评分

1

查看全部评分

该用户从未签到

131

主题

2650

回帖

3万

积分

翰林院编修

Rank: 11Rank: 11Rank: 11Rank: 11

积分
34126

灌水大神章小蜜蜂章笑傲江湖章翰林院专用章管理组专用章

7
发表于 2018-6-11 08:33:27 | 只看该作者
这我说不上来。 我去搬救兵。

该用户从未签到

45

主题

1420

回帖

1万

积分

管理员

Rank: 13Rank: 13Rank: 13Rank: 13

积分
10971

管理组专用章

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

不知道说打不出A-是什么意思?A-是可以输入的啊。

评分

1

查看全部评分

该用户从未签到

62

主题

392

回帖

1万

积分

状元

Rank: 9Rank: 9Rank: 9

积分
10872

灌水大神章小蜜蜂章笑傲江湖章

9
 楼主| 发表于 2018-6-11 10:37:58 | 只看该作者
本帖最后由 asicsfree 于 2018-6-11 11:16 编辑
rayman 发表于 2018-6-11 10:01
1. Strip Key的意思是对于内码在0-127之间的字符,在进行关键字比较时只保留字母和数字。 即 A1,A-1,A 1  ...


也就是 [0-127] - [48-57](0-9) - [65-90](a-z) - [97-122](A-Z) 这些东西都会被 stripKey(),这样理解对吗?

另一个问题是,strip key 为何要在mdx制作时选择,而不是单纯MDict的选项?GoldenDict读到相同的mdx,还是会区分 a a. a-。

说 a- 打不出来,并非查不到。如下图,查了aa. 和 a- 都先出字 aa 和 a。理想上,使用者查 a,MDict可以stripKey()给他们 a a. a-;但是若使用者已经固执地查了 a- , MDict 应该先出字 a-,至于要不要给 a a. 就随意了。MDict PC 2.0 RC2

评分

1

查看全部评分

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

    [LV.3]偶尔看看II

    9

    主题

    184

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    11480
    11
    发表于 2019-3-1 00:32:51 | 只看该作者
    asicsfree 发表于 2018-6-10 20:10
    另外,strip key的算法详细为何?(只是去头尾?还是全部的符号都被去掉?详细去的符号是?)

    若加上str ...

    strip key影响的是排序吧,没有页面处理的
  • TA的每日心情
    慵懒
    2020-2-9 17:53
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    9

    主题

    184

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    11480
    12
    发表于 2019-3-1 00:35:07 | 只看该作者
    rayman 发表于 2018-6-11 10:01
    1. Strip Key的意思是对于内码在0-127之间的字符,在进行关键字比较时只保留字母和数字。 即 A1,A-1,A 1  ...

    R大,不区分大小写好像对英文字以外的,比如说俄文字母,拉丁文字母无效?