나는 수백만 개의 문장을 가지고 있으며 문구 벡터를 얻고 싶기 때문에 문구 유사도를 계산할 수 있습니다. 그러나 문제는 phrase2를 얻기 위해 word2vec를 사용하는 방법을 모르거나 다른 도구를 아는 사람이 있습니까?word2vec을 기반으로 문구 유사도를 계산하는 방법
1
A
답변
0
단순한 방법은 각각의 해당 단어 벡터 요소를 함께 추가하고 결과를 다시 정규화하여 문장 벡터를 제공하는 것입니다. C#에서
은 같은 것을 할 :
var vec = new double[dims];
foreach (var key in sentence)
{
var tmp = model[key];
for (var i = 0; i < dims; i++)
vec[i] += tmp[i];
}
double len = 0;
for (var i = 0; i < dims; i++)
len += vec[i] * vec[i];
len = Math.Sqrt(len);
var normal = new double[dims];
for (var i = 0; i < dims; i++)
normal[i] = vec[i]/len;
return normal;
0
문구의 유사성을 찾으려면 구문 벡터를 결합 (word2vec 알고리즘을 사용하여 훈련) 워드 벡터를 사용해야합니다.
word2vec를 사용하여 구문 벡터를 얻는 방법은 다음과 같습니다. How to calculate phrase similarity between phrases