私は単語フレーズを持っているので、下の例のように分類したいと思います。同様の単語フレーズを分類する
例:上記の3つのワードフレーズが一つのカテゴリの下に来るべきで言及したことを理解することは容易である人間のために
adaptive and intelligent educational system
adaptive and intelligent tutoring system
adaptive educational system
。
簡単な方法はありますか?
現在、私はlevenshtein距離を使用して次のようにアフィニティ伝播クラスタリングアルゴリズムを使用しています。
words = np.asarray(words) #So that indexing with a list will work
lev_similarity = -1*np.array([[distance.levenshtein(w1,w2) for w1 in words] for w2 in words])
affprop = sklearn.cluster.AffinityPropagation(affinity="precomputed", damping=0.5)
affprop.fit(lev_similarity)
for cluster_id in np.unique(affprop.labels_):
exemplar = words[affprop.cluster_centers_indices_[cluster_id]]
cluster = np.unique(words[np.nonzero(affprop.labels_==cluster_id)])
cluster_str = ", ".join(cluster)
print(" - *%s:* %s" % (exemplar, cluster_str))
しかし、私は望ましい出力を得られませんでした。したがって、私の望む結果を得るための適切なアプローチを提案してください。
ここをクリックしてください:https://stackoverflow.com/questions/62328/is-there-an-algorithm-that-tells-the-semantic-similarity-of-two-phrases/43213509 – polm23
ありがとう。非常に便利です。 –