背景:
テキストの検証時には文字列マッチングが重要です画像や他のソースから抽出されたもの。ただし、OCR ツールではエラーが発生することが多く、文字列の正確な一致の信頼性が低くなります。このため、エラーが存在する場合でも、抽出された文字列をデータセットと比較する効率的なアルゴリズムの必要性が生じます。
アプローチ:
このタスクに Spark を使用すると、理想的ではありませんが、複数の機械学習トランスフォーマーを組み合わせたアプローチを紹介します。
実装:
<code class="scala">import org.apache.spark.ml.feature.{RegexTokenizer, NGram, HashingTF, MinHashLSH, MinHashLSHModel} val tokenizer = new RegexTokenizer() val ngram = new NGram().setN(3) val vectorizer = new HashingTF() val lsh = new MinHashLSH() val pipeline = new Pipeline() val model = pipeline.fit(db) val dbHashed = model.transform(db) val queryHashed = model.transform(query) model.stages.last.asInstanceOf[MinHashLSHModel] .approxSimilarityJoin(dbHashed, queryHashed, 0.75).show</code>
このアプローチでは、LSH を活用して、エラーがあっても類似の文字列を効率的に識別します。しきい値 0.75 は、希望する類似性レベルに応じて調整できます。
Pyspark 実装:
<code class="python">from pyspark.ml import Pipeline from pyspark.ml.feature import RegexTokenizer, NGram, HashingTF, MinHashLSH model = Pipeline(stages=[ RegexTokenizer(pattern="", inputCol="text", outputCol="tokens", minTokenLength=1), NGram(n=3, inputCol="tokens", outputCol="ngrams"), HashingTF(inputCol="ngrams", outputCol="vectors"), MinHashLSH(inputCol="vectors", outputCol="lsh") ]).fit(db) db_hashed = model.transform(db) query_hashed = model.transform(query) model.stages[-1].approxSimilarityJoin(db_hashed, query_hashed, 0.75).show()</code>
関連リソース:
以上が機械学習トランスフォーマーを使用して、エラーが発生しやすいテキストと文字列を効率的に照合するには、Apache Spark をどのように使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。