用Mathematica寻找最相似的汉字

标签: Program Impossible Mathematica 统计 代码 文字游戏 | 发表时间:2010-03-08 22:38 | 作者:Matrix67 hhx
出处:http://www.matrix67.com/blog

    Mathematica 提供了一个看上去毫无用途的无厘头函数 Rasterize ,它可以以图片的格式输出运算结果。比如,下面这个句子可以打印出 (x+1)^n 的展开式的“倒影”:

   

    今天我突然想到,我们可以利用这个函数很方便地分析汉字在图象上的性质。函数 Binarize 可以把图象转换为单色单通道, ImageData 则可以把图象转换成数组的形式,以便我们定量分析。因此,下面这句话就可以把一个汉字转换成 12*12 的 01 矩阵:

   


    下面这几句话可以把 GB2312 中的最常用的 3755 个一级汉字按照宋体 12 像素点阵字的像素点多少进行排序。

   

    可以看到,像素点最少的 10 个汉字为:

   

    像素点最多的 10 个汉字则为:

   

 
 
    曾经多次在网上看到诸如“三秒钟之内找到我”、“你吃过康帅博方便面吗”之类的帖子,不由得感叹汉字之强大。于是我开始思考,汉字中哪些字对长得最像?于是,我利用上面这些函数写了一段 Mathematica 程序,跑了几个小时的时间终于得出了在 3755 个一级汉字所对应的宋体 12 像素点阵字中像素不同之处最少的字对。其中有一对字仅一个像素之差,它们是“己”和“已”字。其它的一些结果如下:

   只差 2 个像素:(鸣,呜), (柬,束), (竟,竞)
   只差 3 个像素:(壳,亮), (含,合)
   只差 4 个像素:(上,土), (免,兔), (兵,乒), (士,土)
   只差 5 个像素:(夫,失), (臣,巨), (未,朱), (宜,直)

    但是,我对上面这个结果并不满意,因为有这么一个问题被忽略掉了:虽然相差相同数量的像素点,但差异发生在不同的地方,主观上的视觉差别程度是不同的。比方说,同样只差 4 个像素,人们会觉得 (士,土) 之间的差异远远小于 (上,土) 之间的差异。我们可以用一个更简单的例子来说明这种情况:

   

    图 A 和图 B 、图 A 和图 C 都只差一个像素,但从人眼的角度来看,图 C 要和图 A 接近一些。这是为什么呢?或许这就是人和机器的区别吧。机器能够精确地知道每个像素的位置,但人却很难做到这一点,一般只能分辨出每个像素的大致位置。为了模拟人眼的感受,我想到把所有的汉字全部模糊化,让每个像素点都在其周边留下一些影子,这相当于从一个近视眼的角度去量化字形的差异。

   

    对前面的三个例图进行模糊并转化为 256 灰阶后,图 A 和图 B 的各像素灰度值的差值的平方和为 33699 ,图 A 和图 C 的各像素灰度值的差值的平方和则为 29330 ,后者比前者小得多。又是几个小时的时间, Mathematica 终于找出了在这个意义下字形最接近的 50 个字:

   (己,已), (竟,竞), (鸣,呜), (柬,束), (壳,亮), (含,合), (免,兔), (荚,英), (士,土), (宜,直)
   (并,井), (杜,社), (夫,失), (侍,恃), (昔,音), (未,朱), (囤,围), (检,捡), (昧,味), (桶,捅)
   (末,未), (懦,儒), (著,着), (上,土), (兵,乒), (素,索), (臣,巨), (迸,进), (盖,蛊), (槐,愧)
   (优,忧), (官,言), (挡,档), (醇,酵), (柠,拧), (茧,苗), (儿,几), (蓬,篷), (供,洪), (幂,幕)
   (扁,肩), (贵,贪), (金,全), (借,惜), (厘,屋), (析,折), (戍,戌), (大,太), (悄,俏), (失,矢)

 
 
 
    这些字究竟相仿到什么程度呢?让我们用上面这个列表中的头 6 组字对做一张“汉字视力表”吧:

   

 
 
 

相关 [mathematica 寻找 相似] 推荐:

用Mathematica寻找最相似的汉字

- hhx - Matrix67: My Blog
    Mathematica 提供了一个看上去毫无用途的无厘头函数 Rasterize ,它可以以图片的格式输出运算结果. 比如,下面这个句子可以打印出 (x+1)^n 的展开式的“倒影”:.     今天我突然想到,我们可以利用这个函数很方便地分析汉字在图象上的性质. 函数 Binarize 可以把图象转换为单色单通道, ImageData 则可以把图象转换成数组的形式,以便我们定量分析.

寻找春女

- 风雨人生 - 24小时在线博客
  有老乡从框框井来,告诉我说:春女没死,春女的真名也不是你在文章里写的“春女”,她叫贺春娥. 从前我们叫她娥子,那是她还小,现在不了,镇子上的人都叫她娥姐.   贺春娥卖春的故事我在大前年写过(《失踪了的春女》 [西行笔记-41]). 故事的结尾似乎春女惨遭不测,人们只在沙甸子里找到一件疑似春女穿的衣服.

solr相似匹配

- - CSDN博客推荐文章
相似匹配   在我们使用网页搜索时,会注意到每一个结果都包含一个 “相似页面” 链接,单击该链接,就会发布另一个搜索请求,查找出与起初结果类似的文档. Solr 使用 MoreLikeThisComponent(MLT)和 MoreLikeThisHandler 实现了一样的功能. 如上所述,MLT 是与标准 SolrRequestHandler 集成在一起的;MoreLikeThisHandler 与 MLT 结合在一起,并添加了一些其他选项,但它要求发布一个单一的请求.

寻找历史的脉络

- stonewang - 袁伟时的BLOG
寻找历史的脉络 ——答记者杨鹏   (一) 问:辛亥革命过去一百年了,作为晚清史专家,能否从专业研究角度说说,为什么会有辛亥革命. 这场剧烈的变革前也......>>点击查看新浪博客原文.

寻找汉语网络的中心:“的”

- 佳佳 - Solidot
语言系统是一种复杂的网络结构体. 浙江大学的研究人员在《科学通报》上发表了一篇论文,探寻汉语网络结构的中心节点. 有意思的是,研究人员选择《实话实说》和《新闻联播》作为研究资料. 结果表明3个虚词均是网络的中心节点,但地位各有不同,它们对网络整体结构的影响也有较大区别. 其中“的”是整的网络最“中心”节点,“了”和“在”是局部中心节点.

寻找激情,从爱自己开始

- wuyan - 左岸读书_blog
导读:可以把这篇文章当提纲来看,也可以看作前面许多文章的总结. 不可否认,一个人的工作激情高昂与否,影响因素众多. 倘若真是万般不幸投奔了一个烂摊子,或者实在眼光差些跟随了一个太可恶的领导,让你跟打了鸡血似的是万万不可能的. 如果你心甘情愿地继续陷入在“拖死狗”的状态中,是永远不可能与激情邂逅的. 要知道,负面情绪只有一个作用,就是保护我们免于伤害,但对达成目标没有任何帮助.

电子书寻找方法汇总2

- - 战隼的学习探索
昨天的文章中分享的是寻找方法,今天的文章分享一些具体地址,文章中总结基本上比较全了,很多都是我平时经常用的,可以自己看去. 希望以后不会再有人问我电子书的问题. 这篇文章应该是在论坛里看到的,应该是HiPDA论坛或是多看,没找到原始链接,有知道的请告知一下,我把会加入原始链接. 【推荐】爱问共享资料 ( http://ishare.iask.sina.com.cn/)新浪旗下的在线资料分享站,电子书资源丰富,可以按格式搜索.

电子书寻找方法汇总-3

- - 战隼的学习探索
继续介绍一些前面二篇文章中没有的资源:. 1、Google电子书: http://books.google.com.hk/ebooks?hl=zh-CN. 2、Verycd 图书: http://www.verycd.com/archives/. 3、青番茄 http://www.qingfanqie.com/  如果你在它支持的城市中可以免费借阅.

电子书寻找方法汇总-1

- - 战隼的学习探索
去年一整年时间,基本天天都有人问我是否可以把你看过电子书提供下载,刚开始时我还比较有耐心,后来就不回应了. 这段时间还有人在坚持的问这个问题,这里再重申一下,我不提供任何电子书下载,但可以分享一些寻找电子书的方法. 出处: http://www.douban.com/note/105857655/ ———————— Greasemonkey是Mozilla Firefox的一个附加组件.

寻找Linux单机负载瓶颈

- - 大CC
服务器性能上不去,是哪里出了问题?IO还是CPU. 只有找到瓶颈点,才能对症下药;. 如何寻找Linux单机负载瓶颈,遵循的原则是不要推测,我们要通过测量的数据说话;. 1.查看平均负载(top/uptime命令). 2.确认CPU、IO有无瓶颈;(使用 sar vmstat). 3.CPU负载过高时寻找流程:.