我正在處理數十萬個文件。潛在的數百萬之後的道路上。壞文件將包含Excel電子表格的文本版本或其他不是二進制文件的文本,但也不是句子。這樣的文件會導致CoreNLP崩潰(從技術上講,這些文件需要很長時間才能處理,例如每千字文本15秒)。我很想檢測這些文件並在次秒內丟棄它們。有沒有一種方法來確定一個文檔是否是一個文本句子文件?
我正在考慮的是隨機抽取幾千個文件,檢查第一個200個字符並查找字符分佈以確定什麼是合法的以及什麼是異常值。例如,如果沒有標點符號或太多標點符號。這似乎是一個好方法嗎?有更好的證明嗎?我認爲,當然,這將工作得很好,可能會拋出潛在的好文件,但很少。
另一個想法是簡單地運行註釋器tokenize和ssplit,並做單詞和句子計數。這似乎也做得很好,並很快返回。我可以想到可能會失敗的情況。
我少擔心比約不拋出潛在的不良檔案投出潛在的好文件。你應該也可以檢查行和字的長度。爲了好奇,爲什麼系統中存在「壞」文件? (我認爲你的方法應該可行,但實際上你應該實施它並試圖讓它失敗)。雖然我不太確定這是否是一個好問題。 – Cubic
剛剛讀取文件的最後幾個字節呢?我認爲有一些特殊的格式是特定於excel文件的,這些格式與編碼有關。 – calderonmluis
也許更容易找到「Excel電子表格的文本版本」的簽名?那裏一定有一些文件頭或頁腳數據? – whiskeyspider