배경:
문자열 일치는 텍스트를 확인할 때 중요합니다. 이미지나 기타 소스에서 추출되었습니다. 그러나 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!