The world as we have created it is a process of our thinking.——Albert Einstein
文本编辑的遐想
毫无疑问,文本编辑这件事诞生于文字出现的年代,从结绳记事即开始了,打一个结,或解开一个绳结,算最初最抽象的“文本编辑”。然后是古苏美尔人雕刻软泥板上的楔形文字,其次是最初意义的纸张,古埃及人将尼罗河畔的纸莎草制成平的薄片,书记官在纸上以古埃及象形文字记录法老王朝。再次还有竹简,记录了最初的文明。更近的是在活字印刷术的出现,纯文本编辑并不开始于纸笔。
本文要讲述的纯文本编辑是利用文本编辑器工具进行 Plain Text 编辑,一个 IT 世界特有的概念。在 IT 世界并不长远的历史中,人们前赴后继前前后后可能实现过上千种纯文本编辑工具,我们如何在一篇短文中评论这件事,如何来谈论纯文本编辑?
文本编辑的本质
我们将之归结为四个字: 描述、创造。
描述是指人将概念以文本的表现形式在计算中具象化,创造即在抽象概念的基础上进行无中生有的活动。结合本文开头的爱因斯坦的引语。一切始于念头,因此不存在文本的创造,因为想法先于文本。即使神来之笔的小说家,我们也可以认为文本源自神念。文本编辑器即这样一种思维和二进制之间的媒介软件。
文本编辑的本质就是描述,人通过文本编辑器描述思维。
计算机中的纯文本编辑
落到实处,一个纯文本编辑过程最少需要什么?
- 输入硬件:有一种输入设备将思维输入电脑
- 输出硬件:在一个设备上呈现出来,人的五觉中只可以通过视觉(显示器)、听觉(耳机),触觉来获得文本的反馈,嗅觉和味觉做不到确定性。
- 新建:指定一个位置输入
- 保存:将输入的内容在一个位置存下来
- 打开:呈现输入的内容
- 指定输入点:有一个光标表示输入点
- 移动输入点:能在指定点开始输入
- 删除:输错了可以丢弃
- 撤销:输错了可以反悔,理论上撤销可以用删除替代,输错了删,删错了再输
以上即是一个纯文本编辑的最少的基础功能,接着还有必备的:
- 选择:选择一部分内容作后续处理
- 剪切:删除输入,将输入暂存
- 复制:不删除输入,将输入暂存
- 粘贴:将暂存再输入
接着还有常用的:
- 常用输入:时间等
- 呈现的个性化:比如调整换行的方式,调整显示的字体等
纯文本编辑的本质就是提供一种工具能完成以上动作。在计算机中,这种软件叫做文本编辑器。以上也是 Windows 自带纯文本编辑器 Notepad 和 Mac 自带编辑器的功能。
简化到一行
人们进行纵向或横向书写,更简化的来考虑,抛开跨行的情况,我们在一行所做的操作即:
- 前移一个字
- 后移一各字
- 删除一个字
- 上移一行
- 下移一行
最初的文本编辑器 vi 即从这样基础的功能在字符界面实现的。
扩充到整体
文本编辑的整体不过是对一行中操作的重复,从一到二,从二到三,再到整体。计算机中,这个概念即递归。
仅仅是这些吗
如果仅仅是这些,那么现代文本编辑器软件还包括什么内容?
答案是结构:1 + 1 = 2
以 Notepad 为例,它并不懂得 1 + 1 的结果是 2,但 Calc 懂得。这是什么意思?这是指,计算机不但可以懂得单个的数字、 英文字符、汉字、符号,还可以懂得由这些字符组成的一串文本背后的意义——即文本的语义。
文本编辑中的语义
语义对计算机来说是一种高级概念,基于数学、统计学、人工智能技术的理论与近代计算机硬件性能的发展,我们使用数学和统计,近似的解决了语义的命题。但只是近似,真正的彻底解决要让计算机“理解”语义,需要计算机在思维上等于人。再举一个例子:
我在IT桃花岛写我的文章。
计算机要从语言结构上理解这个句子,至少需要知道: 主语是我 ,状语是IT桃花岛,谓语是写,宾语是我的文章。
我 在IT桃花岛 读 我的文章。 主语 状语 谓语 宾语
这样,当我们告诉计算机——主语改成你,宾语改成他时,计算机会自动识别出第一个我和第二个我的不同。
而目前,稍微高级的文本编辑软件能做的,只是用分词技术将句子分为:
我 在 IT 桃花 岛 读 我 的 文章。
或者查找所有的“我”替换成为“你”或者“他”,还做不到对根本语义的理解。
当我们的思维中,想把句子改为“你在 IT 桃花岛读他的文章”时,就不得不由人通过键盘的按键将光标定位到要修改的字(人理解语义),再修改。
你可能说,这没什么,不是很简单吗?
那么让我们作两个假设:
- 金庸先生需要将令狐冲的武器由剑换为刀,在写好的小说中,所有令狐冲用剑的地方,都修改为用刀,
- 古龙先生需要将李寻欢的武器小李飞刀换成飞剑。
请问这个文本编辑任务中,如何帮助两位老先生准确的修改小说,这个任务需要多少时间?
要回答这个问题,我们引出了高阶文本编辑。
更高阶的文本编辑
如果文本编辑器要辅助我们完成上述的任务,那么它在文本编辑时就要懂得更多,它需要在背后通读小说,并且解析百万字的小说中所有出现的主角使刀用剑的地方,有针对性的作修改了。
目前计算可以做到吗?答案是可以,又不可以。
可以是说,利用深度学习技术,能在一定程度上做到,前提是限制在金庸先生或古龙先生的小说内,让计算机读更多的先生们的其他小说,并且标注出需要修改的地方,这里计算机便积累了大量的刀剑出现的概率数据。
不可以是说,即便如此,计算机还无法完美做到。假设有这样一句:
李寻欢飞身越过阿飞的剑,回身发出了他的小李飞刀,飞刀穿过了荆无命的剑,插在了上官金红的咽喉中。
我相信,即使有深度学习技术,也难以解决上述概率的处理了。
做的最好的是谁
在广义的文本编辑领域, 最可能智能化地完成上述任务的公司是 JetBrains,Google 是其金主,然后可能是微软 VSCode 的团队。当然,这些都是假设了。
相关文章
转载于:https://my.oschina.net/kaffa/blog/3094238