การวิเคราะห์ไฟล์บันทึก: การแยกส่วนข้อมูลจากส่วนค่า


10

ฉันกำลังพยายามสร้างชุดข้อมูลในไฟล์บันทึกต่างๆของหนึ่งในผลิตภัณฑ์ของเรา

ล็อกไฟล์ต่าง ๆ มีเลย์เอาต์และเนื้อหาของตัวเอง ฉันจัดกลุ่มพวกเขาเข้าด้วยกันสำเร็จเหลือเพียงขั้นตอนเดียว ...

อันที่จริงบันทึก "ข้อความ" เป็นข้อมูลที่ดีที่สุด ฉันไม่มีรายการที่ครอบคลุมของข้อความเหล่านั้นทั้งหมดและเป็นความคิดที่ดีที่จะใช้รหัสยากเนื่องจากข้อความเหล่านั้นสามารถเปลี่ยนแปลงได้ทุกวัน

สิ่งที่ฉันต้องการจะทำคือการแยกข้อความการเยื้องออกจากข้อความค่า (ตัวอย่าง: "ไฟล์ Loaded XXX" กลายเป็น (รหัส: "ไฟล์ Loaded", ค่า: "XXX")) น่าเสียดายที่ตัวอย่างนี้ง่ายและในโลกแห่งความจริงมีเค้าโครงที่แตกต่างกันและบางครั้งมีหลายค่า

ฉันคิดว่าจะใช้เมล็ดสตริง แต่มันมีไว้สำหรับการรวมกลุ่ม ... และการรวมกลุ่มไม่สามารถใช้งานได้ที่นี่ (ฉันไม่ทราบจำนวนข้อความและประเภทที่แตกต่างกันแม้ว่ามันจะมากเกินไป)

คุณมีความคิดใด ๆ

ขอบคุณสำหรับความช่วยเหลือของคุณ.

PS: สำหรับผู้ที่โปรแกรมนี้สามารถเข้าใจได้ง่ายขึ้น สมมติว่ารหัสประกอบด้วยไฟล์บันทึก printf ("blabla% s", "xxx") -> ฉันต้องการมี "blabla" และ "xxx" แยกกัน


คุณสามารถให้การเลือกตัวแทนของตัวอย่างที่แสดงให้เห็นถึงความหลากหลายของรายการที่อัลกอริทึมจะต้องแยกวิเคราะห์?
เอ็ม

2
มีหลายร้อยวิธีในการทำเช่นนี้ ให้ความรู้สึกว่าต้องใช้เครื่องมือหรือภาษาใดในการทำสิ่งนี้มีความรู้ด้านวิทยาศาสตร์ข้อมูลหรือไม่? ดูเหมือนว่าเป็นเพียงการแยกวิเคราะห์
Sean Owen

คำตอบ:


3

วิธีการพิจารณาแต่ละสตริงเป็นการติดตามกระบวนการและการใช้อัลฟ่าอัลกอริทึม นั่นจะให้กราฟและโหนดที่มีขอบนอกจำนวนมากจะชี้ไปที่ค่ามากที่สุด

คุณสามารถทำเครื่องหมายโหนดเหล่านี้และสำหรับทุก ๆ สตริงใหม่แจง / สำรวจกราฟจนกว่าจะถึงพื้นที่เหล่านั้น


ขอบคุณมาก. ฉันไม่รู้จักอัลฟ่าอัลกอริทึม ฉันจะตรวจสอบในทิศทางนั้น
Michael Hooreman

2

ดูเหมือนว่านี่จะไม่ใช่ปัญหาด้านวิทยาศาสตร์ข้อมูล อย่างไรก็ตามมีเครื่องมือที่ดีมากในการทำเช่นนั้นเช็คเอาต์: logstash, flume และ fluentd จริงๆแล้วถ้าคุณต้องการที่จะกรองอย่างรวดเร็วและ "ฉลาด" ชำระเงิน Kibana จากพวก ElastichSearch ( http://www.elasticsearch.org/overview/kibana ) เครื่องมือเหล่านั้นเพียงพอที่จะแก้ปัญหาของคุณในวิธีที่มีประสิทธิภาพมาก


ฉันว่าคือการดึงคุณสมบัติเป็นส่วนหนึ่งของวิทยาศาสตร์ข้อมูล มันเป็นเพียงความเห็น ;-) ยิ่งไปกว่านั้นฉันไม่ได้พูดถึงไฟล์บันทึกมาตรฐานง่าย ๆ แต่เป็นไฟล์ที่กำหนดเองจากซอฟต์แวร์ที่เฉพาะเจาะจงมาก ดังนั้นนั่นคือการดึงข้อมูลจากบริบท«ประโยค»
Michael Hooreman

1

หากคุณเพียงแค่พยายามแยกข้อมูลที่เป็นข้อความและตัวเลขแล้วมีวิธีแก้ไขตามนิพจน์ทั่วไปหรือแม้กระทั่งการแยกสตริง

คุณสามารถทำอะไรบางอย่างเช่นค้นหาตัวอักษรตัวเลขตัวแรกและแยกข้อความครึ่งก่อนหน้านั้น

ด้วยนิพจน์ทั่วไปคุณสามารถจับคู่อักขระตัวเลขทั้งหมดที่ตามหลังตัวอื่น รูปแบบจะอยู่([0-9]+)กับธงทั่วโลก มันจะจับคู่ทุกกลุ่มของตัวเลขและคุณสามารถทำอะไรก็ได้กับพวกเขาในภายหลัง

เครื่องทดสอบ Regexนั้นเหมาะสำหรับเล่นกับสิ่งนั้น


ขอบคุณ Laurik น่าเสียดายที่ไม่ใช่แค่ตัวเลขและฉันก็ไม่รู้เหมือนกันว่าจะมีข้อความอะไรในอนาคต ดังนั้นฉันต้องการ AI จริงๆ
Michael Hooreman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.