【发布时间】:2015-12-11 10:55:40
【问题描述】:
我有以下 Scala 代码,其中 z 表示字符串数组,每个字符串表示数据集的一个数据点。
第一步是计算数据集中第一个字符串与数据集中所有其他字符串之间的匹配分数,然后将所有相似的字符串存储在一个集合中。
第二步是计算在第一步中不匹配的第二个字符串与数据集中所有其他不匹配字符串的匹配分数。
第三步和后续步骤与前面的步骤类似。
最重要的是我必须注意,在上述过程中匹配的所有字符串都不会参与进一步的循环,因为它们在前面的步骤中已经匹配。
建议更改代码,以满足我的上述所有要求。
val z = y.split("\n") // z is Array[String]
for (i <- 1 to 500)
{
var str = ArrayBuffer[String]()
str += z(i)
for(j <- 1 to 500)
{
val dist = match(z(i),z(j)) // match calculates score between 2 strings
if (dist < threshold){
str += z(j)
}
}
【问题讨论】:
-
您可能想尝试使用 codereview.stackexchange 获取“建议”
-
@ShreyansSheth 代码审查不提供更改代码工作方式的建议,它只是用于审查已经按预期工作的代码。
标签: arrays string algorithm scala