TA的每日心情 | 无聊 2020-12-6 11:39 |
---|
签到天数: 198 天 [LV.7]常住居民III
|
本帖最后由 Lynvia 于 2020-12-6 12:34 编辑 8 t, U' |4 i( y' `
' o* L6 l- n3 T4 i3 `3 |) ?, S
本帖仅限于讨论和交流,请勿于此交易!
' T9 d- ?2 s4 G4 Q l通过对坛内反查词库的观察以及对反查课程的思考,得到以下思路。- A% o% r Q' y
5 Q/ i6 m3 t" H5 l. B. Y( y
先说 @hanyl05 的高频版反查。观察词目总表发现,存在无效词头(含不完整的词头)和包含型词头。
/ M2 |; T7 ^/ H5 }" D, X' n
- g; x; H1 g6 T! Z2 \" g% J 不完整的词头,本贴指缺失配对标点符号的词头,如〔美好(美妙〕。取出个别词头去原版中查询可知,这些不完整的词头应该是程序以标点符号分割中文导致的。这种分割错误给我们提供了一种思路,那就是用以标点符号(特征符号)分割中文的方式实现反查。先用一个 for 语句遍历词条解释的中文并以标点符号分割,再嵌套一个 for 语句将切割好的中文链接到英文词头。3 s8 y' F: V& V
9 b0 y0 |! c8 z$ a! n 包含型词头,本贴指词头包含或被包含于另一词头,如〔美〕,〔美好〕,〔美好的〕。去原文中查找内容,可以发现有一些是标点符号分割得到的,有一部分是短句当中分割出来的。其中的短句部分难以根据特征分割。大佬们讨论优化软件检索时提到了“分词器”,反查课程当中也用到了“分词器”,没错,这剩下的部分可以借助分词器实现反查。直接将词条中文解释用分词器分割或者将按标点符号切割好的中文用分词器再次切割,把最终切分好的中文链接到英文词头。很多分词器都无法准确分割复杂语句。我们可以选择一个可以自定义分词库的分词器,从手头权威中文词典选出词组放入自定义分词库,如此就能尽量避免垃圾词头。到这,第一种反查思路就差不多捋清了。5 p# u4 X: G( U: C% h6 \9 Z+ Z
0 B& j0 r/ u2 {! i, n$ n @jonah_w 的体验版反查优点在于,有上下文语境。解包 mdx 可以发现,有很多长词头(有些不完整)并且存在很多链接到长词头的重定向。观察这些长词头不难发现,它们是词条一个完整段落当中的中文集合,而重定向则是这些长词条分割出来的。至于为什么有些长词头不完整,我猜测作者可能是出于打包工具无法打包超长词头的考虑。用 python 实现起来也不难,先用一个 for 语句遍历词条的每个段落,再嵌套一个 for 语句遍历段落中的中文解释作为段落词条的词头,最后将中文以标点分割并以重定向的形式链接到段落词头。考虑到打包,或需增设一个 if 语句限制段落词头的长度,但重定向得保持完整。第二种反查差不多就是这样。
& [& U* e; n9 ^' @$ M+ ~2 Z" t% A x+ i3 o( j
感谢每个人对反查的探索和优化。目前的反查差强人意,期待未来更优秀的方案和作品。
* ^1 x6 i' N" a$ x* f; @3 v$ |8 U
|
评分
-
2
查看全部评分
-
|