查看: 552|回复: 10
打印 上一主题 下一主题

[讨论] 汉英反查的实现

[复制链接]
  • TA的每日心情
    无聊
    2020-12-6 11:39
  • 签到天数: 198 天

    [LV.7]常住居民III

    16

    主题

    581

    回帖

    3万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    32352

    QQ 章

    跳转到指定楼层
    1
    发表于 2020-12-6 11:21:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 Lynvia 于 2020-12-6 12:34 编辑

    本帖仅限于讨论和交流,请勿于此交易!

    通过对坛内反查词库的观察以及对反查课程的思考,得到以下思路。

           先说 @hanyl05 的高频版反查。观察词目总表发现,存在无效词头(含不完整的词头)和包含型词头。

           不完整的词头,本贴指缺失配对标点符号的词头,如〔美好(美妙〕。取出个别词头去原版中查询可知,这些不完整的词头应该是程序以标点符号分割中文导致的。这种分割错误给我们提供了一种思路,那就是用以标点符号(特征符号)分割中文的方式实现反查先用一个 for 语句遍历词条解释的中文并以标点符号分割,再嵌套一个 for 语句将切割好的中文链接到英文词头

           包含型词头,本贴指词头包含或被包含于另一词头,如〔美〕,〔美好〕,〔美好的〕。去原文中查找内容,可以发现有一些是标点符号分割得到的,有一部分是短句当中分割出来的。其中的短句部分难以根据特征分割。大佬们讨论优化软件检索时提到了“分词器”,反查课程当中也用到了“分词器”,没错,这剩下的部分可以借助分词器实现反查直接将词条中文解释用分词器分割或者将按标点符号切割好的中文用分词器再次切割,把最终切分好的中文链接到英文词头。很多分词器都无法准确分割复杂语句。我们可以选择一个可以自定义分词库的分词器,从手头权威中文词典选出词组放入自定义分词库,如此就能尽量避免垃圾词头。到这,第一种反查思路就差不多捋清了。

           @jonah_w 的体验版反查优点在于,有上下文语境。解包 mdx 可以发现,有很多长词头(有些不完整)并且存在很多链接到长词头的重定向。观察这些长词头不难发现,它们是词条一个完整段落当中的中文集合,而重定向则是这些长词条分割出来的。至于为什么有些长词头不完整,我猜测作者可能是出于打包工具无法打包超长词头的考虑。用 python 实现起来也不难,先用一个 for 语句遍历词条的每个段落,再嵌套一个 for 语句遍历段落中的中文解释作为段落词条的词头,最后将中文以标点分割并以重定向的形式链接到段落词头。考虑到打包,或需增设一个 if 语句限制段落词头的长度,但重定向得保持完整。第二种反查差不多就是这样。

          感谢每个人对反查的探索和优化。目前的反查差强人意,期待未来更优秀的方案和作品。

    评分

    2

    查看全部评分

    本帖被以下淘专辑推荐:

    • · 制作|主题: 3, 订阅: 0
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    61

    主题

    627

    回帖

    16万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    162733

    QQ 章灌水大神章笑傲江湖章

    推荐
    发表于 2020-12-6 15:19:59 | 只看该作者
    本帖最后由 Mandolin 于 2020-12-6 15:21 编辑

    可以分析下那些反查软件是怎么做的,看看它们把哪类词提了、哪类词没提。技术上判断分割目前是不是只有这三种手段:

    1.借助分词包(如 Python 里的 jieba)
    2.借助现有汉英词典的词头(如《汉英大词典》)
    3.借助标点符号

    如果担心做出的反查查得率不高,或结果太杂,可以先不管三七二十一,把能分能提的都提出来,最后对提取的词头再做一层分词,进行二次归纳就好了。最后使用就是查只词语,比如这样(当然这里有点不一样):



    让使用者自己去判断选择

    该用户从未签到

    539

    主题

    3046

    回帖

    25万

    积分

    翰林院编修

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

    积分
    251476

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

    推荐
    发表于 2020-12-6 13:01:29 | 只看该作者
    从手头权威中文词典选出词组
    ——————————————————
    我不主张把汉语词典拉进来,因为我素来觉得「汉英反查」这个东西,本身就是桥梁性质的,用的人要自己去探索、发现汉语、英语这两种语言之间的种种可能性

    如果以权威中文词典为准,那么「牛肉」不是一个汉语词,《现代汉语词典》也不收,因为汉语里的「牛肉」就是「牛」+「肉」的字面组合。这种极端情况,汉英词典必须妥协,我们看到各大汉英词典必收「牛肉」。又比如说「造成严重损害」「造成严重伤害」,《现代汉语词典》不收,汉英词典也拒绝收,因为也是字面组合,但是学英语的人想知道这样的表达用英语怎么翻译啊!

    论坛里的两种反查,如果用出版社的标准、严谨的汉语词典标准,都是不能出版的,如你所说,有「无效词头」「垃圾词头」,「差强人意」,但我认为这纯粹是一个视角的问题。从解惑的角度看,他们确实解决了传统汉英词典薄弱的地方。

    顺便晒一种比较老的反查:





    这种反查是跳转到页码的,远不如论坛里的方便,我看它里面也有不少怪词头嘛

  • TA的每日心情
    奋斗
    6 天前
  • 签到天数: 605 天

    [LV.9]以坛为家II

    74

    主题

    1124

    回帖

    8618

    积分

    进士

    Rank: 8Rank: 8

    积分
    8618
    3
    发表于 2020-12-6 13:18:12 | 只看该作者
    谢谢大神解惑~

    点评

    前人栽树,我乘凉。  发表于 2020-12-6 20:53
  • TA的每日心情
    无聊
    2020-12-6 11:39
  • 签到天数: 198 天

    [LV.7]常住居民III

    16

    主题

    581

    回帖

    3万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    32352

    QQ 章

    4
     楼主| 发表于 2020-12-6 14:26:24 | 只看该作者
    本帖最后由 Lynvia 于 2020-12-6 20:50 编辑
    klwo2 发表于 2020-12-6 13:01
    从手头权威中文词典选出词组
    ——————————————————
    我不主张把汉语词典拉进来,因为我素来 ...


    针对分词器会产生的无效词头,比如切出来的单字头 的 地 得 你 我 她 等,我才想可以用手头的词组喂给分词器,又不是说要把标点切分出来的中文全部扔掉。单字头和动词短语等用标点切分出来的,词组等用自定义词库的分词器切分得到的,我觉得这样的组合还好啊。

    至于标点符号分割会产生的怪词头,个人表示理解并且也并没有因此否认反查的价值。您也说了老版反查就存在怪词头。我呢,其实只是借助发现的问题反推反查背后的逻辑并提出我个人的解决方案。我们都清楚这种分割需要人工观察特征,调整切分语句。跟词组拆分一样,符号一多,就容易出错,要精确得投入大量时间检查。

    作为一个强迫症+懒人,蹲一个自带反查的软件。

    您所附的页码反查倒是让我 get 一种思路:反查结果采用索引的形式,用 id 实现精确跳转。优点是便于翻阅上下文,缺点是不够直观。
  • TA的每日心情
    无聊
    2020-12-6 11:39
  • 签到天数: 198 天

    [LV.7]常住居民III

    16

    主题

    581

    回帖

    3万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    32352

    QQ 章

    6
     楼主| 发表于 2020-12-6 15:37:44 | 只看该作者
    Mandolin 发表于 2020-12-6 15:19
    可以分析下那些反查软件是怎么做的,看看它们把哪类词提了、哪类词没提。技术上判断分割目前是不是只有这三 ...

    理解。你的意思是做成索引是吧。方案二稍微改一下就能做成这样。
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 463 天

    [LV.9]以坛为家II

    8

    主题

    494

    回帖

    1万

    积分

    状元

    不安分的漫游者

    Rank: 9Rank: 9Rank: 9

    积分
    10516

    笑傲江湖章灌水大神章

    7
    发表于 2020-12-7 09:46:00 | 只看该作者
    这个其实多年前王同亿已经在《语言大典》里尝试过了,被骂得狗血喷头。但其实学术上通不过,实践上还是很有用的。事实上,以前有人根据德汉词典,出了本德汉词典中文索引,是正规出版物,好像没什么批评。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    254

    主题

    4264

    回帖

    7万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    79050

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

    QQ
    8
    发表于 2020-12-17 07:47:56 | 只看该作者
    本帖最后由 喬治兄 于 2020-12-17 09:40 编辑
    Lynvia 发表于 2020-12-6 15:37
    理解。你的意思是做成索引是吧。方案二稍微改一下就能做成这样。


    Lynvia , 您提出了相當有意思問題,令在下折騰了好幾天的思索,本人并不懂 python 及分詞器,但深感 Mandolin 兄的想法蠻有創意的,若是作者在書上的釋義表達使用的標點符號邏輯正確無誤的話,應是可以把釋義區分出 and, or 的關係更甚之其他的邏輯符號,也就是把釋義以邏輯符號+文字的表達,哇!....這相當困難且又艱鉅的挑戰,若能實現,那是否也意謂 和 WordNet 的分類功能也就一步之遙了!
    或更甚之的無遠弗界的擴展.......解出來的單一釋義再代入釋義,如同把一串式子再代入一個變數般
    文字表達邏輯數學代數化.......相信可以找出比原本釋義更多更廣的解釋且匡列出那個單詞釋義的域
    如同 thesaurus 裏的單詞 再代入 那個單詞 thesaurus

    只是這般的代入可能得考慮幾個因素,相同詞性.......
  • TA的每日心情
    开心
    2020-3-8 09:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    104

    主题

    1687

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    16432

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

    9
    发表于 2020-12-17 08:52:52 | 只看该作者
    klwo2 发表于 2020-12-6 13:01
    从手头权威中文词典选出词组
    ——————————————————
    我不主张把汉语词典拉进来,因为我素来 ...

    请教K大,截图是哪本词典?英华大词典?

    该用户从未签到

    539

    主题

    3046

    回帖

    25万

    积分

    翰林院编修

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

    积分
    251476

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

    10
    发表于 2020-12-17 12:18:34 | 只看该作者
    badnumber 发表于 2020-12-7 09:46
    这个其实多年前王同亿已经在《语言大典》里尝试过了,被骂得狗血喷头。但其实学术上通不过,实践上还是很有 ...

    王同亿《语言大典》被骂,因为他没有诚实地说是个反查嘛,他号称是一本革命性的汉语词典,人家当然要拿汉语词典的要求来看啦

    《语言大典》也不全是反查,应该讲是个大杂烩