如何在SparkNLP中使用RegexMatcher

如何在SparkNLP中使用RegexMatcher,regex,scala,apache-spark-sql,nlp,johnsnowlabs-spark-nlp,Regex,Scala,Apache Spark Sql,Nlp,Johnsnowlabs Spark Nlp,情况就是这样。我想用Scala内核在Jupyterlab上运行SparkNLP。我想使用RegexMatcher注释。我将模式保存在s3 bucket上名为patterns.txt的文件中。我尝试了下面的实现 import com.johnsnowlabs.nlp.util.io.ExternalResource import com.johnsnowlabs.nlp.util.io.ReadAs.LINE_BY_LINE val document = new DocumentAssembler

情况就是这样。我想用Scala内核在Jupyterlab上运行SparkNLP。我想使用
RegexMatcher
注释。我将模式保存在s3 bucket上名为
patterns.txt
的文件中。我尝试了下面的实现

import com.johnsnowlabs.nlp.util.io.ExternalResource
import com.johnsnowlabs.nlp.util.io.ReadAs.LINE_BY_LINE
val document = new DocumentAssembler().setInputCol("text").setOutputCol("document")
val regexmatcher = new RegexMatcher().
  setInputCols(Array("document")).
  setOutputCol("match").
  setStrategy("MATCH_ALL").
  setRules(ExternalResource("s3://bucket_name/patterns.txt", LINE_BY_LINE, Map("format" -> "text", "delimiter" -> " ")))
val pipeline_regex = new Pipeline().setStages(Array(document, regexmatcher))
val regex_match = pipeline_regex.fit(dev_data)
regex_match.transform(dev_data).select('match).show(false)

然而,这似乎根本不起作用,而且没有使用
patterns.txt
。如何修复它

变量
dev_data
在哪里声明?我在你的代码中看不到它。它是什么类型?@CatalinaChircu
dev\u数据
在前面声明过。这是一个数据帧。您是否可以添加任何特定错误?您提供的详细信息越多,得到的响应就越好。根本不工作并不意味着什么。我需要看看数据框是什么样子,patterns.txt里面是什么,等等@Maziyar谢谢。没有错误,只返回空匹配项。下面是pattern.txt中我的正则表达式的一个示例:
^(?i)application\\s+for motion prefix
您是说您的正则表达式具有负前瞻性吗<代码>^(?!)应用程序\\s+用于运动前缀