<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>gensim | DL FreeTime</title>
	<atom:link href="https://www.ct-innovation.blog/dl-freetime/tag/gensim/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.ct-innovation.blog/dl-freetime</link>
	<description>Start studying deep learning in my Free time</description>
	<lastBuildDate>Thu, 18 Apr 2024 13:49:55 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/cropped-cooltext289278806579247-32x32.png</url>
	<title>gensim | DL FreeTime</title>
	<link>https://www.ct-innovation.blog/dl-freetime</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/><atom:link rel="hub" href="https://websubhub.com/hub"/>	<item>
		<title>word2vec: 自然言語処理の可能性を広げる技術</title>
		<link>https://www.ct-innovation.blog/dl-freetime/programming/python/2729/</link>
					<comments>https://www.ct-innovation.blog/dl-freetime/programming/python/2729/#respond</comments>
		
		<dc:creator><![CDATA[Yuki]]></dc:creator>
		<pubDate>Thu, 09 May 2024 01:32:00 +0000</pubDate>
				<category><![CDATA[AI/MachineLearning]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[gensim]]></category>
		<guid isPermaLink="false">https://www.ct-innovation.blog/dl-freetime/?p=2729</guid>

					<description><![CDATA[自然言語処理（NLP）の分野で大きな注目を集めているのがword2vecです。word2vecは、単語をベクトル化することで、コンピュータが言語を理解し、処理することを可能にします。この記事では、word2vecの概要、 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">自然言語処理（NLP）の分野で大きな注目を集めているのがword2vecです。word2vecは、単語をベクトル化することで、コンピュータが言語を理解し、処理することを可能にします。この記事では、word2vecの概要、仕組み、そしてPythonでの実装例を紹介します。</p>



<h2 class="wp-block-heading">word2vecとは</h2>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-reference">

<a rel="noopener" target="_blank" href="https://arxiv.org/abs/1301.3781" title="Efficient Estimation of Word Representations in Vector Space" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img fetchpriority="high" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Farxiv.org%2Fabs%2F1301.3781?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Efficient Estimation of Word Representations in Vector Space</div><div class="blogcard-snippet external-blogcard-snippet">We propose two novel model architectures for computing continuous vector representations of words from very large data s...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://arxiv.org/abs/1301.3781v3" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">arxiv.org</div></div></div></div></a>
</div>



<p class="wp-block-paragraph">word2vecは、Google社のTomas Mikolovらによって2013年に提案された単語のベクトル表現手法です。この手法は、大量のテキストデータから単語の意味を学習し、各単語を高次元のベクトルで表現します。これにより、単語間の意味的な関係性を数値的に捉えることができます。</p>



<h2 class="wp-block-heading">word2vecの仕組み</h2>



<p class="wp-block-paragraph">word2vecには、主に2つのアーキテクチャがあります：Continuous Bag-of-Words（CBOW）とSkip-gramです。</p>



<h3 class="wp-block-heading">CBOW</h3>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="469" height="614" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-04-18-224854.png" alt="" class="wp-image-2732" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-04-18-224854.png 469w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-04-18-224854-229x300.png 229w" sizes="(max-width: 469px) 100vw, 469px" /></figure>



<p class="wp-block-paragraph">CBOWは、周辺の単語から中心単語を予測するモデルです。例えば、&#8221;The cat sits on the mat&#8221;という文があった場合、&#8221;The&#8221;、&#8221;sits&#8221;、&#8221;on&#8221;、&#8221;the&#8221;、&#8221;mat&#8221;から&#8221;cat&#8221;を予測します。</p>



<h3 class="wp-block-heading">Skip-gram</h3>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="465" height="594" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-04-18-224906.png" alt="" class="wp-image-2733" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-04-18-224906.png 465w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-04-18-224906-235x300.png 235w" sizes="(max-width: 465px) 100vw, 465px" /></figure>



<p class="wp-block-paragraph">Skip-gramはCBOWの逆で、中心単語から周辺の単語を予測するモデルです。同じ例で言えば、&#8221;cat&#8221;から&#8221;The&#8221;、&#8221;sits&#8221;、&#8221;on&#8221;、&#8221;the&#8221;、&#8221;mat&#8221;を予測します。</p>



<p class="wp-block-paragraph">これらのモデルを大量のテキストデータで学習させることで、単語のベクトル表現を得ることができます。</p>



<h2 class="wp-block-heading">数式で表現するword2vec</h2>



<p class="wp-block-paragraph">word2vecは、以下のような目的関数を最適化することで学習されます：</p>



<ul class="wp-block-list">
<li>CBOW： $$J(\theta) = \frac{1}{T} \sum_{t=1}^{T} \log p(w_t | w_{t-k}, &#8230;, w_{t-1}, w_{t+1}, &#8230;, w_{t+k})$$</li>



<li>Skip-gram： $$J(\theta) = \frac{1}{T} \sum_{t=1}^{T} \sum_{-k \leq j \leq k, j \neq 0} \log p(w_{t+j} | w_t)$$</li>
</ul>



<p class="wp-block-paragraph">ここで、Tはコーパスの単語数、kはウィンドウサイズ、w_tはt番目の単語を表します。</p>



<h2 class="wp-block-heading">Pythonでのword2vecの実装</h2>



<p class="wp-block-paragraph">Pythonでword2vecを実装するには、genismライブラリを使用するのが一般的です。以下は、簡単な実装例です。</p>



<pre class="wp-block-code python"><code><code>from gensim.models import Word2Vec

sentences = &#91;&#91;"cat", "sits", "on", "the", "mat"],
             &#91;"dog", "runs", "in", "the", "park"]]

model = Word2Vec(sentences, min_count=1)

print(model.wv&#91;'cat'])
print(model.wv.most_similar('cat'))</code></code></pre>



<p class="wp-block-paragraph">上記のコードでは、2つの文からなるリストを用意し、Word2Vecモデルを学習させています。<code>min_count</code>は、出現回数がこの値以下の単語を無視するためのパラメータです。</p>



<p class="wp-block-paragraph">学習後、<code>model.wv['cat']</code>で&#8221;cat&#8221;のベクトル表現を取得できます。また、<code>model.wv.most_similar('cat')</code>で、&#8221;cat&#8221;と意味的に近い単語を見つけることができます。</p>



<h2 class="wp-block-heading">word2vecの応用例</h2>



<p class="wp-block-paragraph">word2vecは、様々なNLPタスクで活用されています。例えば：</p>



<ul class="wp-block-list">
<li>文書分類</li>



<li>感情分析</li>



<li>機械翻訳</li>



<li>質問応答システム</li>



<li>テキスト要約</li>
</ul>



<p class="wp-block-paragraph">これらのタスクでは、単語のベクトル表現を入力として使用することで、より高度な言語処理を実現しています。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">word2vecは、自然言語処理の可能性を大きく広げる技術です。単語をベクトル化することで、コンピュータが言語を理解し、処理することができるようになりました。今回は、word2vecの概要、仕組み、そしてPythonでの実装例を紹介しました。word2vecを活用することで、より高度な自然言語処理システムの構築が可能になるでしょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ct-innovation.blog/dl-freetime/programming/python/2729/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
