首页 »编程综合 » js截取中文字符串:如何确定中文字符串的相似度 »正文
js截取中文字符串:如何确定中文字符串的相似度
来源: 发布时间:星期四, 2009年1月15日 浏览:11次 评论:0
分析 最简单 ![](/icons/36006de.gif) 问题求解 ![](/icons/36006zifu.gif) 串由 ![](/icons/36006yi.gif) 组区别含义 ![](/icons/36006de.gif) 单词组成 ![](/icons/36006dou.gif) 它区别于数值型变量 ![](/icons/36006dou.gif) 可以用 ![](/icons/36006yi.gif) 个特定 ![](/icons/36006de.gif) 数值来确定它 ![](/icons/36006de.gif) 大小或位置 ![](/icons/36006dou.gif) 所以用何种方式来描述两个 ![](/icons/36006zifu.gif) 串的间 ![](/icons/36006de.gif) 距离 ![](/icons/36006dou.gif) 成为了 ![](/icons/36006yi.gif) 个值得探讨 ![](/icons/36006de.gif) 问题 ![](/icons/36006dou2.gif) 通常情况下 ![](/icons/36006dou.gif) 用于分析 ![](/icons/36006de.gif) 数据类型有如下几种:区间标度遍历、 2元变量、标称型变量、序数型变量、比例标度型变量、混合类型变量等 ![](/icons/36006dou2.gif) 综合这些变量类型 ![](/icons/36006dou.gif) 本文认为 ![](/icons/36006zifu.gif) 串变量更适合于归类于 2元变量 ![](/icons/36006dou.gif) 我们可以利用分词技术将 ![](/icons/36006zifu.gif) 串分成若干个单词 ![](/icons/36006dou.gif) 每个独立 ![](/icons/36006de.gif) 单词作为 2元变量 ![](/icons/36006de.gif) ![](/icons/36006yi.gif) 个属性 ![](/icons/36006dou2.gif) 我们把所有单词设定为 ![](/icons/36006yi.gif) 个 2元变量属性集合R ![](/icons/36006dou.gif) ![](/icons/36006zifu.gif) 串1和 ![](/icons/36006zifu.gif) 串2 ![](/icons/36006de.gif) 单词包含于这个集合R ![](/icons/36006dou2.gif) 设q是 ![](/icons/36006zifu.gif) 串1和 ![](/icons/36006zifu.gif) 串2中都存在 ![](/icons/36006de.gif) 单词 ![](/icons/36006de.gif) 总数 ![](/icons/36006dou.gif) s是 ![](/icons/36006zifu.gif) 串1中存在 ![](/icons/36006dou.gif) ![](/icons/36006zifu.gif) 串2中不存在 ![](/icons/36006de.gif) 单词总数 ![](/icons/36006dou.gif) r是 ![](/icons/36006zifu.gif) 串2中存在 ![](/icons/36006dou.gif) ![](/icons/36006zifu.gif) 串1中不存在 ![](/icons/36006de.gif) 单词总数 ![](/icons/36006dou.gif) t是 ![](/icons/36006zifu.gif) 串1和 ![](/icons/36006zifu.gif) 串2中都不存在 ![](/icons/36006de.gif) 单词总数 ![](/icons/36006dou2.gif) 我们称 q,r,s,t为 ![](/icons/36006zifu.gif) 串比较中 ![](/icons/36006de.gif) 4个状态分量 ![](/icons/36006dou2.gif) 如图1所示: 由于两个 ![](/icons/36006zifu.gif) 串都不存在 ![](/icons/36006de.gif) 单词对两个 ![](/icons/36006zifu.gif) 串 ![](/icons/36006de.gif) 比较没有任何作用 ![](/icons/36006dou.gif) 所以忽略t ![](/icons/36006dou.gif) 于是我们采用非恒定 ![](/icons/36006de.gif) 相似度评价系数(Jaccard系数)来描述两个 ![](/icons/36006zifu.gif) 串见 ![](/icons/36006de.gif) 相异度表示公式为 相异度 = r+s / (q+r+s) ![](/icons/36006dou.gif) 不难推断 ![](/icons/36006dou.gif) 他们 ![](/icons/36006de.gif) 形似度公式为 相似度=q/(q+r+s) 公式1 ![](http://www.crazycoder.cn/WebFiles/20091/084fc776-38a9-480e-abaa-f62e07f1415e.jpg) 同义词问题 在语言中 ![](/icons/36006dou.gif) 同义词是经常遇到 ![](/icons/36006de.gif) 问题 ![](/icons/36006dou.gif) 如果两个 ![](/icons/36006zifu.gif) 串中存在同义词 ![](/icons/36006dou.gif) 其相似度又如何计算呢 ![](/icons/36006dou2.gif) 对于同义词问题 ![](/icons/36006dou.gif) 我们要从分词过程中来解决 ![](/icons/36006dou2.gif) 首先我们需要构建 ![](/icons/36006yi.gif) 个同义词对照表 ![](/icons/36006dou.gif) 将同义词对应到 ![](/icons/36006yi.gif) 个等价单词 ![](/icons/36006dou.gif) 在对 ![](/icons/36006zifu.gif) 串分词后对 ![](/icons/36006zifu.gif) 串中 ![](/icons/36006de.gif) 所有单词到同义词表中查找 ![](/icons/36006dou.gif) 如果存在 ![](/icons/36006dou.gif) 则替换为对应 ![](/icons/36006de.gif) 等价单词 ![](/icons/36006dou.gif) 这样分词后 ![](/icons/36006dou.gif) 两个 ![](/icons/36006zifu.gif) 串中 ![](/icons/36006de.gif) 同义词就指向了相同 ![](/icons/36006de.gif) 单词 ![](/icons/36006dou2.gif) 比如存在同义词表如下: 单词 等价词 也许 也许 或许 也许 可能 也许 ![](/icons/36006zifu.gif) 串1:他也许不来了 ![](/icons/36006zifu.gif) 串2:他可能不来了 分词后 2元属性关系表如下: ![](/icons/36006zifu.gif) 串/属性 他 也许 不来 了 他也许不来了 Y Y Y Y 他可能不来了 Y Y Y Y 不难看出 ![](/icons/36006dou.gif) 两个 ![](/icons/36006zifu.gif) 串 ![](/icons/36006de.gif) 相似度为 100% 同音区别义 在中文网络环境中 ![](/icons/36006dou.gif) 由于大多数网络文章 ![](/icons/36006de.gif) 作者都是采用拼音输入法输入汉字 ![](/icons/36006dou.gif) 经常会出现输入同音区别义 ![](/icons/36006de.gif) 文字 ![](/icons/36006cuowu.gif) ![](/icons/36006dou.gif) 为了纠正这种 ![](/icons/36006cuowu.gif) ![](/icons/36006dou.gif) 我们可以考虑采用汉语拼音 ![](/icons/36006de.gif) 方式进行分词 ![](/icons/36006dou.gif) 也可以综合分词 ![](/icons/36006dou.gif) 也就是先正常分词 ![](/icons/36006dou.gif) 在拼音分词 ![](/icons/36006dou.gif) ![](/icons/36006zifu.gif) 串 ![](/icons/36006de.gif) 分词结果去两者 ![](/icons/36006de.gif) 并集 ![](/icons/36006dou2.gif) 小节 确定 ![](/icons/36006zifu.gif) 串相似度 ![](/icons/36006de.gif) 思路方法很多 ![](/icons/36006dou.gif) 本文根据作者多年从事数据挖掘工作 ![](/icons/36006de.gif) 经验结合数据挖掘理论提出 ![](/icons/36006de.gif) 相关解决方案 ![](/icons/36006dou.gif) 可以较好 ![](/icons/36006de.gif) 解决中文 ![](/icons/36006zifu.gif) 串分析中 ![](/icons/36006de.gif) 相似度比较问题 ![](/icons/36006dou2.gif) 但技术 ![](/icons/36006de.gif) 发展是不断前进 ![](/icons/36006de.gif) ![](/icons/36006dou.gif) 相信未来还会有更好 ![](/icons/36006de.gif) 思路方法来解决中文 ![](/icons/36006zifu.gif) 串相似度比较问题 ![](/icons/36006dou2.gif) 读者如果有更好 ![](/icons/36006de.gif) 想法或者发现本文算法中 ![](/icons/36006de.gif) 不足 ![](/icons/36006dou.gif) 非常欢迎和本文作者联系 ![](/icons/36006dou2.gif) 参考文献 ![](/icons/36006smhl.gif) 数据挖掘概念和技术 ![](/icons/36006smhr.gif) 机械工业出版社 Jiawei Han, Micheline Kamber
相关文章
读者评论
发表评论
|
|