2019年4月29日月曜日

KHコーダ(KHcoder)でテキストマイニング 準備編

KHコーダ(KHcoder)で英文のテキストマイニングをやってみようと思った。

題材は「プロジェクトグーテンベルク」という日本の「青空文庫」みたいなサイトからテキスト形式でダウンロード。

エディタで中身を確認。
するとココで大きな問題を発見する。

体裁を整えるために文章の右側で改行してあるのだ。

↓こんな感じ
His manner was not effusive. It seldom was; but he was glad, I
think, to see me. With hardly a word spoken, but with a kindly
eye, he waved me to an armchair, threw across his case of cigars,
and indicated a spirit case and a gasogene in the corner. Then he
stood before the fire and looked me over in his singular
introspective fashion.


今回使用するテキストマイニングツール「KHコーダ(KHcoder)」では、文章の終わりを句読点で段落の終わりを改行で判断する。
この場合、一つの段落にもかかわらずKHコーダでは6つの段落と判断してしまう。これでは正確な分析はできない。
更には、通常は語と語の間を半角スペースで区切ってあるが文末に改行がある場合はこの半角スペースが無い。
よって修正しようと思うと、半角スペースを挿入して改行を削除(または改行を削除して半角スペースを挿入でも問題無し)という作業が必要となる。
短い文章であれば問題は無いけれど、文章が長いと手間がかかるしタイプミスや操作ミスの可能性もある。

そこで良い方法はないだろうかと調べるとワープロソフトの「ワード」で改行を削除できることが分かった。

以下その手順(Word 2013 の場合)

準備として改行文字が表示されていない場合は表示させる。
1.[ファイル] をクリックして [オプション]
2.[表示] をクリックし、[段落記号] をチェックして [OK]

改行を削除する方法
1.[ホーム] タブをクリックし、編集グループにある [置換] をクリック
2.[オプション] をクリックし、[あいまい検索] のチェックを外す。次に[特殊文字] をクリックして [段落記号] をクリック
3.「検索する文字列」に改行を表す文字列 ^p が入力される。「置換後の文字列」には何も入力しないと削除される。
ここで「検索する文字列」に段落記号 ^p を、「置換後の文字列」に半角スペースを入れて実行すると改行文字は削除され、代わりに半角スペースが挿入される。


以上の作業で改行は削除できた。しかし今度は段落が分からなくなってしまう。そこで良く文章を見ると半角スペースが二つ繋がっている箇所がある(もし半角スペースが表示されていない場合は、段落記号を表示したようにオプションの表示でスペースを表示させる)。
元の段落の場所は、改行が二つ繋がっていた場所で改行を半角スペースに置換させたので半角スペースが繋がっている状態となっているのだ。
よって、同じように今度は半角スペース2つを「検索する文字列」に入れ、「置換後の文字列」に段落記号 ^p を入れる。段落記号を2つ入れても問題無い。一つだと段落同士が隣接するし、二つ入れると段落と段落の間が一段改行される形になる。どちらがいいかはお好みで。

場合によっては改行の前に半角スペースが入ってしまうことがある。この場合も「検索する文字列」に半角スペースと段落記号 ^p を、「置換後の文字列」に段落記号 ^p を入れて置換すると半角スペースは削除される。

どうやらワードだけでなくエクセルでも改行文字の削除はできるようなのだが、今回はワードで目的とする操作ができたのでエクセルの方は調べなかった。興味がある方はご自分で調べてみて下さい。

これで題材の準備はOK。
テキストマイニングの場合、文や段落が重要な意味を持つため文章の区切りを正確にすることが大事である。間違った情報からは間違った結果しか導かない。ご注意を!!