利用word分词提供的文本相似度算法来辅助记忆英语单词

本文实现代码:利用word分词提供的文本相似度算法来辅助记忆英语单词

本文使用的英语单词囊括了几乎所有的考纲词汇共18123词:

/**
 * 考纲词汇
 * @return
 */
public static Set<Word> getSyllabusVocabulary(){
    return get("/word_primary_school.txt",
            "/word_junior_school.txt",
            "/word_senior_school.txt",
            "/word_university.txt",
            "/word_new_conception.txt",
            "/word_ADULT.txt",
            "/word_CET4.txt",
            "/word_CET6.txt",
            "/word_TEM4.txt",
            "/word_TEM8.txt",
            "/word_CATTI.txt",
            "/word_GMAT.txt",
            "/word_GRE.txt",
            "/word_SAT.txt",
            "/word_BEC.txt",
            "/word_MBA.txt",
            "/word_IELTS.txt",
            "/word_TOEFL.txt",
            "/word_TOEIC.txt",
            "/word_考 研.txt");
}

启动程序后控制台输出:

----------------------------------------------------------
----------------------------------------------------------
可通过输入命令sa=edi来指定相似度算法,可用的算法有:
   1、sa=edi,编辑距离
   2、sa=ja,Jaro距离
   3、sa=jaw,Jaro–Winkler距离
可通过输入命令sa=all来启用所有的相似度算法
可通过输入命令limit=45来指定显示结果条数
可通过输入命令exit退出程序
输入要查询的词或命令:

我们输入sa=all命令,回车确定,然后再次输入单词love后回车:

sa=all
启用所有的相似度算法
love

接着就会输出使用3种不同的相似度算法计算出来的love的相似词:

计算相似词:love
显示结果数目:45
----------------------------------------------------------
----------------------------------------------------------
love 的相似词(EditDistanceTextSimilarity):
	1、1.0 love
	2、0.8 lover
	3、0.8 glove
	4、0.75 rove
	5、0.75 lave
	6、0.75 dove
	7、0.75 live
	8、0.75 move
	9、0.75 lobe
	10、0.75 lode
	11、0.75 lone
	12、0.75 lope
	13、0.75 lore
	14、0.75 lose
	15、0.666667 alcove
	16、0.666667 sloven
	17、0.666667 lovely
	18、0.6 shove
	19、0.6 loose
	20、0.6 alive
	21、0.6 levee
	22、0.6 level
	23、0.6 lever
	24、0.6 loser
	25、0.6 above
	26、0.6 slave
	27、0.6 alone
	28、0.6 lower
	29、0.6 solve
	30、0.6 trove
	31、0.6 rover
	32、0.6 drove
	33、0.6 movie
	34、0.6 globe
	35、0.6 leave
	36、0.6 prove
	37、0.6 hover
	38、0.6 hovel
	39、0.6 novel
	40、0.6 slope
	41、0.6 cover
	42、0.6 coven
	43、0.6 covey
	44、0.6 covet
	45、0.6 close
耗时:125毫秒
----------------------------------------------------------
----------------------------------------------------------
love 的相似词(JaroDistanceTextSimilarity):
	1、1.0 owl
	2、1.0 love
	3、0.933333 lover
	4、0.833333 rove
	5、0.833333 lave
	6、0.833333 dove
	7、0.833333 live
	8、0.833333 move
	9、0.833333 lobe
	10、0.833333 lode
	11、0.833333 lone
	12、0.833333 lope
	13、0.833333 lore
	14、0.833333 lose
	15、0.8 lovely
	16、0.783333 levee
	17、0.783333 lever
	18、0.783333 loser
	19、0.783333 lower
	20、0.783333 rover
	21、0.783333 hover
	22、0.783333 hovel
	23、0.783333 novel
	24、0.783333 cover
	25、0.783333 coven
	26、0.783333 covey
	27、0.783333 covet
	28、0.783333 liver
	29、0.783333 Dover
	30、0.75 covert
	31、0.75 lively
	32、0.75 lonely
	33、0.75 govern
	34、0.75 loving
	35、0.72619 poverty
	36、0.72619 novelty
	37、0.72619 lovable
	38、0.72619 covered
	39、0.708333 coverage
	40、0.708333 novelist
	41、0.708333 leverage
	42、0.708333 lovingly
	43、0.708333 covenant
	44、0.708333 governor
	45、0.708333 November
耗时:200毫秒
----------------------------------------------------------
----------------------------------------------------------
love 的相似词(JaroWinklerDistanceTextSimilarity):
	1、1.0 love
	2、0.96 lover
	3、0.933333 lovely
	4、0.866667 lobe
	5、0.866667 lode
	6、0.866667 lone
	7、0.866667 lope
	8、0.866667 lore
	9、0.866667 lose
	10、0.85 live
	11、0.833333 rove
	12、0.833333 move
	13、0.833333 November
	14、0.826667 loser
	15、0.826667 lower
	16、0.825 loving
	17、0.808333 lovable
	18、0.805 levee
	19、0.805 level
	20、0.805 liver
	21、0.795833 lovingly
	22、0.783333 hover
	23、0.783333 hovel
	24、0.783333 novel
	25、0.783333 cover
	26、0.783333 coven
	27、0.783333 covey
	28、0.783333 covet
	29、0.783333 Dover
	30、0.75 covert
	31、0.75 govern
	32、0.746667 loneliness
	33、0.7375 lavender
	34、0.7375 leverage
	35、0.733333 loan
	36、0.733333 loaf
	37、0.733333 loam
	38、0.733333 lock
	39、0.733333 logo
	40、0.733333 loft
	41、0.733333 long
	42、0.733333 loll
	43、0.733333 loon
	44、0.733333 loom
	45、0.733333 loop
耗时:167毫秒
----------------------------------------------------------
----------------------------------------------------------
时间: 2024-10-29 19:09:03

利用word分词提供的文本相似度算法来辅助记忆英语单词的相关文章

基于word分词提供的文本相似度算法来实现通用的网页相似度检测

实现代码:基于word分词提供的文本相似度算法来实现通用的网页相似度检测 运行结果: 检查的博文数:128 1.检查博文:192本软件著作用词分析(五)用词最复杂99级,相似度分值:Simple=0.968589 Cosine=0.955598 EditDistance=0.916884 EuclideanDistance=0.00825 ManhattanDistance=0.001209 Jaccard=0.859838 JaroDistance=0.824469 JaroWinklerDi

利用word分词来计算文本相似度

word分词提供了两种文本相似度计算方式: 方式一:余弦相似度,通过计算两个向量的夹角余弦值来评估他们的相似度 实现类:org.apdplat.word.analysis.CosineTextSimilarity 用法如下: String text1 = "我爱学习"; String text2 = "我爱读书"; String text3 = "他是黑客"; TextSimilarity textSimilarity = new CosineT

利用word分词来对文本进行词频统计

word分词中的 org.apdplat.word.WordFrequencyStatistics 类提供了词频统计的功能 命令行脚本的调用方法如下: 将需要统计词频的文本写入文件:text.txt chmod +x wfs.sh & wfs.sh -textFile=text.txt -statisticsResultFile=statistics-result.txt 程序运行结束后打开文件statistics-result.txt查看词频统计结果 在程序中的调用方法如下: //词频统计设置

转:文本相似度算法

文本相似度算法 原文出自:http://www.cnblogs.com/liangxiaxu/archive/2012/05/05/2484972.html 1.信息检索中的重要发明TF-IDF 1.1TF Term frequency即关键词词频,是指一篇文章中关键词出现的频率,比如在一篇M个词的文章中有N个该关键词,则 (公式1.1-1) 为该关键词在这篇文章中的词频. 1.2IDF Inverse document frequency指逆向文本频率,是用于衡量关键词权重的指数,由公式 (公

利用word分词通过计算词的语境来获得相关词

我们如何通过计算词的语境来获得相关词呢? 语境的定义是:在一段文本中,任意一个词的语境由它的前N个词和后N个词组成. 相关词的定义是:如果两个词的语境越相似,那么这两个词就越相似,也就越相关. 算法由两个步骤组成: 1.从大规模语料库中计算每一个词的语境,并使用词向量来表示语境.实现代码 2.把求两个词的相似度的问题转换为求这两个词的语境的相似度的问题.通过计算语境的相似度,就可得到词的相似度,越相似的词就越相关.实现代码 关于相似度计算,word分词还提供了很多种算法,参考这里 使用方法如下:

.NET下文本相似度算法余弦定理和SimHash浅析及应用

在数据采集及大数据处理的时候,数据排重.相似度计算是很重要的一个环节,由此引入相似度计算算法.常用的方法有几种:最长公共子串(基于词条空间).最长公共子序列(基于权值空间.词条空间).最少编辑距离法(基于词条空间).汉明距离(基于权值空间).余弦值(基于权值空间)等,今天我们着重介绍最后两种方式. 余弦相似性 原理:首先我们先把两段文本分词,列出来所有单词,其次我们计算每个词语的词频,最后把词语转换为向量,这样我们就只需要计算两个向量的相似程度. 我们简单表述如下 文本1:我/爱/北京/天安门/

自己实现文本相似度算法(余弦定理)

最近由于工作项目,需要判断两个txt文本是否相似,于是开始在网上找资料研究,因为在程序中会把文本转换成String再做比较,所以最开始找到了这篇关于 距离编辑算法 Blog写的非常好,受益匪浅. 于是我决定把它用到项目中,来判断两个文本的相似度.但后来实际操作发现有一些问题:直接说就是查询一本书中的相似章节花了我7.8分钟:这是我不能接受…… 于是停下来仔细分析发现,这种算法在此项目中不是特别适用,由于要判断一本书中是否有相同章节,所以每两个章节之间都要比较,若一本书书有x章的话,这里需对比x(

(待解决)leecode 分词利用词典分词 word break

不戚戚于贫贱,不汲汲于富贵      ---五柳先生 Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words. For example, givens = "leetcode",dict = ["leet", "code&qu

python 用gensim进行文本相似度分析

http://blog.csdn.net/chencheng126/article/details/50070021 参考于这个博主的博文. 原理 1.文本相似度计算的需求始于搜索引擎. 搜索引擎需要计算"用户查询"和爬下来的众多"网页"之间的相似度,从而把最相似的排在最前返回给用户. 2.主要使用的算法是tf-idf tf:term frequency 词频 idf:inverse document frequency 倒文档频率 主要思想是:如果某个词或短语在一