如何使用机器学习转换器将 Apache Spark 与容易出错的文本进行有效的字符串匹配?

Barbara Streisand
发布: 2024-11-03 02:27:29
原创
844 人浏览过

How can Apache Spark be used for efficient string matching with error-prone text using machine learning transformers?

Apache Spark 中针对易错文本的高效字符串匹配

背景:

验证文本时字符串匹配至关重要从图像或其他来源提取。然而,OCR 工具经常会引入错误,导致精确的字符串匹配不可靠。这就需要一种有效的算法来将提取的字符串与数据集进行比较,即使存在错误也是如此。

方法:

虽然使用 Spark 执行此任务可能会并不理想,我们提出了一种结合多种机器学习的方法Transformers:

  1. Tokenizer: 将字符串分解为标记以处理字符替换等错误。
  2. NGram: 创建 n 元语法 (例如,3 克)以说明丢失或损坏的情况字符。
  3. 矢量化器: 将 n-gram 转换为数值向量,允许进行距离计算。
  4. LSH(局部敏感哈希): 执行近似最近邻搜索向量。

实现:

<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>
登录后复制

相关资源:

  • [优化必须计算每个条目相似度和输出的 Spark 作业每个前 N 个相似项目](https://stackoverflow.com/questions/53917468/optimize-spark-job-that-has-to-calculate-each-to-each-entry-similarity-and-out)

以上是如何使用机器学习转换器将 Apache Spark 与容易出错的文本进行有效的字符串匹配?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板