KH Coderでの抽出語リストの作成方法

# はじめに
KH Coderで、形態素解析により抽出語リストを作成する方法を示す。
ちょっとしたコツも記録しておく。
KH Coderの操作手順は、「KH Coder 3」を前提とする。

# 前提知識
## 形態素解析[1]
語を構成する最小の意味のある単位を形態素と呼び、日本語では、名詞や形容詞、動詞語幹、活用語尾、助詞、助動詞などの語（構成単位）が形態素にあたる。
形態素解析では、辞書や語形変化規則などの語彙的な知識と隣り合った形態素間の結合に関する規則を用いて、文の分かち書きを行い、単語列を同定し、個々の単語の品詞の決定などを行う。

## KH Coder[2][3]
KH Coderは，テキスト型（文章型）データを統計的に分析するためのフリーソフトウェアである．
入力した文章から，自動で抽出語のリストを作成することが可能である．抽出語のリストは，各品詞ごとに，多く出現した語から順に並べられる．
また，複合語を自動で検出することも可能である．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243842/e0a6caab-f484-0bca-366b-a93e9c69fae5.png)

## 活用事例
https://qiita.com/kazuo_reve/items/6b7205ffb4ce6ad230ba

https://qiita.com/kazuo_reve/items/b5e740328bebad179414

https://researchmap.jp/reve/published_papers/33955210

https://researchmap.jp/reve/published_papers/33955217


# ポイント
## 複合語をできるだけうまく抽出する
KH Coder（茶筌）で、普通に抽出語のリストを作成すると、複合語は認識されない。
KH Coder（茶筌）で、複合語のリストを作成することはできるが、複合語と認識してほしくないものまで複合語と認識されてしまうことがある。

特に以下の記号が複合語の一部の認識されてしまうので、入力とするテキストファイルの段階でスペースに置換しておくとよい。
他にもスペースに置換すべき記号があると思われるため要注意。

|記号|
|:--|
|：|
|・|
|※|
|＋|
|，|


## 複合語のリストを入力にし形態素解析を行う
KH Coderの機能には、指定した語を強制的に抽出する機能がある。
指定する語はテキストファイルに複数記載し、そのファイル（複合語リスト）を入力とすることもできる。
複合語の品詞は「タグ」として単語が抽出される。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243842/013ffe42-955e-677f-92b2-687fac98944a.png)


# 抽出語リストの作成方法
KH Coderの利用手順を示す。詳細は、KH Coderのマニュアルを参照。
## 1. 入力用のテキストファイルを作成
1. 入力とする文書をテキストファイルにする。
1. 入力とするテキストファイルで，複合語の一部と認識してほしくない記号をスペースに置換する。

## 2. KH Coderでプロジェクトを作成
1. kh_coder.exeを実行する。
1. メニュー[プロジェクト]-[新規]を実行する。
1. ダイアログ「新規プロジェクト」で、「分析対象ファイル」を選択し、「OK」ボタンを押下する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243842/24cd19d7-022c-9fc6-c75a-7d5bc4ecec3e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243842/8259fc38-0887-762b-0a83-4350156de97c.png)

## 3. 複合語リストを作成
1. メニュー[前処理]-[複合語の検出]-[茶茎を使用]を実行する。
1. ダイアログ「複合語の検出（茶茎）」で，「全複合語のリスト」ボタンを押下する。
1. 出力された複合語のリストを保存する。
1. 保存した複合語リストのファイルをExcelで開く。
1. 保存した複合語リストのファイルから単語として認識して欲しくないもの（行）を削除する。
1. 複合語のリストの単語を降順にソートする。※
1. 出現数はコピーせず、複合語だけをコピーし、テキストファイルのエディタ（メモ帳やSAKURA Editorや秀丸）に貼り付ける（1行に1つ複合語とする）。タイトル行もコピーしない（1行目から複合語とする）。

※KH Coderの語の抽出をするときに、複合語のリストの上から順に一致確認をすることになる。そのため、「分析に使用する語の取捨選択」で入力とする複合語のリストは、”長い単語”が上にくるようにソートしておく。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243842/2d775c47-6e59-1d79-64cd-a324da9bfa41.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243842/9ab9b293-ac73-df38-7810-2b63d7e1dcf4.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243842/f9b59ca5-d4b1-b0e7-67f8-6410cbcf0bdc.png)


## 4.抽出語リストの作成
1. メニュー[前処理]-[分析に使用する語の取捨選択]を実行する。
1. テキストファイルで作成した複合語リストを指定し、チェックボックス「ファイルから読み込み」にチェックをつけ、「OK」ボタンを押下する。
1. メニュー[前処理]-[前処理の実行]を実行する。
1. メニュー[ツール]-[抽出語]-[抽出語リスト]を実行する。
1. ダイアログ「抽出語リスト」で、右下にある「Excel出力」ボタンを押下する。※
1. ダイアログ「抽出語リスト（Excel出力）」で、「OK」ボタンを押下する。
1. 作成されたExcelファイルを保存する。

※「Excel出力」ボタンがない場合は、ダイアログ「抽出語リスト」を広げる（大きくすると）と登場する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243842/a5d7929a-8572-5456-b1dd-0547f065002c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243842/cb8dac52-6b08-6e01-7688-51549c94d94d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243842/28a2baa2-0b09-8f2c-d6a0-0f0ac58275c9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243842/bcd9bb29-0da0-8d5f-396b-00d1c223fda2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243842/84f80b2a-fbdf-e317-8e65-5cf984e5bdee.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243842/d1a4d4f9-b6ca-fd0d-f934-eb8c6ef06a1f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243842/8195826b-cf5b-0fc0-18ba-4e1b3552a360.png)


# 残課題
今回示した抽出語リストの作成方法を自動化したい。

2022/05/30時点で、上記課題を解決した。詳細は以下の記事を参照。

https://qiita.com/kazuo_reve/items/5d801eca9f2d59592a8a

# 参考文献
[1] 保田明夫,「形態素解析と分かち書き処理」,http://www.wordminer.org/wp-content/uploads/2013/04/63_5.pdf
[2] 樋口耕一，KH Corder 3，https://khcoder.net/ ，2019
[3]	樋口耕一，“フリーソフトウェア「KH Coder」による計量テキスト分析: 手軽なマウス操作による分析からプラグイン作成まで”，研究報告人文科学とコンピュータ（CH） Vol.2015-CH-107 No.9 p.1-2，2015

# 謝辞
非常に有益なツールを開発・公開してくださった樋口耕一氏に感謝申し上げます。