【问题标题】:Algorithm for measuring the similarity of two text files with different sizes衡量两个不同大小文本文件相似度的算法
【发布时间】:2019-08-28 20:47:31
【问题描述】:

假设有两个文件 A 和 B,A 是一个大小超过 1GB 的巨大数据文件(在文本中,数据没有内部统一的数据结构)。 B 是一个文件,它可能包含来自 A 的一小部分数据,并且大小低于 1KB。我需要一个算法来衡量 B 有多少数据也可以在 A 中找到。B 包含的数据来自 A 的越多,这个算法应该返回的分数越高。

谢谢。

【问题讨论】:

    标签: nlp text-mining


    【解决方案1】:

    你可以做这样的事情......

    def readA():
    with open('A.txt') as bondNumberFile:
        for line in bondNumberFile:
            readB(line.rstrip())
    

    此外,您不一定需要定义函数来执行此操作。也可以执行以下操作。

    with open('a.txt') as a, open('b.txt') as b:
    result = set(a.readlines()) & set(b.readlines())
    

    您可能会发现this SO post 很有用。 干杯!

    【讨论】:

    • 感谢您的帖子,但恐怕问题更复杂。简单地获得两个词袋集的交集可能无法解决问题。假设我们在 A 记录中有一条数据记录 Paul:Male,通过词袋法,我们可以得到一组 Paul 和 Male 两个词,可能在 B 中出现多次。只有当这两个词密切相关时在 B 中,我们报告了重复。恐怕这个算法做不到。
    猜你喜欢
    • 2016-07-11
    • 2011-08-13
    • 1970-01-01
    • 2023-03-27
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多