Hintergrund:
Der String-Abgleich ist bei der Textüberprüfung von entscheidender Bedeutung aus Bildern oder anderen Quellen extrahiert. OCR-Tools führen jedoch häufig zu Fehlern, wodurch die genaue Übereinstimmung von Zeichenfolgen unzuverlässig wird. Dies erhöht den Bedarf an einem effizienten Algorithmus, um extrahierte Zeichenfolgen mit einem Datensatz zu vergleichen, selbst wenn Fehler vorliegen.
Ansatz:
Während der Verwendung von Spark für diese Aufgabe möglicherweise Sollte dies nicht ideal sein, stellen wir einen Ansatz vor, der mehrere Machine-Learning-Transformatoren kombiniert:
Implementierung:
<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>
Dieser Ansatz nutzt LSH, um ähnliche Zeichenfolgen auch bei Fehlern effizient zu identifizieren. Der Schwellenwert von 0,75 kann je nach gewünschtem Ähnlichkeitsgrad angepasst werden.
Pyspark-Implementierung:
<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>
Verwandte Ressourcen:
Das obige ist der detaillierte Inhalt vonWie kann Apache Spark mithilfe von Machine-Learning-Transformatoren für einen effizienten String-Abgleich mit fehleranfälligem Text verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!