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

MySQLへWikipediaのデータベースをダンプ

ローカル上でWikipediaのデータを検索する為に、まずWikipediaのデータベース、pages-articles.xml.bz2を手に入れてきて、g86サーバ上で解凍しました。 次に、「xml2sql」というプログラムを手に入れてきて、g86上でコンパイルし、これを利用して、pages-art…

Wikipediaのカテゴリ

前回に引き続き、生物学の用語をWikipediaから検索する方法を模索していました。いろいろ調べましたが、カテゴリ内をまとめて検索するような機能を利用するのは難しそうです。なので、Googleの検索機能を利用する方法を試してみました。$wikiSearch = 'http:…

Wikipediaの検索機能について

Wikipedia内のページの検索を行う時、カテゴリを「生物学」などに絞って検索できるのかなと思っていましたが、どうやらWikipediaの検索機能にそういうものは無いようです。仕方が無いので、普通に検索して、得られた候補ページをひとつひとつ訪問して、その…

自作でWikipediaの検索利用スクリプトを作る

いろいろ調べましたが、perlのモジュールで、Wikipediaの検索機能を外部から利用するようなものは見つけられなかったので、適当に自作することにしました。 まず、Wikipediaの検索機能ですが、"http://ja.wikipedia.org/w/index.php?search="の後ろに検索し…

WWW::Wikipediaモジュールを試す

Wikipediaの本文を得る為に、検索などを織り交ぜながらマイニングできたらいいなと思い、いろいろ調べるうちに、「WWW::Wikipedia」というモジュールがCPANにあることが判明し、早速使ってみました。my $wiki = WWW::Wikipedia->new(language => 'ja');$resu…

ColorKeywords.pmへの対応&ユーザ辞書更新

前回からColorKeywords.pmが上手く動かない原因を探っていましたが、いろいろ調べたところ、どうやら文字コードが悪さをしていたらしく、Shift-JISなどでは「\Q〜\E」のメタ文字打ち消しの効果が発揮されないことがあるということが分かりました。 生物用語…

再びColorKeywords.pmとにらめっこ

新たに追加された論文、「異なるニッチに存在する腸管上皮幹細胞のあいだの相互関連」をプログラムに渡すと、MeCabモジュールは正しく動き、頻度ファイルは作成されるのですが、生物用語に蛍光をつけるColorKeywordsの部分でエラーが生じてしまいました。 こ…

生物用語Webマイニング

昨日に引き続き、BiologicalWordWeb.plの作成を行いました。昨日の時点ではまだ1単語しかチェックしなかったので、手動でWikipediaを検索しつつ、プログラムの方でまとめて連続で単語を検索するようにしました。while ( ($line = ) && ($limit >0) ) { chomp…

頻度解析モジュールの調整&BiologicalWordWeb.plの作成開始

前回から1週間ほど開いてしまって、新しくFirstAuthor'sのページに追加された論文が増えてきたので、今回もまたこれらを元にプログラムの性能実験を行って、誤ったポイントを修復しました。 まず、「相同染色体」が「同染色体」と切断されてしまうなどのMeCa…

Webインターフェースの更新&BioWebSearch.plの構想

@gackelNL氏のページが改良され、プログラム間の関係性がWebサイトを通じて作られたので、現在公開中の単語解析プログラムのページのトップを変更し、二人のページに飛べるようにリンクを変更しました。 「分類検索」の方に飛ぶと、論文がタグで分けられてお…

Webマイニングプログラムの構想

論文から生物用語と思われる単語を抽出することがだいたいできるようになったので、今度はそれを利用してさらに情報を得たり、論文を読みやすくする為に、新たにプログラムを追加していこうと思っています。 論文からの単語をWikipediaなどの用語系サイトで…

モジュール調整の続き

新たに追加された論文で、一部正しくMeCabで切断できないところがあったので、モジュールを調整しました。 まず、前回追加した、数字とそれに続く部分を切断していく部分ですが、elsif ($strings ne "" && $n->{surface} =~ /^([0-9,]+)$/ && $n->{next}->{f…

ColorKeywordsとの格闘

新しい論文に対してプログラムを作用させたところ、「2H++」とか「[Fe-3]」といった単語に正規表現をかけようとすると、量指定子などの問題で、HTML::ColorKeywordsが落ちてしまうという問題が起きてしまいました。 この機会にモジュールの中身をのぞいたと…

MeCabユーザ辞書と低頻度辞書更新&今後の方針

前回に引き続き、論文をプログラムにかけて、得られた頻度ファイルを見て、生物用語としてふさわしくないものを見つけたので、モジュールの改善を行いました。 まず、数字の扱いですが、「〜10例」とか、大事な単語の後に、名詞として連続で数字が入ることが…

MeCabユーザ辞書と低頻度辞書の更新

FirstAuthorsのページの中で、最近のものを選択しながら、その論文にプログラムを適応させたときの挙動を確かめました。 まず気になったのが、生物用語としては頻繁に使われ、もはや名詞のようになっている、「翻訳後修飾」とか「分化」といった単語が、MeCa…

テキストファイルへのアクセス時の文字コード固定

頻度ファイルへの参照リンクを張っているのですが、これを辿るとブラウザによってはUTF-8以外の文字コードを使用する為に、文字化けが生じてしまうので、これを防ぐ為に、httpサーバが「.txt」ファイルを送信するときに、UTF-8を使うように指定するようにし…

微調整とサイト更新

前回、「,」の扱いをかえた為に、英字とこのカンマが含まれた単語が残ってしまうというバグが発生していました。これを改善すべく、 if ($strings ne "" && $strings !~ /^([0-9,]+)$|^,*\w$/ )として、英字回りの判定を変更して、このバグをとりあえず取り…

モジュールの微調整、辞書更新

化学物質で、「〜-1,6-〜酸」みたいな内容の単語があったとき、途中の「,」が出力抑制文字である為に、この物質名が区切られてしまうというバグがあったので、これを解消すべく手を加えました。 まず、この「,」を抑制文字にすることをやめ、問題であった、…

HTML::Entitiesの利用…問題解決!

今回、取得したHTML文章に対し、HTML::Entitiesを利用して、文字列内の'&'をエスケープし、内部で'utf8'のマルチバイト文字に変換してからHTML::parseを行うことで、'&'を利用したHTML内の文字参照が、勝手にデコードされるのを抑制することができました。 $…

原因は特定…されど

どうやら、HTML::TreeBuilderで文章をパースした際に、「&」が頭につく文字参照が含まれていると、場合によってはUTF8フラグがついて、全体が文字化けてしまうようです。 個人的には、「&」がつく部分はそのままにしておいてほしいのに、HTML::Element->as_t…

CGIのバグ…?

とあるFirstAuthorsの論文、「カイコ発:piRNAがつくられるしくみ」に対し、CGIでHTMLを取得してくる部分で、正しく文字列を取得できない為に、上手く頻度解析ができていないことが判明しました。 どうやら、HTML::TreeBuilderで、文字のタグからas_textメソ…

モジュール調整&モジュールの紹介ページ作成

前回調整したモジュールにより、低頻度辞書の閾値を100としたことで、低頻度辞書への生物用語の拾い上げが上手くいっていたので、この設定を続けてみようと思います。 低頻度辞書をのぞいてみて、「イオンチャネル」と「チャネル」など、部分を含むような単…

HTML作り3回目&モジュール調整

作成したプログラム・サイトの目的や仕様について、公開しているサイトの「プログラム」の部分にリンクを追加し、少し開示しました。ここで根幹となるMeCabFreq.pmのモジュールのソースと、プログラム全体の流れを書いていこうと思っています。今はまだリン…

HTML作り2回目&モジュール調整

今週にかけていろいろHTMLをいじって、FirstAuthorsのページをきちんと参照して、自動的に更新されるページにしました。まずFirstAuthorsの特定のページを見に行って、そのタイトルと公開日を取得して表示できるようにしました。また、FirstAuthorsの次のペ…

HTMLとCSS作り

プログラムを動かす手助けをするサイトの見栄えを改変すべく、テンプレートとなるHTMLのページと、そのページの整形をするCSSを作成しました。とりあえず生物系のページを参考にしつつ、自分にも作れそうな単純な感じのものをデザインしました。 その後デザ…

モジュールの調整&今後の方針

最近の論文に対してプログラムを実行して、MeCabでは上手く認識されない生物用語を辞書に登録し、またサ変接続関係の単語の処理部分を変更したりしました。これにより、上位にランクインする単語の精度が上がってきたので、今の切断ラインである45%ラインを…

Webページ改編3回目、そしてCGIへ…

FirstAuthorsのホームからの本文抽出は、いろいろ試しましたが、結局Javascriptだと、プログラムの動作がブラウザ頼みになってしまうため、環境に依存するのもどうかと思ったので、index.htmlをテンプレートとして、FirstAuthorsのページをパースする部分を…

Webページ改編2回目

今回は、一番始めに表示されるindexページに、cssファイルを適応させるところまで作成しました。 link relからファイルを指定し、cssファイルにはwidthやらmarginやらを書き込んで、とりあえず見た目ができたところです。まだ中身がないので、ほとんど意味が…

表示するWebページのHTML作成開始

プログラムの実行をより簡単にし、さらにその表示をもっと視覚に訴えられるように、Webページの作成を始めました。まずindex.htmlを作成して、簡単な情報を表示できるようになりました。 HTMLの作成はあまりお気に入りのツールがなかったので、とりあえずEcl…

Wikipedia取得の続き&MeCabモジュール組換え

前回Wikipediaのページを取得後にColorKeywordsが正規表現マッチに失敗していたのは、どうやら"("などの正規表現の特殊文字が含まれていたかららしく、これを無視するように設定したら問題なくマーカーを引くことができました。 Wikipediaでは、出典を表す"[…