0

我有一些应用程序可以生成文本跟踪信息(日志)以记录文件。跟踪信息是典型的 printf() 样式 - 即有很多类似的日志条目(与 printf 相同的格式参数),但在格式字符串有参数的地方不同。

什么是一种算法(网址、书籍、文章……),它可以让我分析日志条目并将它们分类到几个箱/容器中,每个箱都有一个关联的格式?
本质上,我想要将原始日志条目转换为 (formatA, arg0 ... argN) 实例,其中 formatA 在许多日志条目之间共享。formatA 不必是用于生成条目的确切格式(如果这使算法更简单,则更是如此)。

我发现的大多数文献和网络信息都涉及精确匹配、最大子字符串匹配或 k 差异(k 提前已知/固定)。此外,它侧重于匹配一对(长)字符串或单个 bin 输出(所有输入中的一个匹配)。我的情况有些不同,因为我必须发现什么代表(足够好)匹配(通常是一系列不连续的字符串),然后将每个输入条目分类为发现的匹配之一。

最后,我不是在寻找完美的算法,而是在寻找简单/易于维护的东西。

谢谢!

4

1 回答 1

1

您可以使用著名的词袋技术 tan 帮助对文本进行分组,方法是使用在每一行中表示文本的稀疏矩阵(通常使用搬运工词干分析器对文本进行词干以获得更好的结果)在计算词袋后,您需要计算每个单词出现在每段文本中的次数,然后按行和列计算矩阵的总数,您计算每个单元格的tf-idf,以注意文本上的角距离是一个最好的作品。完成所有这些之后,您可以执行对相关文本进行分组的聚类算法,您甚至可以从这里提取文本的主要关键字。有一个程序可以自动完成这一切,叫做cluto,我强烈推荐它。

于 2010-12-26T09:46:51.963 回答