Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah Apache Spark boleh digunakan untuk pemadanan rentetan yang cekap dengan teks yang mudah ralat menggunakan pengubah pembelajaran mesin?
Latar Belakang:
Pemadanan rentetan adalah penting semasa mengesahkan teks diekstrak daripada imej atau sumber lain. Walau bagaimanapun, alat OCR sering memperkenalkan ralat, menjadikan padanan rentetan yang tepat tidak boleh dipercayai. Ini menimbulkan keperluan untuk algoritma yang cekap untuk membandingkan rentetan yang diekstrak dengan set data, walaupun terdapat ralat.
Pendekatan:
Semasa menggunakan Spark untuk tugasan ini mungkin tidak sesuai, kami mempersembahkan pendekatan yang menggabungkan berbilang pengubah pembelajaran mesin:
Pelaksanaan:
<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>
Pendekatan ini memanfaatkan LSH untuk mengenal pasti rentetan serupa dengan cekap, walaupun dengan ralat. Ambang 0.75 boleh dilaraskan bergantung pada tahap persamaan yang diingini.
Pelaksanaan 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>
Sumber Berkaitan:
Atas ialah kandungan terperinci Bagaimanakah Apache Spark boleh digunakan untuk pemadanan rentetan yang cekap dengan teks yang mudah ralat menggunakan pengubah pembelajaran mesin?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!