TypeError 尝试使用 for 循环比较文本
TypeError trying to compare texts using for loop
我正在尝试比较从不同网站抓取的文本。
我有一个从数据框中的列中获取的文本列表。为了比较此列表中的文本,我尝试使用相似性(我不知道是否有另一种方法可以做到这一点)。
这是代码:
from difflib import SequenceMatcher
titles = filtered_dataset['Titles'].tolist()
def similar(a, b):
return SequenceMatcher(None, a, b).ratio()
def get_jaccard_sim(str1, str2):
a = set(str1.split())
b = set(str2.split())
c = a.intersection(b)
return float(len(c)) / (len(a) + len(b) - len(c))
similarities=[]
j_similarities=[]
for title in titles:
similarity=similar(title, title+1)
jacc_similarity=get_jaccard_sim(title, title+1) # I would like to compare the first text to the others; then the second one, and so on...
我遇到以下错误:
TypeError: can only concatenate str (not "int") to str
因为
similarity=similar(title, title+1)
jacc_similarity=get_jaccard_sim(title, title+1)
你能帮我修正比较文本的错误吗?
好吧,您正在连接字符串和整数,这就是它通过错误的原因。这里的标题是字符串,1 是一个整数,您可以在代码下方使用它来避免错误
similarity=similar(title, title+str(1))
jacc_similarity=get_jaccard_sim(title, title+str(1))
您添加 title (String) 和 1 (int ) 但在 python 中你不能添加 string 和 integer 如果你想将字符串添加到整数更改整数到字符串。例如:"sampleString"+str(1) = "sampleString1",str() 函数将 1 更改为 '1'。所以这里 type("sampleString") 是字符串,type(str(1)) 是字符串。所以你可以把两个字符串加在一起。
使用此代码
similarity=similar(title, title+str(1))
jacc_similarity=get_jaccard_sim(title, title+str(1))
谢谢。
我正在尝试比较从不同网站抓取的文本。 我有一个从数据框中的列中获取的文本列表。为了比较此列表中的文本,我尝试使用相似性(我不知道是否有另一种方法可以做到这一点)。 这是代码:
from difflib import SequenceMatcher
titles = filtered_dataset['Titles'].tolist()
def similar(a, b):
return SequenceMatcher(None, a, b).ratio()
def get_jaccard_sim(str1, str2):
a = set(str1.split())
b = set(str2.split())
c = a.intersection(b)
return float(len(c)) / (len(a) + len(b) - len(c))
similarities=[]
j_similarities=[]
for title in titles:
similarity=similar(title, title+1)
jacc_similarity=get_jaccard_sim(title, title+1) # I would like to compare the first text to the others; then the second one, and so on...
我遇到以下错误:
TypeError: can only concatenate str (not "int") to str
因为
similarity=similar(title, title+1)
jacc_similarity=get_jaccard_sim(title, title+1)
你能帮我修正比较文本的错误吗?
好吧,您正在连接字符串和整数,这就是它通过错误的原因。这里的标题是字符串,1 是一个整数,您可以在代码下方使用它来避免错误
similarity=similar(title, title+str(1))
jacc_similarity=get_jaccard_sim(title, title+str(1))
您添加 title (String) 和 1 (int ) 但在 python 中你不能添加 string 和 integer 如果你想将字符串添加到整数更改整数到字符串。例如:"sampleString"+str(1) = "sampleString1",str() 函数将 1 更改为 '1'。所以这里 type("sampleString") 是字符串,type(str(1)) 是字符串。所以你可以把两个字符串加在一起。
使用此代码
similarity=similar(title, title+str(1))
jacc_similarity=get_jaccard_sim(title, title+str(1))
谢谢。