<?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>ワード | nujonoa_blog</title>
	<atom:link href="https://nujonoa.com/tag/%E3%83%AF%E3%83%BC%E3%83%89/feed/" rel="self" type="application/rss+xml" />
	<link>https://nujonoa.com</link>
	<description>人生に役立つデータ集</description>
	<lastBuildDate>Sat, 05 Sep 2020 12:40:57 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>

<image>
	<url>https://nujonoa.com/wp-content/uploads/2019/04/cropped-DSC00976-e1554456145409-32x32.jpg</url>
	<title>ワード | nujonoa_blog</title>
	<link>https://nujonoa.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>エクセルVBAで分かち書き、単語の頻度分析を行う方法！テキストマイニング、形態素分析</title>
		<link>https://nujonoa.com/how-to-do-text-mining-with-excel/</link>
					<comments>https://nujonoa.com/how-to-do-text-mining-with-excel/#comments</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Sat, 05 Sep 2020 12:38:52 +0000</pubDate>
				<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[ワード]]></category>
		<category><![CDATA[分かち書き]]></category>
		<category><![CDATA[キーワード検索]]></category>
		<category><![CDATA[テキストマイニング]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=7218</guid>

					<description><![CDATA[こちらの記事で、ワードVBAで分かち書きする方法を記載したのですが、ExcelVBAでも分かち書き、単語の頻度分析を行うことができましたので紹介させてもらいます。 目次 エクセルVBAで分かち書き、単語の頻度分析を行う方 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>こちらの記事で、ワードVBAで分かち書きする方法を記載したのですが、<br>ExcelVBAでも分かち書き、単語の頻度分析を行うことができましたので紹介させてもらいます。</p>



<figure class="wp-block-embed-wordpress wp-block-embed is-type-wp-embed is-provider-nujonoa-blog"><div class="wp-block-embed__wrapper">

<a rel="noopener" target="_blank" href="https://nujonoa.com/how-to-do-text-mining-with-words/" title="エクセル、ワードを用いて無料で分かち書き、単語の頻度分析を行う方法！形態素分析" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-right cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="http://nujonoa.com/wp-content/uploads/2019/05/25052019121319A-160x90.png" alt="" class=" internal-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">エクセル、ワードを用いて無料で分かち書き、単語の頻度分析を行う方法！形態素分析</div><div class="blogcard-snippet internal-blogcard-snippet">エクセル、ワードを用いて無料で分かち書き、単語の頻度分析を行う方法！形態素分析データベースを作成していくと、・よく出てくるワードは何か？・最近皆さんが、注目しているものは何か？を知りたいときが出てくると思います。そんな時に必要になってくるの...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://nujonoa.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nujonoa.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.09.05</div></div></div></div></a>
</div></figure>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">エクセルVBAで分かち書き、単語の頻度分析を行う方法！形態素分析</a></li><li><a href="#toc2" tabindex="0">単語の切り分け≒分かち書き≒形態素分析とは？</a><ol><li><a href="#toc3" tabindex="0">形態素分析</a></li></ol></li><li><a href="#toc4" tabindex="0">ワードは、分かち書きができる。</a></li><li><a href="#toc5" tabindex="0">ワードの単語の切り分けは「WORD VBA」の.words</a></li><li><a href="#toc6" tabindex="0">プログラム紹介</a><ol><li><a href="#toc7" tabindex="0">プログラムの出力結果</a></li></ol></li><li><a href="#toc8" tabindex="0">プログラムの説明</a><ol><li><a href="#toc9" tabindex="0">プログラム紹介</a></li><li><a href="#toc10" tabindex="0">ポイント</a></li></ol></li><li><a href="#toc11" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">エクセルVBAで分かち書き、単語の頻度分析を行う方法！形態素分析</span></h2>



<p>今回は、エクセルVBAから</p>



<p>・ワードを立ち上げて、<br>・セルの値をワードに打ち込んで、<br>・ワードを使って分かち書きを行い<br>・セルに書きこむ</p>



<p>という作業を自動化していきたいと思います。</p>



<p>エクセルVBAではなぜか速度が遅く、ワードVBAでどうにか行っていたのですが、<br>やはりExcelの方が扱いやすいですね。</p>



<p>それでは、エクセルVBAを用いた分かち書きの方法を紹介していきたいと思います。</p>



<p>仕事でよく使われる言葉の分析などなど、<br>色々使ってみてください！</p>



<h2 class="wp-block-heading"><span id="toc2">単語の切り分け≒分かち書き≒形態素分析とは？</span></h2>



<p>まずは簡単に、分かち書きについて紹介していきます。</p>



<p>分かち書きは文章を「単語」に分けることで、</p>



<p>さらに、分けた後の単語が動詞か名詞か判断するところまで行うことを</p>



<p>形態素分析</p>



<p>といいます。</p>





<a rel="noopener" target="_blank" href="https://ja.wikipedia.org/wiki/%E5%BD%A2%E6%85%8B%E7%B4%A0%E8%A7%A3%E6%9E%90#:~:text=%E5%BD%A2%E6%85%8B%E7%B4%A0%E8%A7%A3%E6%9E%90%EF%BC%88%E3%81%91%E3%81%84%E3%81%9F%E3%81%84%E3%81%9D,%E5%BD%A2%E6%85%8B%E7%B4%A0%E3%81%AE%E5%93%81%E8%A9%9E%E7%AD%89%E3%82%92" title="形態素解析 - Wikipedia" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-right cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b4/Human_Language_Families_%28wikicolors%29.png/1280px-Human_Language_Families_%28wikicolors%29.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">形態素解析 - Wikipedia</div><div class="blogcard-snippet external-blogcard-snippet"></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 loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://ja.wikipedia.org/wiki/%E5%BD%A2%E6%85%8B%E7%B4%A0%E8%A7%A3%E6%9E%90#:~:text=%E5%BD%A2%E6%85%8B%E7%B4%A0%E8%A7%A3%E6%9E%90%EF%BC%88%E3%81%91%E3%81%84%E3%81%9F%E3%81%84%E3%81%9D,%E5%BD%A2%E6%85%8B%E7%B4%A0%E3%81%AE%E5%93%81%E8%A9%9E%E7%AD%89%E3%82%92" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">ja.wikipedia.org</div></div></div></div></a>




<p>英語の場合の分かち書きは単語の間に最初から区切りがありますので、<br>非常に簡単なのですが、(I like football　など)</p>



<p>日本語の場合は、</p>



<p>僕はサッカーが好きです。</p>



<p>と、区切りがありません。<br>ですので、何かのソフトを使って、</p>



<p>僕　/　は　/　サッカー　/　が　/　好き　/　です</p>



<p>と切り分ける必要があります。</p>



<h3 class="wp-block-heading"><span id="toc3">形態素分析</span></h3>



<p>形態素分析ではこれからさらに、</p>



<p>僕　/　は　/　サッカー　/　が　/　好き　/　です<br>名詞 /助詞/　名詞　　　/　助詞/　動詞　/　助詞</p>



<p>の様に切り分け、さらに、</p>



<p>・好きという「良いワード」の前にある名詞は何か<br>・逆に嫌い、汚いなど「悪いワード」の前にある名詞は何か？</p>



<p>などを分析していくことになります。</p>



<p>今回は、この中でも、「分かち書き」し、「単語の出現頻度」を計算できるプログラムになります。</p>



<h2 class="wp-block-heading"><span id="toc4">ワードは、分かち書きができる。</span></h2>



<p>パソコンで文章を打つと、適度な区切り位置を決めて、漢字に変換してくれますよね。<br>時々無茶苦茶なときもありますが、よく考えると、、この機能ってすごいですよね。</p>



<p>更に、ワードで文章を打つと、見やすいように日本語と数字の間隔を自動調整するなど、様々な文章の公正を自動でしてくれます。<br>これらの機能の一部として、「単語の切り分けも」行うことができます。</p>



<p>今回はその機能を使って分かち書きを実行していこうと思います。</p>



<h2 class="wp-block-heading"><span id="toc5">ワードの単語の切り分けは「WORD VBA」の.words</span></h2>



<p>ワードの単語の切り分けは、<br>word VBAの.wordsという機能になります。</p>



<p>本来は、ワードを切り分けて、単語数をカウントする、<br>切り分けたワードがどこに出現するか確認する。</p>



<p>などのために使用される関数ですが、<br>今回はこの関数を使ってプログラムを組んでいこうと思います。</p>





<a rel="noopener" target="_blank" href="https://docs.microsoft.com/ja-jp/office/vba/api/word.words" title="Words オブジェクト (Word)" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-right cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://learn.microsoft.com/en-us/media/open-graph-image.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Words オブジェクト (Word)</div><div class="blogcard-snippet external-blogcard-snippet">Office VBA リファレンス トピック</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 loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://learn.microsoft.com/ja-jp/office/vba/api/word.words" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">learn.microsoft.com</div></div></div></div></a>




<h2 class="wp-block-heading"><span id="toc6">プログラム紹介</span></h2>



<p>では、さっそくプログラムを紹介していきます。</p>



<h3 class="wp-block-heading"><span id="toc7">プログラムの出力結果</span></h3>



<p>まずは、プログラムの出力結果です。</p>



<p>このプログラムを使用すると、</p>



<p>①分かち書きしたい文章を入力。<br>②分かち書きした結果を表示<br>③単語の頻度を計算。</p>



<p>できます。</p>



<p>(クリックで拡大)</p>



<figure class="wp-block-image size-large"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2020/09/image-43.png"><img loading="lazy" decoding="async" width="900" height="471" src="https://nujonoa.com/wp-content/uploads/2020/09/image-43-900x471.png" alt="" class="wp-image-7219" srcset="https://nujonoa.com/wp-content/uploads/2020/09/image-43-900x471.png 900w, https://nujonoa.com/wp-content/uploads/2020/09/image-43-500x262.png 500w, https://nujonoa.com/wp-content/uploads/2020/09/image-43-300x157.png 300w, https://nujonoa.com/wp-content/uploads/2020/09/image-43-768x402.png 768w, https://nujonoa.com/wp-content/uploads/2020/09/image-43-1536x804.png 1536w, https://nujonoa.com/wp-content/uploads/2020/09/image-43.png 1628w" sizes="(max-width: 900px) 100vw, 900px" /></a></figure>



<p>例として、清水翔太さんの歌詞を分かち書きしてみました。</p>



<p>結果を見てみると、君、僕が多いようです。<br>好き、愛してる、などなど恋愛の曲ばっかりをとってきてしまったようですね。笑<br></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="161" height="751" src="https://nujonoa.com/wp-content/uploads/2020/09/image-44.png" alt="" class="wp-image-7221"/></figure>



<h2 class="wp-block-heading"><span id="toc8">プログラムの説明</span></h2>



<p>今回のプログラムは、エクセルのVBAで書いています。</p>



<p>ExcelVBAから</p>



<p>①ワードを立ち上げて、<br>②セルの内容を転記<br>③ワードで分かち書き<br>④セルに書き込み<br>②～④を繰り返す。<br>⑤ワードを閉じる。<br>⑥頻度分析</p>



<p>という順番で行っています</p>



<p>下記ボタンからダウンロードできますので、<br>一度お試しください。</p>



<div class="wp-block-file"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2020/09/分かち書き.xlsm">分かち書き<span class="fa fa-external-link internal-icon anchor-icon"></span></a><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2020/09/分かち書き.xlsm" class="wp-block-file__button" download>クリックしてダウンロード<span class="fa fa-external-link internal-icon anchor-icon"></span></a></div>



<h3 class="wp-block-heading"><span id="toc9">プログラム紹介</span></h3>



<p>下記が、今回使用したプログラムになります。</p>



<p>ダブルクリックするとコピーできますので、<br>ぜひ使ってみて下さい。</p>



<p>CELLS(1,2)~CELLS(1,11)までの文章を変換していきます。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
' アクティブセルの文字列を、
' Word の機能を使用して、単語に分解
Sub WAKACHIGAKI()

    Dim wd As Object
    Dim text As String
    Dim i As Double
    
    'Wordオブジェクトを取得
    Set wd = CreateObject(&quot;Word.Application&quot;)
    
    'Wordを見えるようにする
    wd.Visible = True
    
    Z = 2
    
    'Wordで新規文書を作成できる状態にする
    Set doc = wd.Documents.Add
    
    
    For J = 1 To 10
 
    moji = Cells(1, J + 1)
 
    
    ' Word のドキュメントに、アクティブセルのテキストを書きこむ
    wd.Selection.text = moji
       

    For i = 1 To wd.Selection.Words.Count
    
        Cells(i + 1, J + 1) = wd.Selection.Words(i).text
        Cells(Z, 12) = wd.Selection.Words(i).text
        Cells(Z, 13) = wd.Selection.Words(i).text
        Z = Z + 1
        
            If i Mod 20 = 0 Then
            
            Application.StatusBar = &quot;処理中...　文章&quot; &amp; J &amp; &quot;/10　単語&quot; &amp; i &amp; &quot;/&quot; &amp; wd.Selection.Words.Count

            End If
    
    Next i

    doc.Content.Delete
    
    Next J

    
    ' Word は保存せず終了
    wd.Quit False
    
        Application.StatusBar = False
        
        
    For L = 1 To Z
    
        If Cells(L, 13) Like &quot;&#x5B;あ-ん]&quot; Then
            Cells(L, 13).ClearContents
        End If
    Next
        
    ActiveSheet.Range(&quot;$M$2:$M$10000&quot;).RemoveDuplicates Columns:=1, Header:=xlNo
    Cells(2, 14) = &quot;=SUMPRODUCT((M2=$L$2:$L$&quot; &amp; Z &amp; &quot;)*1)&quot;
    Cells(2, 14).Copy
    Range(Cells(2, 14), Cells(Z, 14)).PasteSpecial
    Range(Cells(2, 13), Cells(Z, 14)).Sort Key1:=Cells(2, 14), order1:=xlDescending



End Sub

</pre></div>


<h3 class="wp-block-heading"><span id="toc10">ポイント</span></h3>



<p>ポイントは、</p>



<p>・words(i).textで分かち書きした単語を書き出す。<br>・If Cells(L, 13) Like "[あ-ん]" Then　で「あ～ん」一文字の時を消す。<br>・ActiveSheet.Range("$M$2:$M$10000").RemoveDuplicates Columns:=1, Header:=xlNo<br>で重複した単語の削除</p>



<p>くらいでしょうか？<br>また分からないことありましたら、コメントに書き込んでいただければ説明します！</p>



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



<p>Excelを使って、ワードを立ち上げて作業することって、<br>正直そこまでないかと思うのですが、<br>分かち書きは非常に便利な機能になっています。</p>



<p>ぜひ、一度使っていただけたらと思います！！！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/how-to-do-text-mining-with-excel/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
		<item>
		<title>エクセル、ワードを用いて無料で分かち書き、単語の頻度分析を行う方法！形態素分析</title>
		<link>https://nujonoa.com/how-to-do-text-mining-with-words/</link>
					<comments>https://nujonoa.com/how-to-do-text-mining-with-words/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Tue, 25 Aug 2020 11:57:29 +0000</pubDate>
				<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[ワード]]></category>
		<category><![CDATA[分かち書き]]></category>
		<category><![CDATA[キーワード検索]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=6831</guid>

					<description><![CDATA[目次 エクセル、ワードを用いて無料で分かち書き、単語の頻度分析を行う方法！形態素分析単語の切り分け≒分かち書き≒形態素分析とは？分かち書き形態素分析ワードは、単語の分析をしてくれる。ワードの単語の切り分けは「WORD V [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">エクセル、ワードを用いて無料で分かち書き、単語の頻度分析を行う方法！形態素分析</a></li><li><a href="#toc2" tabindex="0">単語の切り分け≒分かち書き≒形態素分析とは？</a><ol><li><a href="#toc3" tabindex="0">分かち書き</a></li><li><a href="#toc4" tabindex="0">形態素分析</a></li></ol></li><li><a href="#toc5" tabindex="0">ワードは、単語の分析をしてくれる。</a></li><li><a href="#toc6" tabindex="0">ワードの単語の切り分けは「WORD VBA」の.words</a></li><li><a href="#toc7" tabindex="0">プログラム紹介</a><ol><li><a href="#toc8" tabindex="0">プログラムの出力結果</a></li><li><a href="#toc9" tabindex="0">プログラム</a></li></ol></li><li><a href="#toc10" tabindex="0">プログラムの説明</a></li><li><a href="#toc11" tabindex="0">①単語の切り分け</a><ol><li><a href="#toc12" tabindex="0">エクセルを立ち上げる</a></li><li><a href="#toc13" tabindex="0">結果を貼り付ける</a></li></ol></li><li><a href="#toc14" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">エクセル、ワードを用いて無料で分かち書き、単語の頻度分析を行う方法！形態素分析</span></h2>



<p>データベースを作成していくと、</p>



<p class="is-style-question-box">・よく出てくるワードは何か？<br>・最近皆さんが、注目しているものは何か？</p>



<p>を知りたいときが出てくると思います。</p>



<p>そんな時に必要になってくるのが、</p>



<p>・単語を切り取り、集計すること</p>



<p>が必要になってきます。</p>



<p>今日は、ワードの機能を用いて、単語の切り分け、エクセルの機能を用いて単語の集計をするプログラムを作成しましたので、紹介したいと思います。</p>



<h2 class="wp-block-heading"><span id="toc2">単語の切り分け≒分かち書き≒形態素分析とは？</span></h2>



<p>単語の切り分けは</p>



<p>分かち書き</p>



<p>と呼ばれたりします。</p>



<p>さらに、分けた後の単語が動詞か名詞か判断するところまで行うことを</p>



<p>形態素分析</p>



<p>といいます。</p>





<a rel="noopener" target="_blank" href="https://ja.wikipedia.org/wiki/%E5%BD%A2%E6%85%8B%E7%B4%A0%E8%A7%A3%E6%9E%90#:~:text=%E5%BD%A2%E6%85%8B%E7%B4%A0%E8%A7%A3%E6%9E%90%EF%BC%88%E3%81%91%E3%81%84%E3%81%9F%E3%81%84%E3%81%9D,%E5%BD%A2%E6%85%8B%E7%B4%A0%E3%81%AE%E5%93%81%E8%A9%9E%E7%AD%89%E3%82%92" title="形態素解析 - Wikipedia" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-right cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b4/Human_Language_Families_%28wikicolors%29.png/1280px-Human_Language_Families_%28wikicolors%29.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">形態素解析 - Wikipedia</div><div class="blogcard-snippet external-blogcard-snippet"></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 loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://ja.wikipedia.org/wiki/%E5%BD%A2%E6%85%8B%E7%B4%A0%E8%A7%A3%E6%9E%90#:~:text=%E5%BD%A2%E6%85%8B%E7%B4%A0%E8%A7%A3%E6%9E%90%EF%BC%88%E3%81%91%E3%81%84%E3%81%9F%E3%81%84%E3%81%9D,%E5%BD%A2%E6%85%8B%E7%B4%A0%E3%81%AE%E5%93%81%E8%A9%9E%E7%AD%89%E3%82%92" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">ja.wikipedia.org</div></div></div></div></a>




<h3 class="wp-block-heading"><span id="toc3">分かち書き</span></h3>



<p>英語の場合、</p>



<p>I like football</p>



<p>と単語の間に最初から区切りがありますが、<br>日本語の場合は、</p>



<p>僕はサッカーが好きです。</p>



<p>と、区切りがありません。<br>ですので、何かのソフトを使って、</p>



<p>僕　/　は　/　サッカー　/　が　/　好き　/　です</p>



<p>と切り分ける必要があります。</p>



<h3 class="wp-block-heading"><span id="toc4">形態素分析</span></h3>



<p>形態素分析ではこれからさらに、</p>



<p>僕　/　は　/　サッカー　/　が　/　好き　/　です<br>名詞 /助詞/　名詞　　　/　助詞/　動詞　/　助詞</p>



<p>の様に切り分け、さらに、</p>



<p>・好きという「良いワード」の前にある名詞は何か<br>・逆に嫌い、汚いなど「悪いワード」の前にある名詞は何か？</p>



<p>などを分析していくことになります。</p>



<p>今回は、この中でも、「分かち書き」し、「単語の出現頻度」を計算できるプログラムになります。</p>



<h2 class="wp-block-heading"><span id="toc5">ワードは、単語の分析をしてくれる。</span></h2>



<p>ワードで文章を打つと、見やすいように、</p>



<p>日本語と数字の間隔を自動調整する</p>



<p>など、様々な文章の公正を自動でしてくれます。</p>



<p>これらの機能の一部として、「単語の切り分けも」実は内部で行ってくれています。</p>



<p>今回はその機能を使って分かち書きを実行していきます。</p>



<h2 class="wp-block-heading"><span id="toc6">ワードの単語の切り分けは「WORD VBA」の.words</span></h2>



<p>ワードの単語の切り分けは、<br>word VBAの.wordsという機能になります。</p>



<p>本来は、ワードを切り分けて、単語数をカウントする、<br>切り分けたワードがどこに出現するか確認する。</p>



<p>などのために使用される関数ですが、<br>今回はこの関数を使ってプログラムを組んでいこうと思います。</p>





<a rel="noopener" target="_blank" href="https://docs.microsoft.com/ja-jp/office/vba/api/word.words" title="Words オブジェクト (Word)" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-right cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://learn.microsoft.com/en-us/media/open-graph-image.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Words オブジェクト (Word)</div><div class="blogcard-snippet external-blogcard-snippet">Office VBA リファレンス トピック</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 loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://learn.microsoft.com/ja-jp/office/vba/api/word.words" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">learn.microsoft.com</div></div></div></div></a>




<h2 class="wp-block-heading"><span id="toc7">プログラム紹介</span></h2>



<p>では、さっそくプログラムを紹介していきます。</p>



<h3 class="wp-block-heading"><span id="toc8">プログラムの出力結果</span></h3>



<p>まずは、プログラムの出力結果です。</p>



<p>このプログラムを使用すると、</p>



<p>①出現した単語の種類と回数(B、C列)<br>②分かち書きした文章一覧(I列以降)<br>③計算用(E列)</p>



<figure class="wp-block-image size-large"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2020/08/image-20.png"><img loading="lazy" decoding="async" width="900" height="523" src="https://nujonoa.com/wp-content/uploads/2020/08/image-20-900x523.png" alt="" class="wp-image-6950" srcset="https://nujonoa.com/wp-content/uploads/2020/08/image-20-900x523.png 900w, https://nujonoa.com/wp-content/uploads/2020/08/image-20-500x290.png 500w, https://nujonoa.com/wp-content/uploads/2020/08/image-20-300x174.png 300w, https://nujonoa.com/wp-content/uploads/2020/08/image-20-768x446.png 768w, https://nujonoa.com/wp-content/uploads/2020/08/image-20.png 1429w" sizes="(max-width: 900px) 100vw, 900px" /></a><figcaption>ワードで分かち書きシステム使用例</figcaption></figure>



<p>が表示されます。</p>



<h3 class="wp-block-heading"><span id="toc9">プログラム</span></h3>



<p>プログラムは、エクセルのVBAではなく、ワードのVBAに書き込みます。</p>



<p>ワードで処理を行い→エクセルを立ち上げて→エクセルに張り付ける<br>作業をワードのVBAで行っています。<br><s>※エクセル側からワードに指示を出すと、作業速度が非常に遅かったですので、<br>　ワード側のVBAでプログラムを書いています。</s></p>



<p>ExcelVBAでも高速で、しかもきれいにまとめることができました！！！！↓</p>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box has-border-color has-pink-border-color"><div class="tab-caption-box-label block-box-label box-label fab-download"><span class="tab-caption-box-label-text block-box-label-text box-label-text">こちらをどうぞ！</span></div><div class="tab-caption-box-content block-box-content box-content">
<figure class="wp-block-embed-wordpress wp-block-embed is-type-wp-embed is-provider-nujonoa-blog"><div class="wp-block-embed__wrapper">

<a rel="noopener" target="_blank" href="https://nujonoa.com/how-to-do-text-mining-with-excel/" title="エクセルVBAで分かち書き、単語の頻度分析を行う方法！テキストマイニング、形態素分析" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-right cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" src="http://nujonoa.com/wp-content/uploads/2019/05/25052019121319A-160x90.png" alt="" class=" internal-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">エクセルVBAで分かち書き、単語の頻度分析を行う方法！テキストマイニング、形態素分析</div><div class="blogcard-snippet internal-blogcard-snippet">こちらの記事で、ワードVBAで分かち書きする方法を記載したのですが、ExcelVBAでも分かち書き、単語の頻度分析を行うことができましたので紹介させてもらいます。エクセルVBAで分かち書き、単語の頻度分析を行う方法！形態素分析今回は、エクセ...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nujonoa.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nujonoa.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.09.05</div></div></div></div></a>
</div></figure>
</div></div>



<p></p>



<h2 class="wp-block-heading"><span id="toc10">プログラムの説明</span></h2>



<p>プログラムは大きく分けて、</p>



<p>①単語の切り分け<br>②エクセルの立ち上げ<br>③エクセルで計算</p>



<p>の構成でできています。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
Sub センテンスごとに配列に格納する2()

  Dim str(10000, 500) As String
  Dim str2(20000, 1) As String
  
  Dim cnt As Long
  Dim i As Long
  Z = 0
  With ActiveDocument.Sentences
    cnt = .Count
    For i = 1 To cnt
    
    If i Mod 10 = 0 Then
      'ステータスバーへの表示更新
      Application.StatusBar = i &amp; &quot;/&quot; &amp; cnt
      'エクセルのイベント処理
      DoEvents

    End If
    
    cnt2 = .Item(i).Words.Count
    
    For J = 1 To cnt2
    
      str(i, J) = .Item(i).Words(J)
      str2(Z, 0) = .Item(i).Words(J)
      Z = Z + 1
      
    Next
      
      
    Next i
  End With
    
Set objExcel = CreateObject(&quot;Excel.Application&quot;)
objExcel.Application.Visible = True
Set exlBook = objExcel.Workbooks.Add()
Set exlSeet = exlBook.Worksheets.Add()

    Application.ScreenUpdating = False


'exlSeet.cells(2, 8).Resize(UBound(str, 1) + 1, UBound(str, 2) + 1).Value = str()
exlSeet.cells(2, 8).Resize(i, 100).Value = str()

exlSeet.cells(2, 5).Resize(UBound(str2, 1) + 1, UBound(str2, 2) + 1).Value = str2()
exlSeet.cells(2, 2).Resize(UBound(str2, 1) + 1, UBound(str2, 2) + 1).Value = str2()


exlSeet.Range(&quot;$B$1:$B$10000&quot;).RemoveDuplicates Columns:=1, Header:=xlNo

exlSeet.cells(2, 3) = &quot;=COUNTA(B:B)&quot;

SHURUI = exlSeet.cells(2, 3)
    
With exlSeet
    .cells(2, 3) = &quot;=COUNTIF(E:E,B2)&quot;
    .cells(2, 3).Copy
    .Range(exlSeet.cells(2, 3), exlSeet.cells(2 + SHURUI, 3)).Select
    .Paste
    .Range(exlSeet.cells(2, 2), exlSeet.cells(2 + SHURUI, 3)).Sort Key1:=exlSeet.cells(2, 3), order1:=xlDescending

End With

    Application.ScreenUpdating = True

End Sub

</pre></div>


<p></p>



<h2 class="wp-block-heading"><span id="toc11">①単語の切り分け</span></h2>



<p>単語の切り分けは、先ほど説明した通り、<br>.WORDSを使って単語の切り分けをしています。</p>



<p>・段落ごとに切り分け　ループ<br>　・センテンス(文章)に切り分け　ループ<br>　　・文章を単語に切り分けして、配列に代入</p>



<p>という構成をとっており、</p>



<p>二次元配列で、行ごとに<br>・文章毎に、単語を切り分けた結果<br>を代入していっています。<br>※文章ごとにする必要はありませんでしたが、<br>　メモリなどの影響でプログラムが非常に遅くなるのを防いでいます。</p>



<h3 class="wp-block-heading"><span id="toc12">エクセルを立ち上げる</span></h3>



<p>次にエクセルを立ち上げています。</p>



<p>エクセルを立ち上げる方法は2通りあり、</p>



<p>①Set WordApp = CreateObject("Excel.Application")<br>②Set WordApp = New Excel.Application</p>



<p>とありますが、②では、エクセルVBAのコードをワードVBAにも読み込んでおく必要がありますので、①を使用しています。</p>



<h3 class="wp-block-heading"><span id="toc13">結果を貼り付ける</span></h3>



<p>エクセルを貼り付けた後は、結果を貼り付けています。</p>



<p>文章ごとに分かち書きした内容を「列」以降に張り付け、<br>計算用に「列」に単語一覧を縦一列に表示しています。</p>



<p>「列に」単語の種類を洗い出すために重複を削除した結果を表示、<br>その横に、出現頻度を計算しています。</p>



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



<p>ワードVBAはあまり使ったことがありませんでしたが、<br>エクセルではできない機能が使えたりします。</p>



<p>分かち書きをして、単語の頻度を求めることで、最近の流行などをとらえることができると思いますので、ぜひ利用してみてください！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/how-to-do-text-mining-with-words/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
