gpt4 book ai didi

java - 如何使用apache Spark通过列表来消除文本中的特定单词?

转载 作者:行者123 更新时间:2023-12-02 13:41:07 24 4
gpt4 key购买 nike

我想识别那些包含某些特定单词的句子。正如您将在我的代码中看到的,我定义了一些术语和句子。我想打印所有具有这些定义术语的句子。

****这是我的代码:****

import scala.math.random
import org.apache.spark._
object Clasifying {

def main(args: Array[String]) {
val conf = new SparkConf().setAppName("Classification")
.setMaster("local")

val sc = new SparkContext(conf)

val terms = Array("this", "is", "my", "pen")

val sentences = Array("this Date is mine",
"is there something",
"there are big dogs",
"The Date is mine",
"there may be something",
"where are pen",
"there is a dog",
"there are big cats",
"I am not able to to do it")

val rdd = sc.parallelize(sentences) // create RDD
val keys = terms.toSet // words required as keys.

val result = rdd.flatMap{ sen =>
val words = sen.split(" ").toSet;
val common = keys & words; // intersect
common.map(x => (x, sen)) // map as key -> sen
}
.groupByKey.mapValues(_.toArray) // group values for a key
.collect

println("*********************************")
result.foreach(println)
println("*********************************")
sc.stop()
}

我的代码给出的结果为:

*********************************
(pen,[Ljava.lang.String;@4cc76301)
(this,[Ljava.lang.String;@2f08c4b)
(is,[Ljava.lang.String;@3f19b8b3)
*********************************

虽然我想要这样的结果:

 *********************************
{this, is,(this Date is mine)}
{is,(is there something)}
{is,(the Date is mine)}
{is,(is there something)}
{pen,where are pen)}
*********************************

提前致谢,因为我是 Spark 和 Stack Overflow 的新手,所以请原谅我的错误,并随时编辑我的问题。

我还想要一件事,如果我不定义简单的术语和句子,而是使用一些真正的 terms.txt 文件和 ducomment.txt 作为句子,会怎么样?这种饱和情况的代码是怎样的?

最佳答案

这主要取决于文档的大小和单词列表的大小。

如果您能够在内存中保留完整的单词列表,并在每个容器中保留完整的文档,那么您只需使用 map 即可通过 UDF 轻松完成此操作。如果没有,那么您可以先收集每个文档中的所有单词,并将它们加入到您的单词列表中,以使单词“匿名化”。

小心不要烫伤自己:D

关于java - 如何使用apache Spark通过列表来消除文本中的特定单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42741644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com