我有一些很难看的弦类似于这些:
string1 = 'Fantini, Rauch, C.Straus, Priuli, Bertali: 'Festival Mass at the Imperial Court of Vienna, 1648' (Yorkshire Bach Choir & Baroque Soloists + Baroque Brass of London/Seymour)'
string2 = 'Vinci, Leonardo {c.1690-1730}: Arias from Semiramide Riconosciuta, Didone Abbandonata, La Caduta dei Decemviri, Lo Cecato Fauzo, La Festa de Bacco, Catone in Utica. (Maria Angeles Peters sop. w.M.Carraro conducting)'
我想要一个库或算法,将给我一个百分比,他们有多少共同的单词,同时排除特殊字符,如','
和{
我知道Levenshtein algorithm。然而,这将比较相似字符的数量,而我想比较它们有多少共同点
Lenvenshtein algorithm本身并不局限于比较字符,它可以比较任意对象。事实上,经典形式使用字符是一个实现细节,它们可以是任何符号或结构,可以比较为平等。在
在Python中,将字符串转换为单词列表,然后将算法应用于列表。也许其他人可以帮助您清理不需要的字符,大概是使用一些正则表达式魔术。在
(1:How to remove symbols from a string with Python?)
编辑:请注意,如果一个单词出现在两个句子中的任何地方,那么它将被视为两个句子的共同点-要比较位置,可以省略设置转换(只需对两个语句调用split()),使用类似于:
^{pr2}$Regex可以很容易地为您提供以下所有单词:
^{pr2}$collections.Counter
(Python 2.7+)可以快速计算一个单词出现的次数。在一个非常粗糙的比较可以通过
set.intersection
或difflib.SequenceMatcher
来完成,但听起来你想实现一个处理单词的Levenshtein算法,你可以使用这两个列表。在打印:
3.4% of words similar.
相关问题 更多 >
编程相关推荐