質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

解決済

Word2Vecにおけるコサイン類似度とgensimの類似度測定関数について

tenjin
tenjin

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

2回答

0評価

0クリップ

63閲覧

投稿2018/07/30 13:45

前提・実現したいこと

Word2Vecにおける類似度測定関数について、
コサイン類似度で測定しているとあるのですが、

コサイン類似度の式に当てはめたときに、
イメージ説明
このコードでは一体分母と分子が何にあたるのかよくわかりません。
コード参照元

Python

import gensim word2vec_model = gensim.models.KeyedVectors.load_word2vec_format('model/model_neologd.vec', binary=False) import pprint pprint.pprint(word2vec_model.similarity('国王', '王妃'))


また、word2vecでベクトルから単語を出力するコードにおいて、
どのような原理で類似単語が出力され、コサイン類似度による類似度測定はどのように関わっているのかわからず、困っています。
コード参照元2

python

sentences = gensim.models.word2vec.Text8Corpus(filename) model = Word2Vec(sentences, size=100, window=5, min_count=5, workers=4) vector = model.wv["明智"] word = model.most_similar( [ vector ], [], 5)

### 試したこと
どちらの問題も
gensimにおけるsimilarity関数の説明を読みましたが、
よくわかりませんでした。

n_similarity(ws1, ws2) Compute cosine similarity between two sets of words. Parameters: ws1 (list of str) – Sequence of words. ws2 (list of str) – Sequence of words. Returns: Similarities between ws1 and ws2. Return type: numpy.ndarray

most_similar(**kwargs) Find the top-N most similar entities. Possibly have positive and negative list of entities in **kwargs.

他、参考資料

ruby で短い文章の cos類似度を計算してみる

補足情報(FW/ツールのバージョンなど)

python3.6

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

hayataka2049
hayataka2049

2018/07/30 13:58

コサイン類似度そのものについては理解していますか?
tenjin
tenjin

2018/07/30 21:29

ご質問いただきましてありがとうございます。強調フィルタリングにおけるコサイン類似度は、cos\(a,b\) = a・b / \(|a| ・ |b|\) = 両方アクセスしたユーザ数 / 商品a, bそれぞれにアクセスしたユーザ数で求められているという理解です。コサイン類似度自体は、コサイン値を求めており2点のベクトルのなす角度によって類似度を測定しているという理解です。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。