diff --git a/paper/c119024-thesis.tex b/paper/c119024-thesis.tex index 99b1943..959dbf3 100644 --- a/paper/c119024-thesis.tex +++ b/paper/c119024-thesis.tex @@ -34,8 +34,8 @@ 検索キーワードの誤表記や表記揺れがあれば正しく情報を取得することができないためそれらに対応した キーワードマップが必要である。 そこで本研究では,検索を苦手とする人が簡単に知りたい情報を視覚的に取得可能にするために -形態素解析ツールであるMeCabを用いて,検索キーワードの形態素解析を行い -表記揺れや誤表記などに対応した検索支援キーワードマップ作成システムを作成,提案する。(422文字) +形態素解析ツールである MeCab を用いて,検索キーワードの形態素解析を行い +表記揺れや誤表記などに対応した検索支援キーワードマップ作成システムを作成・提案する。(422文字) % 目次 \tableofcontents @@ -44,7 +44,7 @@ \chapter{はじめに} 本章では研究の背景と目的について説明する。 \section{背景} -インターネットが急速に発展した現代では,誰もがスマートフォンやPCなどといった電子端末を持ち歩いている。 +インターネットが急速に発展した現代では,誰もが携帯型電子端末・PCなどといった情報媒体を持ち歩いている。 %%電子端末の利用者調査など裏付けするものがない 知りたい情報が誰でも簡単に取得できるようになった一方で,検索エンジンを用いたキーワード検索を苦手とする人が多くいることが問題となっている。 20代から60代の男女4407名に,普段インターネットを利用して検索をする際の,検索方法や行動に関するアンケート調査を行った結果において, @@ -53,7 +53,7 @@ 以上のことを踏まえて,本研究では,誰でも簡単に自分が知りたい情報を検索できるキーワードマップの作成を行う。 %%社会的問題との関連性が薄い \section{研究目的} -本研究では,利用者が入力した検索キーワードから,関連するキーワードを正確に取得し,キーワードマップを生成するRubyプログラムを作成する。 +本研究では,利用者が入力した検索キーワードから,関連するキーワードを正確に取得し,キーワードマップを生成する Ruby プログラムを作成する。 %% そして何をどうするのか?何がどうなるのか?(社会的問題と絡める) % ------------------------第二章------------------------ % @@ -85,12 +85,12 @@ キーワードマップ生成サービスについて調査し,キーワードマップの課題点を探る。 \subsection{keysearch Beta} -keysearch Betaは無料で利用可能なキーワードマップ作成ツールである。 \cite{keyseaech} -検索フォームにワードを入力し検索することで,主にGoogleサジェストから検索した -キーワードと関連するキーワードを自動で取得し,キーワードマップを作成することができる。 (図 \ref{fig:keybeta} ) -また作成したキーワードマップから関連するワードのみを抽出し,CSVやSVG形式で保存することも +keysearch Beta は無料で利用可能なキーワードマップ作成ツールである。 \cite{keyseaech} +検索フォームにワードを入力し検索することで,主に Google サジェストから検索した +キーワードと関連するキーワードを自動で取得し,キーワードマップを作成することができる (図 \ref{fig:keybeta} )。 +また作成したキーワードマップから関連するワードのみを抽出し,CSV・SVG形式で保存することも 可能である。 -keysearch Betaで作成されたキーワードマップは入力したキーワードのセカンドキーワード +keysearch Beta で作成されたキーワードマップは入力したキーワードのセカンドキーワード までを抽出した二階層になっており,ひと目で情報を整理することができるという特徴がある。 しかし,入力したキーワードのセカンドキーワードまでしか表示されないことから,関連キーワード を網羅することができず,キーワード選定には向いていない。 @@ -102,10 +102,10 @@ \end{figure} \subsection{OMUSUBI} -OMUSUBIは無料で利用可能なキーワードマップ作成ツールである。 \cite{OMUSUBI} -検索フォームにキーワードを入力することで,Google,Youtube.Amazon,Bing検索 +OMUSUBI は無料で利用可能なキーワードマップ作成ツールである。 \cite{OMUSUBI} +検索フォームにキーワードを入力することで Google・Youtube・Amazon・Bing検索 などのサジェストを自動取得し,それぞれの検索エンジンに沿った -キーワードマップを作成することができる。 (図 \ref{fig:OMUSUBI} ) OMUSUBIで作成されたキーワードマップ +キーワードマップを作成することができる。 (図 \ref{fig:OMUSUBI} ) OMUSUBI で作成されたキーワードマップ はスクロールで大きさの調整やドラッグすることで上下左右への移動, ノードをクリックすることでそのキーワードを中心に配置することができ, キーワードの関連性を階層ごとに把握しやすいことが特徴として挙げられる。 @@ -125,7 +125,7 @@ キーワードマップが生成されることがあるため,一度の検索で入力するキーワードの表記揺れに対応した検索システム が必要となる。 二つ目は,文章のような長いキーワードを入力した場合,キーワードマップが生成されないという点である。 -キーワードマップ生成サービスは,Googleなどの検索サジェストからキーワードを取得しているため, +キーワードマップ生成サービスは, Google などの検索サジェストからキーワードを取得しているため, 検索キーワードが検索サジェストに一致しない場合,関連キーワードを取得することができない。よって, あらかじめ入力された検索キーワードを整理し,検索サジェストに一致しやすくする必要がある。 @@ -135,7 +135,7 @@ 本章では, \ref{sec:kadai} 節で挙げた課題点を踏まえてそれを解決するためのシステムの提案を行う。 \section{本研究の提案} -本研究では,検索キーワードを入力することで,誰でも利用することが可能であり,表記揺れや文章などに対応した +本研究では,検索キーワードを入力することで誰でも利用することが可能であり,表記揺れや文章などに対応した キーワードマップ生成することが可能なシステムを構築する。 \section{課題点を踏まえた改善案} @@ -171,12 +171,12 @@ 検索キーワードの整理には形態素解析を用いる。形態素解析は自然言語処理の一部であり,自然言語を言葉が 意味を有する表現要素の最小単位である形態素まで分割し,それらを品詞として分類,判別する文字列抽出法である。 この技術は検索エンジンの処理やニュースアプリにおける画面上のタイトルの文字組みなどで活用されている。 -主な形態素解析エンジンとしてオープンソースの形態素解析ツールである「MeCab」やPython上における形態素解析 -に有用な「Janome」などが挙げられる。 +主な形態素解析エンジンとしてオープンソースの形態素解析ツールである MeCab や Python 上における形態素解析 +に有用な Janome などが挙げられる。 \section{システム概要} 本研究では,検索キーワードを入力することで,その検索キーワードの情報を中心とした -キーワードマップの生成が可能なシステムを作成する。(図 \ref{fig:gainennzu} )このシステムはRubyを利用して +キーワードマップの生成が可能なシステムを作成する (図 \ref{fig:gainennzu} ) 。このシステムは Ruby を利用して 作成され,検索キーワードに関する情報はGoogleサジェストから取得している。 検索キーワードの表記ゆれや長い検索キーワードなどを入力した場合でも,情報を取得し 誰でも簡単に利用可能で,より多くの情報を取得することでキーワードの選定に向けたものとする。 @@ -193,8 +193,11 @@ 本章では,システムの設計を行う。 \section{システムの全体構成} -本システムはRubyで作成する。Rubyは文字列の正規表現処理に優れており,形態素解析した検索キーワードの - +本システムは Ruby プログラムで作成する。 +Rubyは文字列の正規表現処理に優れており,形態素解析した検索キーワードから必要な情報を抽出することに適しているために +採用する。検索キーワードの形態素解析には MeCab を用いて行う。MeCab は様々なプログラミング言語で利用可能なエンジンであり, +Ruby プログラム内での処理が可能であるために採用する。マップ画像の生成には Graphviz を用いる。 +Graphvizは Ruby プログラム内の画像生成が可能であるために採用する。 \section{使用技術/開発環境} 本節では本システムで使用する技術についてまとめる。 @@ -202,18 +205,18 @@ \subsection{Ruby} Rubyはまつもとゆきひろによって開発されたオブジェクト指向のプログラミング言語である。国産の プログラミング言語としては日本初の国際電気標準会議において国際規格に認証されている。特徴として -クラス定義,ガベージコレクション,強力な文字列操作や正規表現処理,マルチスレッド,例外処理機能, -イテレーターとクロージャ,Mixin,演算子オーバーロードなどの機能がある。 +クラス定義,ガベージコレクション,強力な文字列操作や正規表現処理・マルチスレッド・例外処理機能・ +イテレーター・クロージャ・Mixin・演算子オーバーロードなどの機能がある。 Ruby は本システム内の検索キーワードの正規表現処理と検索サジェストの取得するプログラムとして -利用する。本研究で用いるRubyのバージョンはruby 2.7.0 を用いる。 +利用する。本研究で用いるRubyのバージョンはRuby 2.7.0 を用いる。 \subsection{MeCab} MeCabは京都大学情報学研究科と日本電信電話株式会社コミュニケーション科学基礎研究所の共同 -ユニットプロジェクトを通じて,開発されたオープンソースの形態素解析エンジンである。言語,辞書,コーパス +ユニットプロジェクトを通じて,開発されたオープンソースの形態素解析エンジンである。言語・辞書・コーパス に依存しない汎用的な設計方針を採用しており,数多くのプログラミング言語で使用することが可能である。 MeCabによる形態素解析の実行結果は,入力した自然分を形態素にまで分解した後にそれぞれ 表層形,品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用型,活用形,原形,読み,発音という流れで出力される。 -本システムでは,MeCabによる形態素解析の出力結果をRubyのプログラム内で利用するためにMeCab-Rubyを用いる。 +本システムでは,MeCabによる形態素解析の出力結果を Ruby のプログラム内で利用するためにMeCab-Rubyを用いる。 \begin{itembox}[l]{MeCabによる形態素解析の例} \begin{verbatim} @@ -234,7 +237,7 @@ データ記述言語の一種で,グラフをデータ構造としてプレーンテキストで表現する言語であるDOT言語を用いて, テキストファイルをpngやjpegなどの画像ファイルに変換することで,グラフ画像を生成することができる。 本システムでは,入力された検索キーワードと取得した検索サジェストのデータをキーワードマップの画像として生成するために -用いる。また,RubyのコードからGraphvizによるグラフ生成を可能にするためにGvizを用いて画像を生成する。 +用いる。また, Ruby のコードからGraphvizによるグラフ生成を可能にするためにGvizを用いて画像を生成する。 @@ -316,8 +319,8 @@ \section{検索サジェストの取得}\label{sec:suggest} 本節では検索サジェストの取得とそれのセカンドキーワードの取得について説明する。 本システムでは検索サジェストとしてGoogleサジェストを取得する。Googleサジェストの取得にはGoogle Suggest APIを利用する。 -Google Suggest APIは下記のURL末尾にサジェストを取得したい検索キーワードを入力すると,XML形式で検索サジェストが -取得できるAPIである。(図 \ref{fig:gglapi} ) +Google Suggest APIは下記のURL末尾にサジェストを取得したい検索キーワードを入力すると,XML 形式で検索サジェストが +取得できるAPIである (図 \ref{fig:gglapi} ) 。 \begin{itembox}[l]{Google Suggest API} @@ -333,7 +336,7 @@ \label{fig:gglapi} \end{figure} -XML形式で取得したデータはURI.openメソッドを用いて,文字列としてruby内に読み込む。 +XML形式で取得したデータはURI.openメソッドを用いて,文字列としてRuby内に読み込む。 RubyでXMLから目的の要素を取り出す処理を行うためにremxlライブラリを利用する。 DOMの子要素を取り出すelementsメソッドで不必要な要素を指定することで検索サジェストのみを抽出し,配列suggestにその結果を 格納する。