machine-learning - 日志文件中的文本聚类

标签 machine-learning nlp artificial-intelligence

我正在解决在日志文件中查找类似内容的问题。假设我有一个如下所示的日志文件:

 show version
 Operating System (OS) Software

 Software
 BIOS:      version 1.0.10
 loader:    version N/A
 kickstart: version 4.2(7b)
 system:    version 4.2(7b)
 BIOS compile time:       01/08/09
 kickstart image file is: bootflash:/m9500-sf2ek9-kickstart-mz.4.2.7b.bin
 kickstart compile time:  8/16/2010 13:00:00 [09/29/2010 23:10:48]
 system image file is:    bootflash:/m9500-sf2ek9-mz.4.2.7b.bin
 system compile time:     8/16/2010 13:00:00 [09/30/2010 00:46:36]`

 Hardware
 xxxx MDS 9509 (9 Slot) Chassis ("xxxxxxx/xxxxx-2")
 xxxxxxx, xxxx with 1033100 kB of memory.
 Processor Board ID xxxx

 Device name: xxx-xxx-1 
 bootflash:    1000440 kB 
 slot0:              0 kB (expansion flash)

对于人眼来说,很容易理解“软件”和下面的数据是一个部分,而“硬件”和下面的数据是另一个部分。有没有一种方法可以使用机器学习或其他一些技术进行建模,以基于模式对相似的部分进行聚类?另外,我已经展示了两种类似的模式,但各部分之间的模式可能会有所不同,因此应标识为不同的部分。我尝试使用余弦相似度来查找相似度,但它没有多大帮助,因为单词不相似,但模式相似。

最佳答案

我实际上看到了两个独立的机器学习问题:

1)如果我理解正确的话,您要解决的第一个问题是将每个日志分成不同的部分,因此一个用于硬件,一个用于软件等。

为了实现这一目标,一种方法可以尝试提取标记新部分开始的标题。为此,您可以手动标记一组不同的日志,并将每行标记为 header=true、heading= false

不,您可以尝试训练一个分类器,它将您的标记数据作为输入,结果可能是一个模型。

2) 现在您已经有了这些不同的部分,您可以将每个日志拆分为这些部分,并将每个部分视为一个单独的文档。

现在我将首先尝试使用标准 nlp 管道进行直接文档聚类:

  1. 对您的文档进行标记以获取标记
  2. 对它们进行标准化(也许词干分析并不是日志的最佳选择)
  3. 为每个文档创建一个 tf-idf 向量
  4. 从简单的聚类算法(例如 k-means)开始尝试对不同部分进行聚类

聚类后,您应该在同一聚类中拥有彼此相似的部分

我希望这会有所帮助,我认为尤其是第一个任务很难退出,也许手工定制的模式会表现得更好。

关于machine-learning - 日志文件中的文本聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27480321/

相关文章:

java - 'Blokus' 游戏的人工智能(1-4 人)

artificial-intelligence - 哪种方法在 TSP 问题 : nearest neighbour or genetic algorithms? 中产生较短的游览

machine-learning - 用于时间序列或序列预测的 Pylearn2 示例

python - 了解 FeatureHasher、碰撞和向量大小的权衡

tensorflow - keras 模型适合 : ValueError: Failed to find data adapter that can handle input: <class 'method' >, <类 'NoneType' >

deep-learning - 训练使用 AutoConfig 定义的拥抱面 AutoModel

algorithm - 如何使用斯坦福解析器从给定的分段节点生成英文句子

machine-learning - 如何扩展训练数据集中的模型以覆盖训练数据的各个方面

apache-spark - 可以在 Spark 批处理上创建模型并在 Spark 流中使用它吗?

database - 在大型数据库中达到性能和可伸缩性之间的适当平衡