旧文拾遗:自然语言处理与机器翻译FAQ

Posted Python时代与机器学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了旧文拾遗:自然语言处理与机器翻译FAQ相关的知识,希望对你有一定的参考价值。

 博客搬家以来,一直想为“我爱自然语言处理”写个自然语言与机器翻译的通俗介绍。今天无意间发现了台湾张景新老师写的一篇相关文章,写得通俗有趣,就搬到这里来了,换了个合适的名字,将繁体转换为简体,消减了一些和博客内容不相关的,并将一些繁体中文术语改为简体中文术语。

1、什么是“自然语言“(NL:Natural Languages)
• 自然语言就是我们一般人平常所用的, 所写的中文, 英文, 日文, 和真主阿拉所用的阿拉伯文等语言文字 (广义来说, 也包含语音).
• 所谓的 "自然" 是相对于 "人工" 或 "程序" 语言 (Artificial or Programming Languages) 而言.
• 用程序语言写合法的程序, 一定要遵循规定的语法, 要不然, Compiler 就会说你的程序 illegal, 有 syntax error 等等. 这 Compiler 还真烦!!
• 讲妈妈教的话, 或写文章, 就不一定要那么规规矩矩, 偶而出现火星文也很酷啊!!
• 不过, 酷归酷, 这种特性也让自然语言处理变得很难.

2、什么是“自然语言处理“(What is Natural Language Processing / NLP)
• 就处理的型态来讲, 大概可分为三类: 分析, 转换及生成.
• 分析(Analysis): 就是通过统计模型,推理 (Statistical Models, Inferences), 模式识别/分类 (Pattern Recognition/Classification), 机器学习 (Machine Learning) 等特异功能, 去 "分析" 文字的内涵, 结构, 了解文件在讲什么.
• 转换 (Transfer): 分析之后, 可以将他 "转换" 成另一种形式的有用信息, 作进一步的应用. 比如转到另一种语言的深层结构 (自动翻译), 或数据库 (数据仓储).
• 生成 (Generation): 有时候, 我们也会把某些有用, 但是比较抽象的信息, 用文字写出来, 或用语音说出来, 这叫 "生成" 或 "合成".

4、“自然语言处理”研究的终极目标是什么??
• 自然语言接口: 让机器来学习我们的语言, 了解我们想做什么, 而不是让我们学习机器的语言, 教他下一步怎么做!!
• 智能型代理人: 自动获取我们所要的知识.
• 智能问答系统: 即问即答, 实问实答的百科全书.
• 跨越语言障碍: 用不同语言, 应用各种语言材料, 及上述自然语言应用.

5、机器翻译系统(MTS:Machine Translation Systems) 是什么
• 机器翻译系统就是可以用来将一种语言 (来源语; SL; Source Language) 翻译成另一种语言 (目标语; TL; Target Language) 的系统.
• 主要是透过对的原始语言 (来源语) 的分析, 得到其结构, 再将分析的结构转换成目标语的结构, 而后根据目标语结构, 生成目标语, 来达到翻译的目的.
• 这样的翻译模型, 统称为 Transfer-Based MT (转换式机器翻译).
• 这很像Compilers 所作的 Lexical analysis, Syntax analysis, Semantic analysis, Intermediate Code Generation, Code Optimization, Target Machine Code Generation 等步骤. 只是自然语言具有高度的 ambiguity (歧义性,模糊性), 需要有最佳化决策模型, 来挑选最好的分析.
• 上面提到的自然语言三种主要处理型态 (分析/转换/生成), 其实就是以机器翻译系统为本的分类.
• 1988 年开始, 另外有纯统计模型的机器翻译系统 (SMT; Statistical MT) 被IBM 研究人员开发出来. 主要是利用逐句对应好的双语语料, 及简单的统计模型, 学习词汇对齐 (alignment), 转换规则及翻译机率, 从而由生成的可能翻译句中, 挑选最可能的翻译的做法.
• 机器翻译系统是最复杂的自然语言处理系统. 因此, 学过或开发过大型机器翻译系统, 能让你充分了解各种不同层次的语言处理问题与处理技巧. 所以, 要透彻了解自然语言处理的人, 不能不了解机器翻译系统.

7、为什么“自然语言处理”是信息处理的明日之星
• 人类的所有智能跟知识, 多数是以文字的型态存在的.
• 要自动处理和挖掘里面的知识, 自然不能不采用自然语言处理的技术.
• 看看Google跟Microsoft拼命找NLP的研究人员, 就知道了!!
• Google跟Microsoft 怎么赢, 就看我们啰 !!

8、为什么“机器翻译”是信息抽取的明日之星
• 网络打破了距离的障碍,
• 但是... 语言障碍 (Language Barrier) 仍旧存在 !!
• 语言成了目前妨碍信息流通及存取的最大绊脚石.
• 跨语言的知识抽取与分享, 必须有强力的“翻译引擎”才容易达成目标.

9、哪些语言会是未来几年的重要研究对象
• 中文啰 !! 使用人口众多, 大家要赚钱啊 !!
• 美国老大哥也很怕非和平崛起啊 !! 
• 你以为所谓的“战略语言”是个什么词儿啊??
• 信息封锁/过滤 (screening) 也需要这一套啊. (哦哦... 被拿来做坏事啰!! 真尴尬!!)
• 还有阿拉伯文啰!! 美国大哥大对这地区一向很头痛 !! 
• 你猜“全民公敌”里那样的卫星, 平常都是在拦截哪些关键词啊 ?!

10、“中文处理”与“英文处理”有什么不一样的地方
• 字集 (character set) 非常大. (e.g., Big5 有 13,053 个字). 字码 (code set) 不统一.
• 同音字极多. 注音或拼音输入有极高的歧义性.
• 字的排序 (sorting sequence) 没有一定标准 (通常依笔划或部首顺序).
• 词(word) 的界线不明显, 没有空格把词分开, 多数应用需要先作断词 (或称分词) (word segmentation) 的动作.
句子的界线也不明显. 标点符号没有统一的标准. 不像英文一样, 一个句子只有一个主要动词.
• 没有像英文一样明显的时态, 动貌系统, 单复数名词同型. 名词及动词难以从型态分辨出来.
• 缩写词 (abbreviation) 产生方式非常自由, 具有相当程度的歧义性.
• 中文词序 (word order) 非常自由, 同一句子部分用词位置调动后, 意思还是不变.
• 还有好多大家还没注意到的... to be found

11、学自然语言处理一定要文法很强吗??
• 有当然最好. 但目前的趋势是用统计模型跟机器学习的方法, 从大量的语料里面学习语言的细微规则.所以, 基本的语文知识要有,却不必要到语言学家的层次.问题不大.

12、学自然语言处理可以学到哪些相关的技术??
• 看看上面相关的应用, 你还觉得有哪些学不到的 ?!
• 语言分析 (<=> compilers, formal languages)
• 统计推论/参数估计/假设检定 (<=> statistical inference, estimation theories)
• 样形识别 (<=> statistical pattern recognition)
• 机器学习 (<=> statistical machine learning)
• 基本技术不难... 老师有讲, 你有专心在听就容易学会.

13、有人认为统计机器翻译模型 (SMT) 解救了全世界. 老师的看法呢??
• 目前多数SMT Models 太过简化, 难以完全表达语言转译的机制, 跟目标语特有的结构.
• SMT 在语言知识抽取方面是有可取之处, 但太夸张的说法, 听听就好. 真有那么神, 那些发明人就不会跑去华尔街分析股票了. 
• 多数研究 SMT 的人没真正开发过大型的 MT 系统. 不过, papers 倒是很容易产生. 
• SMT 在知识抽取方面的优点还是要学, 但要知道他的先天限制, 才能予以改善.
• 感觉上, 登陆月球都没那么难, 要努力的地方还多着呢 !!

以上是关于旧文拾遗:自然语言处理与机器翻译FAQ的主要内容,如果未能解决你的问题,请参考以下文章

Python复习(拾遗)

JavaScript语言精髓之语法概要拾遗(转)

Java线程知识拾遗

[Java拾遗一] XML的书写规范与解析.

体系结构与操作系统拾遗

路边拾遗之其他模块(struct/csv)