我们正在办公室里开发一个小型的自动分类系统。
我们有很多过滤器。它们是作为python函数编写的,它们要么匹配文件,要么不匹配。
对于每个文件,我们运行所有过滤器。它从上到下扫描文件,如果它匹配一个过滤器-该文件将分类,日志文件将有文件的路径和类别的名称。
每个文件必须只属于一个类别。
对于每个文件,我们运行所有过滤器并生成一个大型excel文件,其中包含每个文件的所有过滤器--应用到该文件。
过滤器的文件名,例如,该文件如下所示:
以此类推。如您所见,一个文件可以匹配多个筛选器。
我们需要基于这个文件工作(因为我们没有对过滤器本身的访问权限),并生成一个过滤器列表,这样每个过滤器将不匹配超过100个文件-即使这意味着一些文件不会被分类。当然,我们认为每个过滤器只匹配少量的文件。
行日志文件的顺序很重要。在示例日志文件中,如果同时打开“财务报告”和“正常文档”筛选器,则始终将其归类为第一个匹配项--“财务报告”。
有什么想法吗?
发布于 2013-02-14 23:51:33
您可以尝试对筛选器保持命中计数,并且对于每个评估的文件,使用最低的命中计数将其标记为筛选器。这种策略将倾向于在过滤器周围传播点击率。
您还可以进行多次传递,以便在第一次传递中,您可以计算出每个文件匹配多少个筛选器,然后根据筛选器命中计数对它们进行排序。然后,您可以放弃与更常见的筛选器的匹配,并为那些具有高筛选匹配计数的文件保留不常见的筛选器。
您还应该研究图论算法;您可以将这个问题转化为类似的图论问题。
说了这些之后,您可能想先检查一下为什么要使用这种策略进行自动分类,因为100场比赛似乎有点武断。最后,我怀疑您不会找到这个任务的确定性算法。我有一种感觉,它是NP-完全,或至少NP-硬。
https://stackoverflow.com/questions/14886053
复制相似问题