1 你好 小明 学习 非常 好
2 你好 小红 学习 非常 棒
例如上面两个已经用分词工具处理好的文本,最后希望得到的结果输出是 3(因为这两个文本有三个相同的词)求一个解决这个问题的python程序,或者思路也可以。非常感谢
listone=['你好','小明','学习','非常','好']
listtwo=['你好','小红','学习','非常','棒']
len(set(listone)&set(listtwo))
如果你两个文本的数据量不是很大,那么可以把文本分别按空格分割后每个单词添加到set集合,然后将这两个集合做与(&)操作。 最后与操作完后的集合就是相同值。大小为3.
弄成字符串,再用取交集的运算符就行,用set函数把字符串变为集合。
不好意思 刚刚看理解错了
listone = ['a','b','d','e','f']
listtwo = ['a','c','d','e','5']
set_listone = set(listone)
set_listtwo = set(listtwo)
listone_listtwo = set_listone & set_listtwo
print len(listone_listtwo)
listone = ['a','b','d','e','f']
listtwo = ['a','c','d','e','5']
for i in range(len(listone)-1,-1,-1):
listthree = []
if listone[i] not in listtwo[i]:
listone.pop(i)
print len(listone)
参考:
strs1="1 你好 小明 学习 非常 好"
strs2="2 你好 小红 学习 非常 棒"
array1=strs1.split(" ")
array2=strs2.split(" ")
len(set(array1).intersection(set(array2)))
将文本处理成set的形式,然后取交集即可。
newset = set(list1).intersection(set(list2))
print(len(newset))