python程序如何找出两个文本中相同的词。

1 你好 小明 学习 非常 好
2 你好 小红 学习 非常 棒
例如上面两个已经用分词工具处理好的文本,最后希望得到的结果输出是 3(因为这两个文本有三个相同的词)求一个解决这个问题的python程序,或者思路也可以。非常感谢

7个回答

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)

rayfay
rayfay set直接定义成集合了,如果listone中有本身有重复比如两个'a',而listtwo中也是有两个’a;,那么这个方法就不对了
一年多之前 回复

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))

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问