光學字元辨識 (OCR) 工具在從影像中擷取文字時經常會出現錯誤。為了有效地將這些提取的文本與參考資料集進行匹配,Spark 中需要一種高效的演算法。
鑑於 OCR 提取中面臨的挑戰,例如字元替換、表情符號遺漏和空白刪除,一種綜合方法是需要。考慮到 Spark 的優勢,可以利用機器學習轉換器的組合來實現高效的解決方案。
管道方法
可以建構管道來執行以下步驟:
範例實現
<code class="scala">import org.apache.spark.ml.feature.{RegexTokenizer, NGram, HashingTF, MinHashLSH, MinHashLSHModel} // Input text val query = Seq("Hello there 7l | real|y like Spark!").toDF("text") // Reference data val db = Seq( "Hello there ?! I really like Spark ❤️!", "Can anyone suggest an efficient algorithm" ).toDF("text") // Create pipeline val pipeline = new Pipeline().setStages(Array( new RegexTokenizer().setPattern("").setInputCol("text").setMinTokenLength(1).setOutputCol("tokens"), new NGram().setN(3).setInputCol("tokens").setOutputCol("ngrams"), new HashingTF().setInputCol("ngrams").setOutputCol("vectors"), new MinHashLSH().setInputCol("vectors").setOutputCol("lsh") )) // Fit on reference data val model = pipeline.fit(db) // Transform both input text and reference data val db_hashed = model.transform(db) val query_hashed = model.transform(query) // Approximate similarity join model.stages.last.asInstanceOf[MinHashLSHModel] .approxSimilarityJoin(db_hashed, query_hashed, 0.75).show</code>
這種方法有效地應對了OCR 文本提取的挑戰,並提供了一種將提取的文本與Spark中的大型資料集進行匹配的有效方法。
以上是如何使用 Apache Spark 對使用 OCR 從圖像中提取的文字進行高效的字串匹配和驗證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!