我写了一个英语方面的软件,其中有一个功能是要查找相似的单词(包括词形或词义)。并且要把两个单词的相似程度表示出来(用于排序或者自定义需要的相似程度等等)。
就这个相似程度的规定,我想在很茫然,不知道如何规定是好。我想这个相似应该不只是简单的一段的匹配。比如说,单从词形上讲,aaab和aada词形很像,而aaab和aaba应该更像。我能预想到的类似的不好判断的地方很多。我实在想不出一个很好地衡量尺度。而且,即使确定了衡量尺度,如何很高效的实现代码我也没想通。不知道会不会有相关这方面的书籍,如果有是最好了。
希望高手们多多指教!不管你的想法是什么,请你告诉我,多谢!

解决方案 »

  1.   

    我绝对匹配应该从第一个字符比较起,直到遇到第一个不相同的字符为止。然后以该不同字符的先后(从a到z)进行排序就可以了。没必要做的太复杂。
    比如cccdm,cccdk,cccbc这组英文,如果输入ccc*,那么排序就是cccbc,cccdk,cccdm
      

  2.   

    同意happyparrot(快乐鹦鹉),其实从金山词霸的操作也可以看出来是这么做的
      

  3.   

    to  happyparrot以及楼上的一些其他朋友:
    谢谢各位,但是还是有很重要的一部分匹配。比如说:
    like 和 alike 加了一个首字母
    some 和 same 只改变了一个字母
    back 和 black 多了一个字母
    abroad 和 aboard 调整了一个字母r的位置
    这些情况可能用从头匹配的方法可能就不太好判断了。to ayanamiwww:
    好像可以解决一些问题,能具体探讨一下吗?
      

  4.   

    to 3m2u:
    你的指点给了我很大启发!多谢!
    to all:
    非常感谢各位的指点,现在我已经写成了一个初步的相似度判断程序。
    后面可能还会碰到很多问题,我会继续向大家请教的:)先结贴了!