我有一大堆由硬件設計模擬生成的錯誤消息。這些消息中只有極少的語法或語言概念。沒有明確定義的語法。這些消息可能包含數學表達式(在模擬中引發錯誤),發生錯誤的時間,以及隨機符號(如@,:,[,],(,)(取決於設計作者感覺如何顯示!)。消息中不需要空格,並且不需要空格。在Python中創建錯誤消息的集羣
我想對這組消息應用一個算法,可以將這些消息歸入包含類似消息的存儲桶中,以便我可以輕鬆識別出現的錯誤類型。
我讀了關於使用Levenshtein距離或餘弦相似來找出字符串之間的距離;然後使用k-means聚類。我也讀過關於word2vec和類似的圖書館。但是我覺得他們在更結構化的類似英語的輸入數據上工作得最好?
對我來說推薦的方法是什麼?當然,我會先對數據進行大量的預處理(比如用空格替換所有隨機符號,將多個空格合併成一個等等),但是在消息中我仍然沒有有意義的單詞。
絕對不是word2vec,但你試過Levenshtein + k-means?有一個包,聽起來可以工作:https://pypi.python.org/pypi/python-Levenshtein –