フリーのテキストマイニング&可視化環境KH Coder

前回にひき続いてフリーのテキストマイニング&可視化環境を、特許分析に利用することに関して簡単に紹介していきます。今回はKH Coderです。日本語及び英語の処理分析に対応しています。

KH Coderはこちらのサイトから入手できます。先ずは、チュートリアル等をひと通り試してみるのが良いと思います。

特許の分析を行う際には読み込むデータが必要ですが、今回は任天堂のゲーム機の関連の特許要約で行ってみます。

次のようなデータです。

画像から検出される所定の物体または図柄の位置の微細なブレを防止すること。画像から所定物体または所定図柄の位置を順次検出する。そして、第1画像から検出された当該画像上での所定物体または所定図柄の位置と、当該第1画像以前に取得された第2画像から検出された当該画像上での上記所定物体または所定図柄の位置に基づいて、当該所定物体または所定図柄の移動量を計算する。そして、上記移動量が第1閾値未満である場合には、上記第1画像から検出された当該画像上での上記所定物体または所定図柄の位置を、上記第2画像から検出された当該画像上の上記所定物体または所定図柄の位置へと補正する。
画像から所定の物体または図柄を高い精度で検出できるようにすること。まず、撮像装置から取得した画像から、物体または物体に表される図柄の輪郭を表す一連のエッジ画素を検出する。そして、検出された一連のエッジ画素に基づいて複数の直線を生成し、当該複数の直線に基づいて上記輪郭の頂点を検出する。さらに、検出された頂点に基づいて上記撮像装置と上記物体との相対的な位置および姿勢を算出し、当該位置および姿勢に基づいて、仮想空間内の仮想カメラを設定する。そして、当該仮想カメラで仮想空間を撮影することにより得られる仮想空間画像を表示装置に表示させる。

・・・

こんな感じで、1件の特許の要約毎に改行を入れたテキストファイルを用意します。出願人や出願日等の書誌データも読み込ませることは出来ますが、今回は省きます。尚、KH Coderに読み込ませる日本語データは全角のみを推奨(半角文字混じりは推奨しない)です。

まずは、チュートリアルの「こころ」と同様に、メニューから「プロジェクト」→「新規」を選択して、準備したテキストデータを取り込み対象に設定して、「前処理」→「前処理の実行」を選択します。この前処理が完了した後に、「ツール」→「抽出語」→「抽出語リスト」で、上位語をチェックして、例えば「ゲーム」、「手段」、「所定」のような頻出はしているが、一般的過ぎて分析には意味がないかもしれない言葉をチェックしたり、自身の意図に反して分割されている言葉をチェックします。その後で必要に応じて「前処理」→「語の取捨選択」を選択し、分割しないで強制的に抽出したいキーワード、不要なので使用しないように設定したいキーワードを設定すると良いと思います。

前処理が完了して、データの取り込みが完了した後で、KH Coder上で出来る分析には次のような機能があります。

  • 多く出現した語の確認:抽出語リスト、頻出150語の表、抽出語検索(取り込み3で概要説明済み)
  • 語と語の結びつきを探る:階層的クラスター分析、多次元尺度構成法、共起ネットワーク、関連語探索、対応分析
  • 属性毎の特徴を探る:関連語探索、対応分析
  • 内容が似た文書(特許)の群を探る:クラスター分析、自己組織化マップ

このなかで代表的な分析例を見ていきます。

先ずは、階層的クラスター分析、「ツール」→「抽出語」→「階層的クラスター分析」と選択して実行します。出てくる画面で条件設定して「OK」で、次のような図が作成される。良く一緒に出現する語が上下方向で近くに配置され同一色が設定されています。

nintendo1

階層的クラスター分析の設定画面での設定項目ですが、今回のような読み込みデータの場合には、集計単位:「文」(1文単位で一緒に出現することが多い語の集計)か「段落」(1特許単位で一緒に出現することが多い語の集計)を推奨します。また、最小出現数(この程度の回数は出現している語でなければ分析対象としない)、最大出現数(この程度以上出現する語はありふれた語なので分析対象としない)は適宜調整して設定します。抽出語リスト等の数値を参考にすると良いと思います。設定後に左下のチェックボタンを押すと対象となる語の数が参考表示される多分200前後がちょうど良いと思いますが、お好みで調整下さい。

次は、共起ネットワークです。 「ツール」→「抽出語」→「共起ネットワーク」と選択して実行します。下記画面で条件設定して「OK」で、右のような図が作成される。良く一緒に出現する語が近くに配置され、線で結び付けされる。

nintendo2

共起ネットワークの設定画面での設定項目については、「集計単位」、「最小/最大出現数」の設定は階層的クラスター分析と同様の設定となります。「共起関係の種類」は、「語-語」を選択すると、良く一緒に出現する語同士の関係を表示。「語-外部変数・見出し」を選択すると外部変数や見出し(h1等のタグで設定したもの)と語の関係を表示(例えば出願人や出願年等と語の関係を分析表示)します。その他、描画数等はお好みで適当に調整して下さい。分析するケースによって最適な数値は違うと思います。

最後は、自己組織化マップです。文書を設定した数に自動区分けするクラスター分析の一種です。「ツール」→「抽出語」→「自己組織化マップ」と選択して実行します。下図のような分類分け図が作成されます。作成に相当の時間を要する場合がありますのでご注意下さい。

nintendo3

フリーの英文テキストマイニング可視化環境VOSviewer

VOSviewerは英文テキストの簡易テキストマイニング処理、そして、可視化の機能を有するフリーソフトです。英文の特許要約データやクレームデータ等が手元にあれば簡単にテキストマイニングを実施して、対象データの概略傾向や、良く出現するキーワード等の把握が可能です。(さすがに全文規模は無理)
VOSviewerはこちらからダウンロードしてください。解凍したフォルダ内のVOSviewer.exeを実行するとVOSviewerが立ち上がります(Java6以降のランタイムのインストールが必要と思います)。

先ずは、データの前準備が必要です。

英文の特許データで、特許各1件毎に改行が入っているテキストデータ。データは要約でもクレームでも構いませんが、このような形式で準備する必要があります。また、英文以外の言語は非対応です。

用意するデータのサンプルは次のようになります。

A gaming machine has a display and a game controller arranged to control images displayed on the display. The game controller is arranged to play a spinning reel game wherein one or more random events are caused to be displayed on the display and, if a predefined winning event occurs, the machine awards a prize. When at least one special symbol appears on the display, the special symbol is held in a superimposed representation in that position for at least one further game while at least that reel carrying the special symbol is re-spun for the at least one further game.(改行)
A gaming machine is provided, which awards loyalty points to players playing the game who have identified themselves to the machine. The machine is arranged to award loyalty points to the player and to play two game means wherein, the first or base game may be provided by the slot machine game as a stand alone function with no dependence upon a supporting communications network, the second game may be linked game in which a plurality of network connected machines (50) participate with control of the game being provided by a central game controller (60), while the communications network (62) is controlled by a network controller (61). A first game mode is available to all players and a second enhanced game mode is made available to players who have reached a predetermined threshold of loyalty points.(改行)

ゲーム機の要約英文です。これを例えばgame.txtとして保存します。

データの前準備が出来たら、VOSviewerを起動します。

VOSviewerが起動したら、左端にある”Action”タブ内の”Create”ボタンをクリックします。
次に、”Create a map based on a text corpus”をチェックして”Next”ボタンをクリックします。
そして、”Corpus file(English language only):”の下のボックスで取り込み対象のテキストファイル(今回はgame.txt)を選択して”Next”ボタンをクリック(いきなり”Finish”でもOKですが)します。
次に、”Binary Counting”にチェックが入っていることを確認して”Next”ボタンをクリックします。VOSviewer thesaurus file(optional)については説明を省略します。気になる方はがどうしても気になる方は英文マニュアルで確認してください。
次は、”Minimum number of occurrences of term”の数値を設定して下さい。分析の対象として最低限これだけの回数は出現しているキーワードを対象にするという調整になります。決定したら”Next”ボタンをクリックして下さい。
次は、上の条件で選択したキーワードの中で相互に関連性が深い順にランキングした場合に、その中から上位幾つまでのキーワードをマップ化の対象にするかを数値で調整します。マップが過密にならない程度に数値を調整しましょう。決定したら”Next”ボタンをクリックして下さい。
最終確認として、ここまでの操作で最終的に選択されたキーワードのリストが提示されます。確認してマップに表示したくないノイズワードがあればチェックボタンを外すことで表示しないようにすることが出来ます。後は”Finish”ボタンをクリックして完了して下さい。

英文テキストマイニング処理の結果が出てきます。
処理結果はこれまでの選択により決まっているので、結果の調整は再度取り込み処理の数値の調整を行うか、取り込み対象にした要約集合の調整(不要な語の削除や置換等)をするかしかありません。
これは結果のLabel Viewですが、クラスタ(色分け)は文章内容からワード出現傾向が似ているものが同一色に自動処理されています。

game1

 

こちらはDensity Viewになります。

game2

あとはCluster Density Viewもありますが、表しているものはほぼ同じなので好みの問題になります。

無料であり、使い方次第で色々な活用が期待出来るソフトです。

 

特許データのゴミ取り(名寄せ)へのOpen Refineの利用可能性(8)

さて、前回に続いてOpen Refienの出願人名名寄せ処理の実力のチェック。

前回は英文の出願人名でなかなか良い結果がでましたが、今回は中国語出願人名を見ていきます。

利用するデータはこちらの電池系の中国出願人名になります。

出願人
奇瑞汽车股份有限公司
三星SDI株式会社
三洋电机株式会社
三洋电机株式会社
三星SDI株式会社
深圳富泰宏精密工业有限公司
松下电器产业株式会社
三洋电机株式会社
苏州宝时得电动工具有限公司
东莞新能德科技有限公司
刘立文
住友化学株式会社
华南理工大学
深圳市崧鼎实业有限公司
锂电池科技有限公司
深圳市创明电池技术有限公司
萨斯特茨维考工业有限公司
东莞新能源科技有限公司
株式会社日立制作所

さて、このデータをOpen Refineに取り込んでいきます。

中国電池 - Google Refine 1

取り込んだのが、この状態。

ここから、前回と同様にText Facetを選択して、ClusteringでMetaphone3を選択するとこのようになります。

中国電池 - Google Refine 2

どうしようもないですね。ClusteringでKey Collision系の処理は軒並みダメです。

Key Collision系は英文(Word毎にスペースが入る文)向きで、中国語や日本語のような文には向かないようです。

そこで、nearest neighborのlevensteinを選択してみます。調整値はデフォルトで。

中国電池 - Google Refine 3

前回の英文と比較するとアレですが、ある程度のレベルで似た文字列の出願人名を名寄せ候補として提示してくれます。後はどれを採用するか個別に選択することになります。まあまあ使えるという結果です。日本語の出願人名の場合にも同様の感覚で使えるでしょう。

さて、一年がかりのOpen Refineでの名寄せ処理の検討でしたが、英文の場合はかなり使え、中国語の場合はそこそこ使えるという結果になりました。発明者名の名寄せの場合も似たような感覚で使えるでしょう。

Open Refineはまだまだ奥が深いのですが、とりあえず、次回はOpen Refineから離れて別の話題にしていきます。

 

特許データのゴミ取り(名寄せ)へのOpen Refineの利用可能性(7)

今回の記事では、先回の記事で紹介した名寄せ手法(Open RefineでMetaphone3を用いたクラスタリング処理)を、手持ちのデータ、ゲーム機器のUS、EP出願データからの英文出願人名では、どうなるかについて見ていくことにする。

 

どんなデータかというと、

Applicant
ARISTOCRAT LEISURE IND PTY LTD
ARISTOCRAT TECHNOLOGIES AU
IGT RENO NEV
ARISTOCRAT LEISURE IND PTY LTD
ARISTOCRAT LEISURE IND PTY LTD
ARISTOCRAT TECHNOLOGIES AU
ARISTOCRAT LEISURE IND PTY LTD
ARISTOCRAT LEISURE IND PTY LTD
ARISTOCRAT LEISURE IND PTY LTD
TWO WAY MEDIA LT LONDON
IGT RENO NEV
ACRES GAMING INC
TWO WAY TV LTD
APPLE INC
JORASCH JAMES A
HAL LAB INC
CRAIG THORNER
CREATIVE KINGDOMS LLC
SONY CORP

こんな感じのデータ、ゲーム機関連の出願人名リストです。説明をわかりやすくするために、予め筆頭出願人名だけのデータにしています。

このデータでランキングを取ると、

Applicant 集計
ARISTOCRAT TECHNOLOGIES AU 382
NINTENDO CO LTD 372
IGT RENO NEV 345
WMS GAMING INC 279
KONAMI DIGITAL ENTERTAINMENT 246
ARUZE CORP 226
SONY COMP ENTERTAINMENT INC 175
MICROSOFT CORP 148
ARUZE GAMING AMERICA INC 136
BALLY GAMING INC 123
NAMCO BANDAI GAMES INC 72
DISNEY ENTPR INC 44
SONY COMP ENTERTAINMENT US 41
MULTIMEDIA GAMES INC 40
KONAMI GAMING INC 37
SQUARE ENIX CO LTD 36
CFPH LLC 35
SONY COMP ENTERTAINMENT EUROPE 32
IGT 29
SEGA CORP 28

このようなランキングになります。

 

さて、このような元データに対して、Open Refineで名寄せ処理を行なっていきます。

Game - Google Refine 1

先ずは、Open Refineにとりこんだのがこの状態。

ここからText Facetを選択して、ClusteringでMetaphone3を選択するとこのようになります。

Game - Google Refine 2

良い感じで名寄せ処理が自動的に行われています。

全部選択してマージ処理を実行して、名寄せ処理を完了した出願人名でランキングを取るとこのようになります。

Applicant 集計
ARISTOCRAT TECHNOLOGIES AU 400
NINTENDO CO LTD 372
IGT RENO NEV 345
WMS GAMING INC 281
SONY COMP ENTERTAINMENT INC 252
KONAMI DIGITAL ENTERTAINMENT 250
ARUZE CORP 226
MICROSOFT CORP 150
ARUZE GAMING AMERICA INC 136
BALLY GAMING INC 123
NAMCO BANDAI GAMES INC 73
DISNEY ENTPR INC 44
MULTIMEDIA GAMES INC 41
KONAMI GAMING INC 37
SQUARE ENIX CO LTD 36
CFPH LLC 35
IGT 30
SEGA CORP 28
ACRES FIORE PATENTS 26
IBM 26

名寄せ処理前後の集計を比較するとこんな感じ。

名寄せ処理後上位出願人 名寄せ処理後件数 名寄せ処理前上位出願人 名寄せ処理前件数
ARISTOCRAT TECHNOLOGIES AU 400 ARISTOCRAT TECHNOLOGIES AU 382
NINTENDO CO LTD 372 NINTENDO CO LTD 372
IGT RENO NEV 345 IGT RENO NEV 345
WMS GAMING INC 281 WMS GAMING INC 279
SONY COMP ENTERTAINMENT INC 252 KONAMI DIGITAL ENTERTAINMENT 246
KONAMI DIGITAL ENTERTAINMENT 250 ARUZE CORP 226
ARUZE CORP 226 SONY COMP ENTERTAINMENT INC 175
MICROSOFT CORP 150 MICROSOFT CORP 148
ARUZE GAMING AMERICA INC 136 ARUZE GAMING AMERICA INC 136
BALLY GAMING INC 123 BALLY GAMING INC 123
NAMCO BANDAI GAMES INC 73 NAMCO BANDAI GAMES INC 72
DISNEY ENTPR INC 44 DISNEY ENTPR INC 44
MULTIMEDIA GAMES INC 41 SONY COMP ENTERTAINMENT US 41
KONAMI GAMING INC 37 MULTIMEDIA GAMES INC 40
SQUARE ENIX CO LTD 36 KONAMI GAMING INC 37
CFPH LLC 35 SQUARE ENIX CO LTD 36
IGT 30 CFPH LLC 35
SEGA CORP 28 SONY COMP ENTERTAINMENT EUROPE 32
ACRES FIORE PATENTS 26 IGT 29
IBM 26 SEGA CORP 28

上位出願人名の変化、件数の変化が若干見られますね。

Open RefineでMetaphone3を用いたクラスタリング処理、英文ベースでの名寄せ処理になかなか有効なようです。

注意して欲しいのは、ここで言っている名寄せは、文字列がよく似ているが、全く同じでは無い表記が含まれる場合の対処の方法になります。大幅な社名変更やグループ会社の扱い等については別途検討が必要な事項で、Open Refineで扱うような話ではありません。

次回は、中国語の場合の有効性について試してみたい。

 

 

特許データのゴミ取り(名寄せ)へのOpen Refineの利用可能性(6)

一年近くの放置からの記事になってしまいました。

今回は、クラスタリング機能の設定内容について書くはずだったのですが、もたもたしている間に海外の方に先を越されてしまったのでその紹介。

Patent Assignee Cleanup Using Google Refine (Open Refine) – Text Facets and Clustering

これです。Open Refineの特許データの名寄せへの利用で、おもいっきり被ってます。基本的な使い方の紹介等を含めた記事となっています。その辺りの基本的な操作はここでもこれまでに紹介しているので、名寄処理に関わる部分の要点だけ紹介します。

出願人名の名寄せをするのなら、Open Refineにはいろいろなアルゴリズムがあるけれども、Text FacetでMetaphone3を使うのがベストと述べられています。”I have found that I get the maximum value by using the Metaphone3 algorithm. If you only use one method use this one.”

残念ながらこの記事の中では、共願人がいる場合の処理についてまでは述べていません。

今回はここまで、次回は多分、手持ちのデータでMetaphone3は有効なのか試してみたいと思います。