Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何使用sparknlp注释文本文件?_Scala_Nlp_Johnsnowlabs Spark Nlp - Fatal编程技术网

Scala 如何使用sparknlp注释文本文件?

Scala 如何使用sparknlp注释文本文件?,scala,nlp,johnsnowlabs-spark-nlp,Scala,Nlp,Johnsnowlabs Spark Nlp,我正在使用Sparknlp在databrick中注释一个长文本文件。我的代码如下: import com.johnsnowlabs.nlp.base._ import com.johnsnowlabs.nlp.annotator._ val lines = sc.textFile("/FileStore/tables/48320_0-3f0d3.txt") import com.johnsnowlabs.nlp.pretrained.PretrainedPipel

我正在使用Sparknlp在databrick中注释一个长文本文件。我的代码如下:

    import com.johnsnowlabs.nlp.base._
    import com.johnsnowlabs.nlp.annotator._
    val lines = sc.textFile("/FileStore/tables/48320_0-3f0d3.txt")
    import com.johnsnowlabs.nlp.pretrained.PretrainedPipeline
    val result = PretrainedPipeline("explain_document_ml").annotate(lines)
command-2722311848879511:1: error: overloaded method value annotate with alternatives:
  (target: Array[String])Array[Map[String,Seq[String]]] <and>
  (target: String)Map[String,Seq[String]]
 cannot be applied to (org.apache.spark.rdd.RDD[String])
val result = PretrainedPipeline("explain_document_ml").annotate(lines)
但是我得到了这样的错误:

    import com.johnsnowlabs.nlp.base._
    import com.johnsnowlabs.nlp.annotator._
    val lines = sc.textFile("/FileStore/tables/48320_0-3f0d3.txt")
    import com.johnsnowlabs.nlp.pretrained.PretrainedPipeline
    val result = PretrainedPipeline("explain_document_ml").annotate(lines)
command-2722311848879511:1: error: overloaded method value annotate with alternatives:
  (target: Array[String])Array[Map[String,Seq[String]]] <and>
  (target: String)Map[String,Seq[String]]
 cannot be applied to (org.apache.spark.rdd.RDD[String])
val result = PretrainedPipeline("explain_document_ml").annotate(lines)
command-2722311848879511:1:错误:重载方法值用替代项注释:
(目标:数组[String])数组[Map[String,Seq[String]]
(目标:字符串)映射[String,Seq[String]]
无法应用于(org.apache.spark.rdd.rdd[String])
val结果=预训练管道(“解释文件”)。注释(行)

既然annotate可以使用字符串或数组作为参数,为什么我可以使用文本文件作为参数?我应该如何修改我的代码?谢谢

您需要将文本文件转换为数据帧(每行转换为每行,或每句转换为每行),然后使用
.transform
以并行和分布式方式进行转换。注释用于短文本/字符串,而不是整个文件。如果用文本文件的外观更新问题,我可以提供正确的代码将文本文件转换为带注释的数据框。@Maziyar我使用了“不好”的技巧来运行代码
val data=lines.flatMap(line=>line.split(“”\W+“”)).collect().mkString(“”.toLowerCase();val结果=预训练管道(“解释文档”)。注释(数据)
。但是,我认为这不是spark中的正确方法。@Maziyar文本文件只是一本电子书(.txt)。这是一个小代码。我认为转换为Dataframe应该是正确的方法。您需要将文本文件转换为Dataframe(每行转换为每行,或每句转换为每行),然后使用
.transform
以并行和分布式方式进行转换。注释用于短文本/字符串,而不是整个文件。如果用文本文件的外观更新问题,我可以提供正确的代码将文本文件转换为带注释的数据框。@Maziyar我使用了“不好”的技巧来运行代码
val data=lines.flatMap(line=>line.split(“”\W+“”)).collect().mkString(“”.toLowerCase();val结果=预训练管道(“解释文档”)。注释(数据)
。但是,我认为这不是spark中的正确方法。@Maziyar文本文件只是一本电子书(.txt)。这是一个小代码。我认为转换为Dataframe应该是正确的方法。