2009-11-13 173 views
1

在我正在玩的實驗項目中,我希望能夠查看文本數據並檢測它是否包含表格格式的數據。當然,有很多情況可能看起來像表格數據,所以我想知道我需要研究什麼樣的算法來尋找常見的功能。如何檢測來自各種來源的表格數據

我的第一個想法是編寫一個長開關/大小寫語句,檢查由製表符分隔的數據,然後另一種情況是用管道符號分隔數據,然後再用另一種方式分隔數據等等。當然,我意識到我將不得不想出不同的東西來檢測 - 但我想知道是否有一種更智能的方式來檢測這些功能,而不是對每種類型進行相對較慢的搜索。

我意識到這個問題並不是特別雄辯,所以我希望它有一定道理!

任何想法?

(不知道如何標記這兩種 - !所以幫助有歡迎)

+1

第一步是*非常清楚,準確地*定義「表格數據」的含義。這聽起來不像你做到的那樣。 – 2009-11-13 20:40:25

回答

1

唯一可靠的方案是使用機器學習。例如,您可以在一堆表格和非表格材料的示例上訓練一個感知器分類器。

+0

將要檢查的特徵向量是什麼?我不太確定培訓能夠找到格式不正確的行。 – monksy 2009-11-13 21:22:37

1

混合溶液可能是適當的,即,一個由此你處理的最常見的/明顯的情況下用簡單的試探法(在「開關狀」的方式處理)的同時進行建議,和離開該較硬的情況下,用於自動學習和其他類型的分類器邏輯。

1

這假定您沒有存儲在TSV中的已定義類型。

甲TSV文件通常是 [值1] \噸[Value..N] \ n上

我的建議將是:

  1. 向上計數的所有選項卡
  2. 計數了所有新線
  3. 計數的總的選項卡的第一行中
  4. 除以凸片通過翼片的總數量的第一行中

由於4的結果,如果你得到0的餘數,那麼你有一個TSV文件的候選人。從那裏,你可能要麼需要做以下事情:

  1. 您可以繼續讀取數據,並與超過每行
  2. 預測標籤更多或更少忽略行的錯誤,您可以閱讀之前掃描每一行以確保所有的都是一致的
  3. 您可以閱讀最多不適合的格式,然後拋出一個錯誤

一旦你有,你可以使用一個製表符分隔值量的一個很好的預測用行正則表達式解析出[作爲一個組]的值。

相關問題