【问题标题】:Classify filenames (exported to Excel) based on names/type根据名称/类型对文件名进行分类(导出到 Excel)
【发布时间】:2018-03-16 20:11:38
【问题描述】:

在我的工作中,我们会根据用户驱动器中的所有文件制作一份综合列表。这些用户必须根据文件决定是否归档这些文件(由 Y 或 N 表示)。作为对这些用户的服务,我们为他们手动填写。

我们将这些文件导出到 excel 中的一个长列表中,其中每个文件显示为 X:\4。经济学\10. xxxxxxx\04. xxxxxxxxx\04. xxxxxxxxxx\filexyz.pdf

我认为我们可以轻松地自动执行此操作,因为标准命名约定可以轻松决定保留哪些文件以及删除哪些文件。例如,应保留文件名中带有字符串“CAB”的文件。但是,我不知道如何以及从哪里开始。有人能指出我正确的方向吗?

【问题讨论】:

    标签: excel text-processing


    【解决方案1】:

    我建议以下一般步骤

    1. 获取原始数据

    您可以在 python 中读取excel file into a pandas dataframe。理想情况下,您将拥有一个看起来像这样的原始数据框

         Filename                           Keep
    0    X:\4. Economics ...\filexyz.pdf    0
    1    X:\4. Economics ...\fileabc.pdf    1
    2    X:\3. Finance   ...\filetef.pdf    1
    3    X:\3. Finance   ...\file123.pdf    0
    4    G:\2. Philosophy ..\file285.pdf    0
                       ....
    
    1. 预处理/清理

    这部分取决于您,例如您可以删除所有特殊字符和数字。这将留下如下字母

         Filename                     Keep
    0    "X Economics filexyz pdf"    0
    1    "X Economics fileabc pdf"    1
    2    "X Finance filetef pdf"      1
    3    "X Finance file123 pdf"      0
    4    "G Philosophy file285 pdf"   0
                    ....
    
    1. 向量化字符串

    为了让算法能够理解您的文本数据,您通常需要对它们进行矢量化处理。这意味着您将它们变成算法可以处理的数字。一个简单的方法是使用tf-idf and scikit-learn。在此之后,您的数据框可能看起来像这样

         Filename                               Keep
    0    [0.6461,  0.3816 ...  0.01,  0.38]     0
    1    [0.,      0.4816 ...  0.25,  0.31]     1
    2    [0.61,    0.1663 ...  0.11,  0.35]     1
                           ....
    
    1. 训练分类器

    现在您已经有了可供算法使用的好数字,您可以使用 scikit-learn 训练分类器。随便搜索“scikit learn classification example”,你会发现很多。

    一旦您拥有一个训练有素的分类器,您就可以将它的预测结果与它以前从未见过的测试数据进行比较。这样你就可以感受到准确性。

    希望这足以让您入门!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-18
      • 2018-03-07
      • 1970-01-01
      • 2021-04-10
      • 2017-08-07
      • 2016-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多