[掲示板へもどる]
一括表示

  [No.1814] KH coderに形態素解析結果を入力する方法 投稿者:中島  投稿日:2014/09/25(Thu) 14:39:58

初めて投稿いたします。ちょっとしたテキスト分析をするような仕事があるのですが、まず頼るツールとして大変重宝しております。この場を借りましてお礼申し上げます。

KH coderの使い方に関してお伺いしたいのですが、ちょっと毛色が変わっておりまして、過去ログをざっと拝見した感じでは同様な質問が見当たりませんでしたので、新規で投稿させていただきます。

---(以下質問内容)
KH coderを使って
A頻度計算
B共起マップ描画
をしたいのですが、入力が文章そのものではなく形態素解析済みのテキストファイルという要件になっております。
具体的なエンティティは
・位置情報(文章単位/段落単位/文単位の3項目)
・品詞情報
・形態素
という3本立てです。

できるだけ労少なくしてKH coderの機能を拝借したい(SQL-EXCEL連携やRを生で扱うことはしたくない)、というのがお題なのですが、どのような方法が考えられますでしょうか。
こちらでない頭を絞りますと、以下の様なプロセスがあり得るかと思いました。
総合的にはAが本命かと思うのですが、実現可能性の点からご意見頂戴できれば幸いです。


@)入力データをKH coderの処理プロセスの中途に割り込ませるラッパ造作
 ・KH coderが形態素解析結果をMySQLにしまうフォーマットに合わせて格納
 ・メタなプロジェクト情報を、やはりKH coderの仕様に合わせて生成
 両仕様を理解しておりませんのでどの程度大変か(そもそも原理的に可能か)
 わからないのですが、一番きれいにKH coderの分析プロセスお点前を使える
 方法かと思います。
 やるとしたら、上記仕様についてはソースコードを読み解くことが必須と
 理解してよろしいでしょうか。


A)形態素->テキスト、品詞・位置等メタ情報->外部変数 として運用でカバー
 開発工数を少なくするという意味ではこれが一番現実的だと思います。、
 採否は目的(A頻度計算B共起マップ作成)が実現できるか否かにかかっていますが、
 Aについては外部変数に関係なく集計すればいいだけですので大丈夫かと思います
 (茶筌によって品詞が再割当てされてしまうところ、品詞無視で頻度一覧を出す方法
  が心もとないですが... GUI上はTOP150の設定しかないようですので)。

 Bについては、以下のような運用で達成できるような気がしております。
  入力形態素データのIDとなっている"位置情報"エンティティを細かく腑分けしますと
  ・文章ID
  ・段落ID
  ・文ID
  の複合キーになっておりますので、一旦単独のユニークキーになるように
  統合してから、共起を取る際に「語―外部変数・見出し」で当該単独キーを
  指定すればよい。
 問題は、例えば入力データの品詞情報によってフィルタをかけたいということが
 サブ要件としてございまして、その実現方法が思いつきません。
 が、入力する段階でフィルタリングするという手はありますので、とりあえず
 今回の質問では無視していただければと存じます。

 すみません、四の五の言う前に実験してみればいいのですが、ヘタな検証を打って
 誤った結論を導く前に、原理的なところを確認しようというのが趣旨でございますので
 平にご容赦ください。

 ユーザビリティの問題もありますので、最終的にはサンプルをもって検証はしてみます。


B)オリジナル文書に復号する前処理造作
 一旦形態素→オリジナル文章に戻す操作をMySQL等で外部的に行い、KH coderに
 最初から食べさせる。
 入力データがかなり大きくなることが予想されるものですから、大きなデータから
 大きなデータを生成する、このようなプロセスはなるべく避けたいと考えております。

---(以上質問内容)

ご多忙中恐縮ですが、何卒よろしくお願い申し上げます。


  [No.1815] Re: KH coderに形態素解析結果を入力する方法 投稿者:HIGUCHI Koichi  投稿日:2014/09/25(Thu) 21:27:59

こんにちは、樋口です。書き込みありがとうございます。

> 入力が文章そのものではなく形態素解析済みのテキストファイル

茶筌の出力ファイル(coder_data\*_ch.txt)のようなものを作成できるで
しょうか? なお茶筌は改行があると「EOS」だけの行を出力する点に留意
してください。また活用形情報がなければ、おそらく、活用形のカラムには
すべて「.」と入力しておいて良いかと思います。

これが作成できれば、マニュアルA.10.5節「形態素解析の結果を再読み込み」
コマンドを動かすだけで、KH Coderの機能をすべて利用できます。

もう少し詳しく書くと、

1. プロジェクトを新規作成(登録するテキストファイルは何でも良いです。
こころの最初の3段落程度で十分でしょう)
2. 前処理を実行
3. coder_data\*_ch.txtを、本来入力したいデータで上書き
4. 「形態素解析の結果を再読み込み」実行

という感じです。


  [No.1819] Re: KH coderに形態素解析結果を入力する方法 投稿者:中島  投稿日:2014/09/26(Fri) 23:03:27

樋口先生

早速のご回答ありがとうございます!

まず掲示板の過去ログを参照する前にマニュアルを一通り眺めるべきでした... 
申し訳ございません。

入力形態素データには活用情報だけでなくて"読み"情報もなかったりするのですが、
KH coderの主機能を拝見する限りでは使用されていないようですので、NULか
形態素自体のコピーで埋めればいいものと理解しております(間違っていましたらご指摘ください)。

入力する形態素データは1形態素1レコードでして、文章ID(S/N)、文ID(S/N)、文中での登場順が位置情報変数として含まれておりますが、
 1)文章全体の順番を再現するように位置情報変数を使ってソート
 2)ChaSenの仕様に従って句点・EOSで文および段落を分離、さらに必要であればタグによってより大きな構造を分離
というプロセスによってパースすればそのままKH coderの機能が使えるような気がしてきました。

あとこちらが用意する形態素データの品詞分類とChaSenの品詞分類が異なることによって
品詞選択モードの動作がどうなるのかわからないのですが(データからダイナミックに
生成されていればありがたいのですが...)簡単な実験をして確かめてみます。

だいぶ実現に近づいた気がいたします、ありがとうございました。

詳細なセッティングをしていく段階で不明点が出てくるかもしれませんが、その際には
また質問させてください。


  [No.1821] Re: KH coderに形態素解析結果を入力する方法 投稿者:HIGUCHI Koichi  投稿日:2014/09/27(Sat) 10:58:47

こんにちは、樋口です。書き込みありがとうございます。

いえいえ、あのマニュアルを読破するのはなかなか大変だと思います。

> 入力形態素データには活用情報だけでなくて"読み"情報もなかったりするのですが、
> KH coderの主機能を拝見する限りでは使用されていないようですので、NULか
> 形態素自体のコピーで埋めればいいものと理解しております

はい、活用形と同様、何かダミーの文字列でかまわないと思います。

> こちらが用意する形態素データの品詞分類とChaSenの品詞分類が異なる

これについては、KH Coder側の品詞設定を変更していただく必要があるでしょ
う。そうしないと、本来は分析対象に含めたい品詞が「その他」扱いされてし
まうと思います。

こちらのFAQ記事や、マニュアルA.2.2節をご覧ください。
http://khc.sourceforge.net/FAQ.html#hinshi