目录
1、编辑距离、汉明距离、sorensen相似系数、jaccard系数、ifast_comp
distance的简介
这个包为计算任意序列之间的相似性提供了帮助。包括Levenshtein、Hamming、Jaccard和Sorensen distance,以及一些bonuses。所有的距离计算都是用纯Python实现的,而且大多数都是用C语言实现的。
distance的安装
pip install distance
distance的使用方法
1、编辑距离、汉明距离、sorensen相似系数、jaccard系数、ifast_comp
1. 2. import distance 3. 4. 5. #T1、编辑距离 6. levenshtein_res01=distance.levenshtein("lenvestein", "levenshtein") 7. 8. #如果您的语言中的声音和字形之间没有一对一的映射,或者如果您想比较的不是字形,而是音节或音素,则可以传入字符元组: 9. #比较字符串列表对于计算句子、段落等之间的相似性也很有用: 10. sent1 = ['the', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog'] 11. sent2 = ['the', 'lazy', 'fox', 'jumps', 'over', 'the', 'crazy', 'dog'] 12. levenshtein_res02=distance.levenshtein(sent1, sent2) 13. 14. levenshtein_res03=distance.nlevenshtein("abc", "acd", method=1) # shortest alignment 15. levenshtein_res04=distance.nlevenshtein("abc", "acd", method=2) # longest alignment 16. 17. print(levenshtein_res01,levenshtein_res02,levenshtein_res03,levenshtein_res04) 18. 19. 20. #T2、汉明距离 21. ''' 22. Hamming距离和Levenshtein距离可以被标准化,这样就可以有意义地比较几种距离测量的结果。 23. Levenshtein有两种策略:要么以序列间最短比对的长度作为因子,要么以较长比对的长度作为因子。 24. ''' 25. hamming_res01=distance.hamming("hamming", "hamning") 26. hamming_res02=distance.hamming("fat", "cat", normalized=True) 27. 28. print(hamming_res01,hamming_res02) 29. 30. 31. #T3、sorensen相似系数 32. sorensen_res=distance.sorensen("decide", "resize") 33. print(sorensen_res) 34. 35. #T4、jaccard系数 36. jaccard_res=distance.jaccard("decide", "resize") 37. print(jaccard_res) 38. 39. #T5、ifast_comp 40. ''' 41. ifast_comp的效率特别高,可以处理100万个tokens而没有问题 42. 两个方便的迭代器ilevenshtein和ifast_comp,用于从一长串序列中筛选接近参考序列的序列。它们都返回一系列元组(距离、序列)。 43. ''' 44. tokens = ["fo", "bar", "foob", "foo", "fooba", "foobar"] 45. sorted(distance.ifast_comp("foo", tokens)) 46.