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

  [No.3508] KH Coderで前処理をしない方法 投稿者:平塚  投稿日:2018/02/25(Sun) 23:06:40

平塚と申します。

KHcoderでデータベース上のキーワードを分析しようと努力しています。
(KHcoderはVer2.00f OSはWindows10)※「こころ」による動作は確認済みです。尚、英語機能を使用していますのでマニュアルに従い「設定」で Lemmatization でStanford POS Tagger を指定しています。

先生の本来の目的とは異なると思いますが、KHcoderを後処理のテキストマイニングのクラスター分析や共起グラフの描画機能として使いたいと思い着目しました。前処理の品詞分解は別の手段で済んでいるとの前提です。
ですから、当方が準備したキーワード群をそのまま品詞分解せずにクラスター分析などを行わせたい、という事を考えています。Rを組めば良いだろうと言われるかも知れませんが、定常的に行うためにはUIツールを使うのが作業者による個人差も少ないので何とかKHcoderで実現できればと思っています。
ただ、当方が扱おうとしているキーワードは、結構変で英数字以外に「(」「+」「,」等を含んでいます。以下はキーワードの一例。こんなのが数多くて複合語を個別に指定するのは諦めています。「」は見やすくするために付けました。

「imazapyr, (+/-)-2-[4,5-dihydro-4-methy1-4-(1-methylethyl)-5-oxo-1H-imidazol-2-yl]-3-pyridinecarboxylic acid」

(分析しても低頻度で結果として出てこないと思うが、これを一単語とみなして入力はさせたい。品詞は名詞で結構です。)
※ファイル形式は、この類の文字列が並んだCSVファイル。約20000行あります。前処理時間は5分以内でありデンドログラム等は作図可能なので扱えないデータ量ではないと思います。

工夫して前後をダブルクォーテーションで囲むことはできるのですが色々指定してもキーワードが分解されてしまいます。ダブルクォーテーションで文字列を囲み、次のキーワードのために一文字半角スペースを空ければ分解されないかと思いましたが、Stanford POS Tagger を指定(stop word 未指定)している場合は、"A+B"は'A" "+" "B"に分解される様です。stop wordの指定/未指定も関係なし。無理矢理"A+B"を"A""+""B"(+をダブルクォーテーションで囲む)も試しましたが効果なし。
Stemmingで snowball を指定するともっと酷くダブルクォーテーション自体を文字として抽出しています。

「社会調査のための計量テキスト分析」の資料Aや添付のマニュアルも見たのですが、前処理の品詞分解プロセスをバイパスする手順がわからずお聞きする次第です。

お前の目的では無理だ、というならば諦めます。


  [No.3509] Re: KH Coderによる品詞分解をバイパスする方法 投稿者:HIGUCHI Koichi  投稿日:2018/02/26(Mon) 00:04:16

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

考えられる方法は2つあります。

1つは、キーワードをダブルクォートではなく、山カッコ<>で括る方法です。
山カッコで括られた部分は、強制的に1つの語として取り出されます。

もう1つは「形態素解析の結果を再読み込み」プラグイン(マニュアルA.10.5節)
を使う方法です。※KH Coder 3では形態素解析の結果を保存したテキストファイ
ルの場所が変更になりました。前処理完了時にコンソール画面にフルパスが表示
されます。

ただし、KH Coderは半角スペースやカッコのほか「+」「-」などの記号を含む語
は想定していないので、分析や検索がエラーになることもあると思います。その
場合は、たとえば半角スペースをアンダーバーに置換するといった対策が必要に
なりそうです。


あと、品詞分解が不要ならStanford POS Taggerではなく茶筌を選んでおいた方が
前処理は早いと思います。


  [No.3510] Re: KH Coderによる品詞分解をバイパスする方法 投稿者:   投稿日:2018/02/26(Mon) 06:38:11

半角記号を全角に置き換えてみてはいかがでしょうか。
さらに、当該物質を語の取捨選択で強制抽出してみては? 
その場合、未知語やタグとして認識される可能性がありますので、語のリストで確認してから解析そのものに移行されることを推奨致します。


  [No.3511] KH Coderで前処理をしない方法 (山カッコ<>+茶筅で出来ました) 投稿者:平塚  投稿日:2018/02/26(Mon) 23:41:23

平塚です。昨晩遅くの書き込みに対して即座のご回答ありがとうございました。夕方まで知らずにいて失礼しました。

樋口先生から教えて頂いた「山カッコ<>で括る+茶筅を使う」方法と、Suzuki様から教えて頂いた「半角記号を全角に置き換え」方法でご教示頂きました。
結果的には「山カッコ<>で括る+茶筅を使う」方法だけでできました。半角記号を全角記号にすると認識できません。混在は認識が難しいみたいです。

「imazapyr, (+/-)-2-[4,5-dihydro-4-methy1-4-(1-methylethyl)-5-oxo-1H-imidazol-2-yl]-3-pyridinecarboxylic acid」

を山カッコ<>で括り、半角スペースは半角ハイフンで補いました。半角スペースのハイフン化は類義語解消にもなります。
結果は以下の様になります。

<IMAZAPYR,-(+/-)-2-[4,5-DIHYDRO-4-METHY1-4-(1-METHYLETHYL)-5-OXO-1H-IMIDAZOL-2-YL]-3-PYRIDINECARBOXYLIC-ACID>

KHcoder前処理実行後の抽出後リストでは、

(IMAZAPYR,-(+/-)-2-[4,5-DIHYDRO-4-METHY1-4-(1-METHYLETHYL)-5-OXO-1H-IMIDAZOL-2-YL]-3-PYRIDINECARBOXYLIC-ACID)

<>が()になりましたが出来ました。1週間以上悩んでいたので嬉しいです。
ありがとうございました。