博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
superword开源项目中的定义相似规则
阅读量:6122 次
发布时间:2019-06-21

本文共 1694 字,大约阅读时间需要 5 分钟。

两个词之间的关系有同义、反义、近义(有多近?)、相关(有多相关?)等等。我们如何来判断两个词之间的关系呢?利用计算机能自动找出这种关系吗?当然可以,不仅能找出来,而且还能量化出有多近和有多相关。

本文描述了superword开源项目中的定义相似规则,利用词的定义计算词和词之间的相似性。词的定义使用的是韦氏词典,同时也支持牛津词典。相似性算法使用的是word分词提供的10大相似性算法。

定义相似规则主要包括以下6步:

1、获取要计算的词的定义:

String wordDefinition = MySQLUtils.getWordDefinition(word, WordLinker.Dictionary.WEBSTER.name());

2、获取分级词汇,分级词汇的具体定义见这里:

Set
words = (Set
)application.getAttribute("words_"+request.getAttribute("words_type"));

3、获取分级词汇的定义,代码见这里:

List
allWordDefinition = MySQLUtils.getAllWordDefinition(WordLinker.Dictionary.WEBSTER.name(), words);

4、从word分词提供的10大相似性算法中任选一个,同时指定使用word分词提供的针对纯英文的分词器:

TextSimilarity textSimilarity = new CosineTextSimilarity();textSimilarity.setSegmentationAlgorithm(SegmentationAlgorithm.PureEnglish);

5、计算相似性,返回最相似的100个单词:

int count = 100;Hits result = textSimilarity.rank(wordDefinition, allWordDefinition, count);

6、输出计算结果:

StringBuilder temp = new StringBuilder();int i=1;temp.append("
"); temp.append("
\n");for(Hit hit : result.getHits()){ String[] attrs = hit.getText().split("_"); String w = attrs[0]; StringBuilder definition = new StringBuilder(attrs[1]); for(int j=2; j
\n"); temp.append("
\n");}temp.append("
").append(i++) .append(". ") .append(WordLinker.toLink(w)) .append(" ") .append(definition) .append(" ") .append(hit.getScore()) .append(" ") .append("相似") .append("
\n");htmlFragment = temp.toString();

计算效果如下图所示:

1、使用韦氏词典的定义

image

2、使用爱词霸的定义

image

3、使用有道词典的定义

image

文章转载自 开源中国社区[https://www.oschina.net]

你可能感兴趣的文章
从无到有,WebService Apache Axis2初步实践
查看>>
任务调度(一)——jdk自带的Timer
查看>>
UIKit框架(15)PCH头文件
查看>>
整理看到的好的文档
查看>>
Linux磁盘管理和文件系统管理
查看>>
从一个
查看>>
MongoDB 第三周作业——用java操作MongoDB之删除数组中的元素
查看>>
三、基于802.1x+AD+NPS+DHCP动态下发VLAN配置 (第3篇、添加角色NPS并设置)
查看>>
Windows开启SNMP服务----Win7
查看>>
体重档案应用客户端源码
查看>>
在linux中添加ftp用户,以及修改FTP默认端口号
查看>>
N26-第一周作业
查看>>
4月11日中高项作业
查看>>
华为交换机AAA特性与思科ACS对接
查看>>
二:Unit 8
查看>>
TortoiseSVN客户端重新设置用户名和密码
查看>>
nagios邮件报警配置
查看>>
Java 生产条形码代码
查看>>
python web开发-flask连接sqlite数据库
查看>>
Zxing二维码扫描
查看>>