灵感来源

一切起源于一句话:

写作之难,在于把网状的思考,用树状结构,体现在线性展开的语句里。

—— 斯蒂芬·平克

当时我正在准备英语考试,写作成为了一大难题:我们从小学开始的英语语法教学,都过于注重短语固定搭配,知识点比较零散,且缺乏系统的句子结构的讲解。正是这句话给了我灵感,当我们把网状的思维写成线性的句子时,为何不先画出树状的结构呢?

抽象语法树

计算机专业的人对此应该都不陌生,程序员码的代码最开始都是一条条线性的语句,这些都会在编译器处理后形成一种叫抽象语法树AST)的结构,这种结构更具象地展示了参数之间的逻辑关系,以方便后期的进一步操作和转化。我意识到,树状结构也能帮助人更直观地区分出句子的主干和修饰成分,从而提升我们的阅读速度和写作水平。在探索 AST 的过程中,我也认识了生成语言学的先驱,鼎鼎大名的乔姆斯基。

生成语言学

一个名词和任意数量的形容词可以组成一个名词短语,一个动词和多个名词短语又可以组成一个动词短语,同时一个动词短语又可以作为一个名词短语的修饰成分。正是这些规则将单词组装成具有嵌套逻辑结构的句子,而研究相关规则的学科就叫生成语言学

乔姆斯基

维基百科中写到:「生成语言学常用来指本乔姆斯基早期提出的转换语法」,可见乔姆斯基对语言生成学的贡献之大。乔姆斯基的《句法结构》是目前最自洽最流行的语法理论,其中心词驱动短语结构语法在计算机语言学中的到广泛运用,被微软、谷歌、苹果等公司采纳用于自然语言处理。

我阅读了大量乔姆斯基的论文,学习了许多相关理论,以此开发了语法树。我希望能通过机器学习和可视化技术,更简单有趣地介绍该理论,以帮助想我一样的学生更快脱离语法学习苦海。

功能设计

教程

首先是语言生成学的教程,教程中的理论来自乔姆斯基的论文和书籍。这些教程图文并茂,由浅入深地介绍了:如何将句子中一个一个的单词,组装成一棵能展示语法结构的树。又如何通过这棵结构树的生长和剪枝,创造出新的句子。

词性分析

词性分析

语法树通过苹果提供的 Natural Language 机器学习框架,可以帮助你分析一段文本的语法结构,进行单词的划分,并为不同词性的单词标记不同背景颜色,以帮助用户更高效地理解消化语法知识。不仅如此,为了保护用户隐私,并让软件在任何时候都可以正常工作,语法树完全离线运行。

树状图

人脑处理自然语言有一个隐含的解码 (parse) 过程,从线性的文字中提取骨架,再填充修饰的成分,在大脑中形成树状的结构,消化理解。再复杂的句子也是由一个个短语,像搭积木一样组装而成的。语法树通过树形图这一简洁优雅的中间形式,将这一过程可视化,来加快大脑对语法概念的理解和内化。

用户可以通过拖放、长按等手势,用被机器学习分析过的单词,组装成一棵语法树,将大脑理解句子的过程具像化。

练习

为了方便用户复习所学、纠正错误,提升解析语法结构的熟练度。我们制作了一些语句的语法树作为标准答案,用户可以将自己的作品与其进行比对,进一步查漏补缺。

未来计划

我们计划通过对单词句法的分类,识别出单词属于名词短语、动词短语还是介词短语等其他短语。通过使用 WWDC 2020 新引入的,针对动态词向量模型的迁移学习技术,开发者能更高效地训练出新的文本分析框架。目前我整理了 300 个句子作为数据,训练出的模型准确率达到了 80%,未来整理出更多原始数据优化好模型后,这一功能将会推出。

后记

Paul Graham 说,「要么给大部分人提供有点想要的东西,要么给小部分人提供非常想要的东西。」处于英语学习过程中的是少数人,而不断寻找更高效学习方法的则是更少的一批人。语法树源于我对英语学习的思考,这是我认为的真正有意义的事情。无论受众多少,我都会坚持改进,也希望它在不断打磨之后能够打动大家。