|
@@ -0,0 +1,35 @@
|
|
|
|
+package com.aliyun.odps.spark.examples.makedata_ad.v20240718
|
|
|
|
+
|
|
|
|
+import examples.utils.SimilarityUtils
|
|
|
|
+import org.xm.Similarity
|
|
|
|
+
|
|
|
|
+import scala.collection.JavaConversions.asJavaCollection
|
|
|
|
+import scala.collection.mutable.ArrayBuffer
|
|
|
|
+
|
|
|
|
+object test {
|
|
|
|
+
|
|
|
|
+ def main(args: Array[String]): Unit = {
|
|
|
|
+ println(funcC34567ForTagsNew("高兴", "快乐"))
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ def funcC34567ForTagsNew(tags: String, title: String): Tuple4[Double, String, Double, Double] = {
|
|
|
|
+ // 匹配数量 匹配词 语义最高相似度分 语义平均相似度分
|
|
|
|
+ val tagsList = tags.split(",")
|
|
|
|
+ var d1 = 0.0
|
|
|
|
+ val d2 = new ArrayBuffer[String]()
|
|
|
|
+ var d3 = 0.0
|
|
|
|
+ var d4 = 0.0
|
|
|
|
+ for (tag <- tagsList) {
|
|
|
|
+ if (title.contains(tag)) {
|
|
|
|
+ d1 = d1 + 1.0
|
|
|
|
+ d2.add(tag)
|
|
|
|
+ }
|
|
|
|
+ val score = SimilarityUtils.word2VecSimilarity(tag, title)
|
|
|
|
+ d3 = if (score > d3) score else d3
|
|
|
|
+ d4 = d4 + score
|
|
|
|
+ }
|
|
|
|
+ d4 = if (tagsList.nonEmpty) d4 / tagsList.size else d4
|
|
|
|
+ (d1, d2.mkString(","), d3, d4)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|