很狗血的东东。狗血的项目,狗血的赶进度。做得也很狗血。我承认。不过,小小记录下吧,从狗血中提炼出非狗血的存在。
要做的东西比较新颖,图的比较,但范围较小,单单是限制在流程图上。
首先插说下,图的比较。
以前很多都限制在文字的比较上,所以图的比较是一个挺新的也挺有意义的方向。现在很多网站都有做,谷歌,百度,搜狗等等。也实际测试过效果了。有几个问题,一是速度问题。对图的搜索,需要对图进行处理,比如层次,颜色,或者人的识别等等,耗时巨多。二是,评判的标准都不一样了,怎么判断两幅图相不相似,这又是新问题,标准选不好,效果就不好。
在实际测试中,还是谷歌牛啊。我将一幅毕业照的图片放上去,一个人,绿色草地,蓝天。谷歌基本能搜出这种类型的元素的图片。或者将范冰冰的一张大头像弄上去,也搜出很多艺人的类似大头像,而且也是黑色衣服,胸前有点裸露。而百度这些,呃,失败结果。。
我觉得图的搜索,会是一个很有意义也很有创意的方面。诸如素材等等的搜索,或者一些有趣的应用,比如腾讯的神笔小Q之类。
okay,再说回流程图相似性的检测。
流程图比较特殊,第一点在于,它的文字比重很大。第二点在于,图的架构很明晰,有节点,有连线表示关系。
所以,参考文字编辑距离(edit distance),也可用相似的概念来衡量两个图的相似性,图编辑距离。相似概念的迁移以及应用。
删除、增加一个节点,删除、增加一条边、替换一个节点,都会对图造成不同的消耗。搜索,用贪心、A-star等方法搜索,找到一种最小消耗的方法,将一幅图变成另一幅图,这个消耗,就可以衡量它们的相似性。
以上就是基本的思想,基于这个之上,可以有其他的变形。比如,考虑节点出现的先后顺序,赋予不同的权重,引导搜索。或者,节点可以合并、分离等,再比较。再或者,由于用贪心、A-star的方法很慢,采用一种有引导的局部搜索,把所有可能的匹配罗列出来,从中选择,极大减少时间。
其中,这中间利用到了文本的相似性。文本的相似性,也有很多度量的方式。字符编辑距离,N-gram,基于语义的比较(wordnet之类)等等。
然后,到了徐老这边。
<