[英]How do I compare these two strings in python?
在抓取RSS
Feed时,我不希望将重复项添加到我的列表中。 问题是我的if title not in mylist
行中检测到一些重复项,因为它们略有不同。 尽管如此,这两个新闻项目基本相同。 看看这两个。
"Kom igjen, norsk ungdom, de eldre trenger oss!"
和
"Kom igjen norsk ungdom, de eldre trenger oss"
如你所见,第一个在Kom igjen
之后有逗号,而第二个没有,并且在结尾有一个感叹号。
由于没有其他唯一ID使单个项目唯一,我不知道如何检测上述重复项。
Python有一个SequenceMatcher内置:
from difflib import SequenceMatcher
SequenceMatcher(None, "Hello you!", "Hello you").ratio()
0.9473684210526315
SequenceMatcher(None, "Apple", "Orange").ratio()
0.18181818181818182
因此,您可以循环所有并将比率与某个阈值进行比较。
在将新闻添加到列表中以删除标点符号之前,您可以使用str.translate
方法:
>>> s1.translate(None, string.punctuation)
'Kom igjen norsk ungdom de eldre trenger oss'
在这种情况下,您将根据他们的字母对比您的文本。
在python 3中,您可以:
>>> s1.translate(dict.fromkeys(map(ord,string.punctuation),None))
'Kom igjen norsk ungdom de eldre trenger oss'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.