текст сходство различный способ используя искру? [дубликат]

Если это mysql-only, вы можете попробовать INSERT INTO ... ON DUPLICATE KEY UPDATE

http://dev.mysql.com/doc/refman/5.0/en/insert- на duplicate.html

20
задан mrtnsd 12 May 2017 в 13:14
поделиться

1 ответ

Я бы не использовал Spark в первую очередь, но если вы действительно привержены конкретному стеку, вы можете комбинировать кучу трансформаторов мл, чтобы получить наилучшие совпадения. Вам понадобятся Tokenizer (или split):

import org.apache.spark.ml.feature.RegexTokenizer

val tokenizer = new RegexTokenizer().setPattern("").setInputCol("text").setMinTokenLength(1).setOutputCol("tokens")

NGram (например, 3 грамма)

import org.apache.spark.ml.feature.NGram

val ngram = new NGram().setN(3).setInputCol("tokens").setOutputCol("ngrams")

Vectorizer (например CountVectorizer или HashingTF):

import org.apache.spark.ml.feature.HashingTF

val vectorizer = new HashingTF().setInputCol("ngrams").setOutputCol("vectors")

и LSH:

import org.apache.spark.ml.feature.{MinHashLSH, MinHashLSHModel}

// Increase numHashTables in practice.
val lsh = new MinHashLSH().setInputCol("vectors").setOutputCol("lsh")

Объединить с Pipeline

import org.apache.spark.ml.Pipeline

val pipeline = new Pipeline().setStages(Array(tokenizer, ngram, vectorizer, lsh))

Fit на примерах:

val query = Seq("Hello there 7l | real|y like Spark!").toDF("text")
val db = Seq(
  "Hello there                   
20
ответ дан user8371915 15 August 2018 в 23:29
поделиться
  • 1
    Как быстро это происходит? У меня есть два набора данных с 10 миллионами и 70 миллионами строк. Мне приходится сравнивать строки в них. Сколько времени это займет? И как упоминалось в этом ответе, что бы вы сделали, если не искры? – Ravi Ranjan 11 January 2018 в 06:08
  • 2
    @RaviRanjan Быстро сравнить с чем? – user8371915 21 January 2018 в 16:23
  • 3
    Я работаю над вычислением расстояния между левенштейном между 10 и 70 миллионами строк. Для этого, конечно, потребуется время, которое было бы очень много. У меня было два вопроса: как быстро вышеназванный алгоритм и что бы вы сделали, если не используете искру? – Ravi Ranjan 22 January 2018 в 06:54
Другие вопросы по тегам:

Похожие вопросы: