2011-01-01から1年間の記事一覧

Wikipediaの本文取得&MeCab適応テスト

一般的な文章に対して、現在作成中のプログラムがどのような出力をするのか調べるべく、一般文章のソースとして、さまざまな人に書き込まれ、ジャンルも多岐にわたり、後々生物用語を調べるのに使えそうな、Wikipediaを採用することにしました。 とりあえず…

ユーザ辞書の応用&続・足切りライン考察

今まで、「細胞どうし」とか「文字どおり〜」といった接続された名詞が残ってしまっていたので、これを排除すべく、ユーザ辞書に、頻度解析時に無視するように設定してある「非自立」というエントリーを無理矢理付加させて登録し、きれいに「細胞」だけが残…

用語の足切りライン考察

また新たな論文に対応すべく、低頻度辞書と不用語辞書の更新と、ユーザ辞書の生成の行いました。まだ不用語辞書の構成は自動ではないので、手動でやりつつどんな感じにプログラムを書いていこうか考えることにします。 また、生物用語とそうでない単語を分け…

細かなバグ取り終了

今回も頻度解析モジュールのバグ取りです。数字が","で繋がっていると残ってしまうという問題があって、"12,13"みたいな無意味な数字が表示されていました。これを破棄するため、単語追加時に","も終了判定に用いて、数字を破棄させました。if ($n->{feature…

とりあえずユーザ辞書の適応

MeCabのインストールには、どうやらiconv_openなどを上手く利用した、文字コードの適切な指定が必要なようで、自分のアカウントにインストールしようとすると、この文字コードの指定が上手くいっていない部分があって、しかもそれが自分のアカウントからは見…

g86サーバへのMeCabインストール…

自分のアカウント上でにMeCabをインストールしようとしましたが、まずMeCabと辞書の日本語のエンコード方法にはまり、そのあとMeCabのPerlバインディングが何故か上手くいかず、MeCabによるパースのところで止まってしまってしまいました。 utf8になっていて…

MeCabユーザ辞書調整

今のプログラムでは、「サ変接続」単語は容赦なく削除されるんで、ここに生物用語が混じらないように、MeCabのユーザ辞書に追加する作業を行いました。とりあえず「転写」が削除されるのを防げるようになりました。 ここで、今まで作成してきたユーザ辞書をg…

切断モジュール調整の続き

今回も、論文をプログラムに渡して、様子を見ながらスクリプトの細かいバグなどを調整しました。 まず、どうしても残ってしまう「図1a」といった参照の文字列を除外するべく、「図」という文字があって、すぐ次の単語が数字または英字一文字だった場合、「図…

MeCab切断モジュールの試行錯誤

20通ほどの論文を現プログラムに渡して、どのように切断されてくるか、再びチェックしていきました。 まず、低頻度辞書から生物用語でないものを探してきて、それを破棄リストに手動で追加してく作業を行いました。「数」とか「レベル」など、よく論文内で使…

追加禁止単語リストの作成・利用

低頻度辞書をみて、ここに出てきてしまう生物用語ではない単語について、MeCabによる解析時に、頻度ハッシュに追加しないようにする為のテキストファイルを自作し、ここに書かれている単語を実行時に読み出し、ハッシュへの追加を抑制するように、モジュール…

低頻度リストの作成・利用

今回は、頻度解析の部分にプログラムを追加し、各々の論文における低頻度出現単語を一つのファイルにまとめて、それらが別の論文で高頻度で出現していれば、それを低頻度辞書として登録していくようにしました。 まず、低頻度と言えるボーダー値よりも低い単…

MeCab切断・登録部の調整

今回は、MeCabによる形態素分析から、「サ変接続」の名詞で、その形態素の前後に「名詞」のものがないような単語については、生物用語になることがほとんどないことを確かめた上で、その単語を読み捨てるという動作をプログラムに追加しました。形態素$nにつ…

HTML::ColorKeywords採用&MeCab頻度解析再考

今までハイライトに用いていたHTML::Highlightは、一度ハイライト用のタグを導入した単語に対しても、新たにハイライトタグを導入してしまうという問題を抱えている為に、正しく検索文字列がハイライトされなかったり、実行時間がかなりかかるという現象があ…

ホームページの微調整&MeCab切断スクリプトのモジュール化

今まで全ての動作を一つのPerlスクリプト内に記述していましたが、今後単語解析の部分をいじっていって、それらをHTMLに表示したり、テキストファイルにして調査したりするので、別々の用途用のPerlまたはCGIプログラムから同等の機能を得られるようにするた…

単語解析CGIの暫定版v1.0.0公開

前回、MeCabバインディングのインストール時に、使用するMeCabの種類を指定してあったので、以前にインストールしたときのmecab-perlとフォルダを削除して、CGI内で、use lib 'Users/(ホームフォルダ)/local/lib/perl5/darwin-multi-2level';の文を先頭に加…

MeCabとの格闘

今回は、サーバ上でうまく動かなかったMeCabを動かそうと、PATHまわりを確認しました。まず、正常に動くMeCabは、MacPortsを利用してインストールした、/opt/local/bin/mecabだったので、これにMeCab.pmがうまく対応するように、MeCabバインディングをインス…

CGIとMeCab

前回、何度やってもサーバがTimeoutしたと言ってくるので、その原因を追及すべく、いろいろ試しました。 まず、とりあえずMeCabで頻度解析したファイルを用意し、URLの入力に対し、それに対応するファイルが存在するなら、演算せずに、そのままハイライトし…

CGIプログラムの作成

今までに作ってきたPerlスクリプトを混ぜ合わせて、URLを受け取ってそのページをテキストファイルとして取得し、MeCabで切断したファイルを作成し、それをもとにHtmlにハイライトを追加するCGIプログラムを作成して、g86サーバにのせるとこまで行いました。 …

g86へsshログイン&サーバからCGI実行

今日は、牧場でiNutさんに教えてもらって、sshログインの為の公開鍵の作成と、サーバへのコピーを行って、自分のアカウントでログインできるようにしました。秘密鍵の方について、configを書いてすぐにsshログインできるようにしました。紆余曲折ありました…

PerlプログラムのCGI化

生物用語にハイライトを加えるPerlプログラムを、今回CGIに置き換えてWebサーバ上で動くようにしました。Webサーバは、統合牧場を管理しているApacheを使用し、作成したCGIをフォルダに入れて、引数にURLを受け取ってそのページにハイライトのためのタグを追…

Javascriptによるハイライトの原理&構想

今回はプログラミングは少しお休みして、JavaScriptをつかってWebページにハイライトを追加する方法と、その様子を調べてみました。個人的に一番しっくりきたのは、「kuroの雑記帳」様の、選択した文字列をハイライト表示するブックマークレットを作ってみた…

HTML::Highlightを用いて、頻度ファイルからページにハイライト

Htmlファイルの特定の文字列について、ハイライトのためのタグを導入してくれるモジュール「HTML::Highlight」をインストールして、現在テキストファイルになっている頻度計算ファイルの単語をつかって、元ページにハイライトを追加してみました。新着論文レ…

出現頻度再演算&ユーザ辞書の作成

今までのプログラムでは、「細胞」は数百個と出てくるのに対し、「精原細胞」などは1つしかでないことがあって、これを落としてしまっていたので、一度頻度を計算したら、その頻度値を使ってもう一度正規表現でのマッチングを行い、被マッチ語をマッチ語の頻…

頻度解析ファイル同士の結合

今までに分割して頻度計算を行ってきた10ファイルを利用して、これらの頻度を足し合わせるPerlスクリプトを作ってみました。コード自体は簡単で、結合データを保存したファイルを開いて、内部のハッシュにデータを取り込み(split関数)、その後結合したい頻…

単語出現頻度解析Part4

今回は、MeCab切断後に残ってしまう無意味なひらがな名詞を切り飛ばそうと、新たに出力単語を決める前にひらがなのみの名詞がMeCabリストから帰ってきた場合、それを無視するように設定しました。 また、頻度計算時に文字列の長さを調べて、日本語なら6文字…

単語出現頻度解析Part3

前回のスクリプトのアルゴリズムだと、先に頻度演算をして頻度の値を足されてしまった単語は、後に演算するものに比べてその値が小さくなってしまうという問題を含んでいたので、今回はすべての単語について平等に頻度の値を増加させるため、一つの単語に3つ…

単語出現頻度解析Part2

今回は、単語の出現回数を計算するのに、一度完全一致で調べて、その後正規表現を用いて全ハッシュ内を再度調べて、引っかかるものに元の検索ワードの出現回数を上乗せして、言葉の上位概念に対して偏りが出るようにしました。 結果、その論文の中核となる単…

単語出現頻度解析

一行に一単語のテキストファイルを用いて、一行ずつ読み込み、その単語が%freqハッシュのキーとして登録されているかを調べて、登録されていれば値を1増やし、登録されていなければ新たにハッシュに登録するPerlスクリプトを作成しました。テキストファイル…

MeCab後の用語回収Test

今回は、MeCab切断した文節に書かれた、「名詞」のfeatureを利用して、連続する名詞だけを結合してファイルに書き込むPerlスクリプトを作成しました。 これだと、「これ」とか「それら」とかの無意味な単語も残ってしまうので、MeCabのノード内で「代名詞」…

Webページ抽出の精度向上&生物用語チェック

前回作成したHtmlパーサを改善し、不要なstrongタグとdivタグ内部のテキストを破棄し、抽出したテキストが"文 献"だったら、そこで抽出を終了するようにして、必要な論文タイトルと本文のみを回収できるようになりました。 今回はその後、「in vitroでマウス…