本文实现代码:利用word分词提供的文本类似度算法来辅助记忆英语单词java
本文使用的英语单词囊括了几乎全部的考纲词汇共18123词:git
/** * 考纲词汇 * @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"); }
启动程序后控制台输出:github
---------------------------------------------------------- ---------------------------------------------------------- 可经过输入命令sa=edi来指定类似度算法,可用的算法有: 一、sa=edi,编辑距离 二、sa=ja,Jaro距离 三、sa=jaw,Jaro–Winkler距离 可经过输入命令sa=all来启用全部的类似度算法 可经过输入命令limit=45来指定显示结果条数 可经过输入命令exit退出程序 输入要查询的词或命令:
咱们输入sa=all命令,回车肯定,而后再次输入单词love后回车:算法
sa=all 启用全部的类似度算法 love
接着就会输出使用3种不一样的类似度算法计算出来的love的类似词:oop
计算类似词:love 显示结果数目:45 ---------------------------------------------------------- ---------------------------------------------------------- love 的类似词(EditDistanceTextSimilarity): 一、1.0 love 二、0.8 lover 三、0.8 glove 四、0.75 rove 五、0.75 lave 六、0.75 dove 七、0.75 live 八、0.75 move 九、0.75 lobe 十、0.75 lode 十一、0.75 lone 十二、0.75 lope 1三、0.75 lore 1四、0.75 lose 1五、0.666667 alcove 1六、0.666667 sloven 1七、0.666667 lovely 1八、0.6 shove 1九、0.6 loose 20、0.6 alive 2一、0.6 levee 2二、0.6 level 2三、0.6 lever 2四、0.6 loser 2五、0.6 above 2六、0.6 slave 2七、0.6 alone 2八、0.6 lower 2九、0.6 solve 30、0.6 trove 3一、0.6 rover 3二、0.6 drove 3三、0.6 movie 3四、0.6 globe 3五、0.6 leave 3六、0.6 prove 3七、0.6 hover 3八、0.6 hovel 3九、0.6 novel 40、0.6 slope 4一、0.6 cover 4二、0.6 coven 4三、0.6 covey 4四、0.6 covet 4五、0.6 close 耗时:125毫秒 ---------------------------------------------------------- ---------------------------------------------------------- love 的类似词(JaroDistanceTextSimilarity): 一、1.0 owl 二、1.0 love 三、0.933333 lover 四、0.833333 rove 五、0.833333 lave 六、0.833333 dove 七、0.833333 live 八、0.833333 move 九、0.833333 lobe 十、0.833333 lode 十一、0.833333 lone 十二、0.833333 lope 1三、0.833333 lore 1四、0.833333 lose 1五、0.8 lovely 1六、0.783333 levee 1七、0.783333 lever 1八、0.783333 loser 1九、0.783333 lower 20、0.783333 rover 2一、0.783333 hover 2二、0.783333 hovel 2三、0.783333 novel 2四、0.783333 cover 2五、0.783333 coven 2六、0.783333 covey 2七、0.783333 covet 2八、0.783333 liver 2九、0.783333 Dover 30、0.75 covert 3一、0.75 lively 3二、0.75 lonely 3三、0.75 govern 3四、0.75 loving 3五、0.72619 poverty 3六、0.72619 novelty 3七、0.72619 lovable 3八、0.72619 covered 3九、0.708333 coverage 40、0.708333 novelist 4一、0.708333 leverage 4二、0.708333 lovingly 4三、0.708333 covenant 4四、0.708333 governor 4五、0.708333 November 耗时:200毫秒 ---------------------------------------------------------- ---------------------------------------------------------- love 的类似词(JaroWinklerDistanceTextSimilarity): 一、1.0 love 二、0.96 lover 三、0.933333 lovely 四、0.866667 lobe 五、0.866667 lode 六、0.866667 lone 七、0.866667 lope 八、0.866667 lore 九、0.866667 lose 十、0.85 live 十一、0.833333 rove 十二、0.833333 move 1三、0.833333 November 1四、0.826667 loser 1五、0.826667 lower 1六、0.825 loving 1七、0.808333 lovable 1八、0.805 levee 1九、0.805 level 20、0.805 liver 2一、0.795833 lovingly 2二、0.783333 hover 2三、0.783333 hovel 2四、0.783333 novel 2五、0.783333 cover 2六、0.783333 coven 2七、0.783333 covey 2八、0.783333 covet 2九、0.783333 Dover 30、0.75 covert 3一、0.75 govern 3二、0.746667 loneliness 3三、0.7375 lavender 3四、0.7375 leverage 3五、0.733333 loan 3六、0.733333 loaf 3七、0.733333 loam 3八、0.733333 lock 3九、0.733333 logo 40、0.733333 loft 4一、0.733333 long 4二、0.733333 loll 4三、0.733333 loon 4四、0.733333 loom 4五、0.733333 loop 耗时:167毫秒 ---------------------------------------------------------- ----------------------------------------------------------