首页 > 解决方案 > 字符串的常量部分

问题描述

我有一个问题,不知道如何解决。

例如,我有一个动态扩展文件,其中包含由 '\n' 分隔的行

每一行 - 一条消息(字符串),由某些模式和值部分构建,仅针对这一行。

前任:

line 1: The temperature is 10 above zero
line 2: The temperature is 16 above zero
line 3: The temperature is 5 degree zero

因此,如您所见,常数部分(模式)是

The temperature is zero

价值部分:

For line 1 will be: 10 above
For line 2 will be: 16 above
For line 3 will be: 5 degree

当然这是非常简单的例子。事实上,一个文件中有太多行和大约 50 个模式。值部分可以是任何东西——可以是数字、单词、标点符号等!

我的问题是——如何从数据中找到所有可能的模式?

标签: pythonnlpanalytics

解决方案


这听起来像是一个日志消息集群问题。

简单的解决方案:使用正则表达式将所有数字替换为字符串NUMBER。您可能需要排除日期或 IP 地址或其他内容。这可能足以为您提供日志中所有模式的列表。

或者,您可以计算每条消息中的单词数(以空格分隔的字段)并以这种方式对消息进行分组。例如,可能所有包含 7 个单词的消息都采用相同的格式。如果两条不同的消息具有相同的格式,您也可以匹配第一个单词或其他内容。

如果以上都不起作用,那么事情会变得更加复杂;对任意日志消息进行聚类是一个研究问题。如果您在 Google Scholar 上搜索“事件日志集群”,您应该会看到很多可以学习的方法。


推荐阅读