Phân tích tệp nhật ký: trích xuất phần thông tin từ phần giá trị


10

Tôi đang cố gắng xây dựng một tập dữ liệu trên một số tệp nhật ký của một trong các sản phẩm của chúng tôi.

Các tệp nhật ký khác nhau có bố cục riêng và nội dung riêng; Tôi đã nhóm chúng thành công lại với nhau, chỉ còn một bước nữa ...

Thật vậy, nhật ký "tin nhắn" là thông tin tốt nhất. Tôi không có danh sách toàn diện về tất cả các tin nhắn đó và đó là một ý tưởng tồi đối với mã cứng dựa trên những tin nhắn đó vì danh sách đó có thể thay đổi mỗi ngày.

Những gì tôi muốn làm là tách văn bản thụt ra khỏi văn bản giá trị (ví dụ: "Tệp đã tải XXX" trở thành (nhận dạng: "Tệp đã tải", giá trị: "XXX")). Thật không may, ví dụ này rất đơn giản và trong thế giới thực có nhiều cách bố trí khác nhau và đôi khi là nhiều giá trị.

Tôi đã suy nghĩ về việc sử dụng hạt nhân chuỗi, nhưng nó được dùng để phân cụm ... và việc xóa bỏ không được áp dụng ở đây (tôi không biết số lượng các loại tin nhắn và sự kiện khác nhau, nó sẽ quá nhiều).

Bạn còn ý kiến ​​nào không?

Cảm ơn bạn đã giúp đỡ.

PS: Đối với những người lập trình, điều này có thể dễ hiểu hơn. Giả sử mã chứa các bản ghi printf ("blabla% s", "xxx") -> Tôi muốn có "blabla" và "xxx" tách biệt


Bạn có thể cung cấp một lựa chọn đại diện cho các ví dụ chứng minh sự đa dạng của các mục mà thuật toán sẽ cần phân tích không?
Emre

2
Có một trăm cách để làm điều này. Cung cấp một số ý nghĩa về những công cụ hoặc ngôn ngữ bạn cần để làm điều này. Có khía cạnh khoa học dữ liệu nào về vấn đề này không? có vẻ như chỉ cần phân tích cú pháp
Sean Owen

Câu trả lời:


3

Làm thế nào về việc xem xét mỗi chuỗi như là một quá trình theo dõi và áp dụng thuật toán alpha? Điều đó sẽ cung cấp cho bạn một biểu đồ và các nút có số lượng lớn bên ngoài rất có thể sẽ trỏ đến các giá trị.

Bạn có thể đánh dấu các nút này và cho mỗi chuỗi phân tích cú pháp mới / duyệt qua biểu đồ cho đến khi bạn đến các khu vực đó.


Cảm ơn rất nhiều. Tôi không biết thuật toán alpha. Tôi sẽ kiểm tra theo hướng đó.
Michael Hooreman

2

Đây không phải là một vấn đề Khoa học dữ liệu. Tuy nhiên, có những công cụ rất hay để thực hiện chính xác điều đó, hãy kiểm tra: logstash, flume và fluentd. Trên thực tế nếu bạn muốn có thể lọc Kibana một cách nhanh chóng và "thông minh" từ những kẻ của ElastichSearch ( http://www.elaticsearch.org/overview/kibana ). Những công cụ đó là đủ để giải quyết vấn đề của bạn một cách rất hiệu quả.


Mặc dù của tôi là khai thác tính năng là một phần của khoa học dữ liệu. Chà, đó chỉ là một ý kiến ​​;-) Nói một cách đơn giản hơn, tôi không nói về các tệp nhật ký tiêu chuẩn dễ dàng, mà là các tệp tùy chỉnh từ một phần mềm rất cụ thể. Vì vậy, đó thực sự là trích xuất thông tin từ ngữ cảnh «câu»
Michael Hooreman

1

Nếu bạn chỉ đơn giản là cố gắng tách thông tin văn bản và số thì có một giải pháp dựa trên các biểu thức thông thường hoặc thậm chí chỉ là tách chuỗi.

Bạn thậm chí có thể làm một cái gì đó như tìm ký tự số đầu tiên và chia văn bản thành một nửa ngay trước đó.

Với các biểu thức thông thường, bạn có thể khớp tất cả các ký tự số theo sau nhau. Các mô hình sẽ được ([0-9]+)với một lá cờ toàn cầu. Nó sẽ phù hợp với tất cả các nhóm số và bạn có thể làm bất cứ điều gì với chúng sau đó.

Regex Tester rất tốt để chơi xung quanh với những thứ đó.


Cảm ơn Laurik. Thật không may, không chỉ những con số và tôi cũng không biết những thông điệp trong tương lai sẽ là gì. Vì vậy, tôi thực sự cần AI.
Michael Hooreman
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.