Python 参数';字符串';具有不正确的类型(应为str、get list)Spacy NLP
我想计算余弦相似性,但在将dataframe列转换为其列表后收到一条错误消息:参数“string”的类型不正确(应为str,Get list)Python 参数';字符串';具有不正确的类型(应为str、get list)Spacy NLP,python,list,nlp,Python,List,Nlp,我想计算余弦相似性,但在将dataframe列转换为其列表后收到一条错误消息:参数“string”的类型不正确(应为str,Get list) 非常感谢有人帮我修复它,谢谢。让函数在整个pd.Series中运行的方法是使用.apply()。您可以链接.apply()调用 例如: # changing to strings instead of nested list l = ['24, Single, Consultant, Canada, I am interested in visiting
非常感谢有人帮我修复它,谢谢。让函数在整个
pd.Series
中运行的方法是使用.apply()
。您可以链接.apply()
调用
例如:
# changing to strings instead of nested list
l = ['24, Single, Consultant, Canada, I am interested in visiting Isreal again',
'18, Single, Student, I want to go back Costa Rica again',
'45,Married, Unemployed, I want to take my family to Florida for the summer vacation']
# remove stop words and punctuation for later similarity calculations
df_spacy = df['Free Text'].apply(nlp)\
.apply(lambda doc: nlp(' '.join(str(t)
for t in doc
if not t.is_stop
and not t.is_punct)))
编辑:根据您的评论,以下是每行与所有其他行之间的相似度计算:
df_spacy.apply(lambda row: df_spacy\
.apply(lambda doc: row.similarity(doc) if row != doc else None))
结果相似性矩阵:
0 1 2
0 NaN 0.776098 0.716560
1 0.776098 NaN 0.705024
2 0.716560 0.705024 NaN
谢谢你的回答。我想得到一份包含三个要素的清单:['24,单身,顾问,加拿大,我有兴趣再次访问以色列,'18,单身,学生,我想再次回到哥斯达黎加,'45,已婚,失业,我想带家人去佛罗里达度暑假'],然后我可以应用相似性()来比较这三个要素。我能做吗?谢谢你看到更新的答案。我相信您希望将每一行的
相似性()
计算应用于所有其他行。非常好。我还有一个问题。如果我有第二列,但我想应用相同的功能:1)删除停止字和标点符号,2)每个列的相似性(比较自己列中的行),然后将它们保存在相同的位置。谢谢,我很抱歉,我不能完全理解你在这个额外的问题中提出的问题。不用担心,最好打开另一个论坛进行讨论。非常感谢。它对我非常有效。
0 1 2
0 NaN 0.776098 0.716560
1 0.776098 NaN 0.705024
2 0.716560 0.705024 NaN