• 【自然语言处理】双语数据预处理


    1.中文分词

    采用传统基于词典的正向最大匹配法来完成中文分词。基本流程如图所示:
    由于数字、日期、时间、网址等不可枚举,无法通过词典简单查找来分词。可以采用正则表达式或者自动机进行自动识别,并给予特殊名字进行泛化。例如:
    • 数字类型 $number 如:123
    • 日期类型 $date 如:1993 年 12 月 3 日
    • 时间类型 $time 如:3:10
    • 网址等类型 $literal 如:http://www.niutrans.com
    实际上大家可以总结更多类型,并自行定义泛化名字进行替换原文。泛化的目的是为了有效解决数据稀疏问题。需要注意一点的是,建议不要对组织机构名进行捆绑为一个词汇。例如将“东北大学信息学院”最好分成两个词“东北大学”“信息学院”。这样做的好处是为了有助于后面规则抽取模块抽取出更多翻译规则。 

     2.英文分词

    相对于中文分词处理来说,英文分词主要处理三个问题:
    • 将所有大写字母改为小写字母;
    •  将英文句尾结束符与句尾最后一个单词用空格分开;
    • 同样将数字、日期、时间、网址等不可枚举的类型进行识别,然后分别采用特殊名字进行泛化处理。 
    例如双语句对:
    中文:4 月 14 日我买了 10 本书。
    英文:I bought 10 books on April 14.
    预处理结果:
    中文:$date 我 买 了 $number 本 书 。
    英文:i bought $number books on $date . 
     
    其它说明:
    1) 中文的全角字符可以考虑改写为半角字符来处理;
    2) 同一类型的泛化名字在中英文中最好一样,如中文/英文数字=>$number;
    3) 也可以采用 CRF 或者语言模型来实现高性能中文分词;
    4) 注意区分英文的句尾符号“.”和“Mr. Smith”的“.”;
    5) 双语句对的泛化结果需要检查一致性,例如中文句子中包含$number,正常情况下,英文句子中也应该包含$number 等;
    6) 目前有很多开源的分词工具可以被使用,如 NiuTrans 提供的双语数据预处理工具从 http://www.nlplab.com/NiuPlan/NiuTrans.YourData.html 下载。
  • 相关阅读:
    第四次作业——个人作业——软件案例分析
    作业五——团队项目——需求规格说明书
    团队项目——团队展示
    作业三——结对编程
    作业二——结对项目之需求分析与原型模型设计
    leetcode 212 单词搜索II
    leetcode 130. 被围绕的区域
    leetcode 695 Max Area of Island 岛的最大面积
    【《算法》学习笔记】一:
    leetcode 191 位1的个数
  • 原文地址:https://www.cnblogs.com/xiximayou/p/11880561.html
Copyright © 2020-2023  润新知