ytuchenkai
0712111
采纳率75%
2018-01-24 11:06 阅读 5.3k

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

20

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

7条回答 默认 最新

  • 已采纳
    pancocoa pancocoa 2018-01-24 11:25

    listone=['你好','小明','学习','非常','好']
    listtwo=['你好','小红','学习','非常','棒']
    len(set(listone)&set(listtwo))

    点赞 8 评论 复制链接分享
  • gongbenfei gongbenfei 2018-01-24 11:12

    如果你两个文本的数据量不是很大,那么可以把文本分别按空格分割后每个单词添加到set集合,然后将这两个集合做与(&)操作。 最后与操作完后的集合就是相同值。大小为3.

    点赞 1 评论 复制链接分享
  • qq_18150185 往事丶随风 2018-01-24 11:52

    弄成字符串,再用取交集的运算符就行,用set函数把字符串变为集合。

    点赞 1 评论 复制链接分享
  • futengda 洛奇1993 2018-01-24 12:43

    不好意思 刚刚看理解错了
    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)

    点赞 1 评论 复制链接分享
  • futengda 洛奇1993 2018-01-24 13:02

    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)

    点赞 1 评论 复制链接分享
  • dcxy0 Q544471255 2018-01-24 14:33

    参考:

    strs1="1 你好 小明 学习 非常 好"
    strs2="2 你好 小红 学习 非常 棒"
    array1=strs1.split(" ")
    array2=strs2.split(" ")
    len(set(array1).intersection(set(array2)))
    
    点赞 评论 复制链接分享
  • u011718609 giantjc 2018-02-09 02:20

    将文本处理成set的形式,然后取交集即可。
    newset = set(list1).intersection(set(list2))
    print(len(newset))

    点赞 评论 复制链接分享

相关推荐