12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package examples.utils;
- import com.tzld.piaoquan.recommend.similarity.word2vec.Segment;
- import com.tzld.piaoquan.recommend.similarity.word2vec.Word2Vec;
- import lombok.extern.slf4j.Slf4j;
- import java.io.IOException;
- import java.util.List;
- /**
- * @author dyp
- * 从recommend-server复制过来的 @zhangbo 20241211
- */
- @Slf4j
- public final class SimilarityUtils {
- private static Word2Vec vec = new Word2Vec();
- public static void init() {
- Segment.getWords("1");
- try {
- long start = System.currentTimeMillis();
- String endpoint = "oss-cn-hangzhou-internal.aliyuncs.com";
- String bucketName = "art-recommend";
- String path = "similarity/word2vec/Google_word2vec_zhwiki210720_300d.bin";
- String accessKeyId = "LTAIP6x1l3DXfSxm";
- String accessKetSecret = "KbTaM9ars4OX3PMS6Xm7rtxGr1FLon";
- Word2Vec temp = new Word2Vec();
- temp.loadGoogleModelFromOss(endpoint, bucketName, path, accessKeyId, accessKetSecret);
- vec = temp;
- long end = System.currentTimeMillis();
- log.info("Model loaded successfully cost {}. Scheduled tasks cancelled.", end - start);
- } catch (IOException e) {
- log.error("loadGoogleModelFromOss error", e);
- }
- }
- public static float word2VecSimilarity(String str1, String str2) {
- List<String> words1 = Segment.getWords(str1);
- List<String> words2 = Segment.getWords(str2);
- return vec.sentenceSimilarity(words1, words2);
- }
- }
|