使用向量空间模型比较文件

时间:2016-02-03 10:31:28

标签: python

我必须根据以下问题在Python中使用向量空间模型创建演示:

  1. 我们在不同的文件中有一组文本。
  2. 根据文字密度比较文本。
  3. 您必须创建一个脚本来比较文件中的文本并找出:
  4. (I)。哪些文件有类似的文字 (ⅱ)。将类似文件放在一个组中[例如:GROUP_1(FILE25,FILE65)]

    注意:一个文件可能会添加到多个组中 我的意思是一个文本可以类似于多个组

    我目前有以下代码:

          import filecmp
          files = ['F1.txt', 'F2.txt', 'F3.txt', 'F4.txt', 'F5.txt']
          comparisons = {}
          for itm in range(len(files)):
             try:
                 res = filecmp.cmp(files[itm], files[itm+1])
                 comparisons[str(files[itm]) + ' vs ' + str(files[itm+1])] = res
                 except:
                 pass
             try:
                 res = filecmp.cmp(files[itm], files[itm+2])
                 comparisons[str(files[itm]) + ' vs ' + str(files[itm+2])] = res
                except:
                pass
             try:
                 res = filecmp.cmp(files[itm], files[itm+3])
                 comparisons[str(files[itm]) + ' vs ' + str(files[itm+3])] = res
                except:
                pass
             try:
                 res = filecmp.cmp(files[itm], files[itm+4])
                 comparisons[str(files[itm]) + ' vs ' + str(files[itm+4])] = res
                except:
                pass
      print(comparisons)
    

    这给出了:

    {'F1.txt vs F2.txt': True, 'F1.txt vs F5.txt': False, 'F2.txt vs F4.txt': True, 
    'F3.txt vs F4.txt': False, 'F1.txt vs F4.txt': True, 'F2.txt vs F3.txt': False, 
    'F2.txt vs F5.txt': False, 'F1.txt vs F3.txt': False, 'F3.txt vs F5.txt': False, 
    'F4.txt vs F5.txt': False}
    

    如何解决此问题?

1 个答案:

答案 0 :(得分:0)

  1. 应用CountVectorizer ..您将立即获得向量
  2. 对两个向量应用欧氏距离或余弦相似度进行比较

对于上述两个步骤,sklearn中有现成的函数。只是浏览图书馆

或者,您可以简单地使用Fuzzywuzzy。它使用EditDistance(而不是矢量空间)进行比较,但是在很多情况下效果都很好。

相关问题