2005.01.28

MeCabを使ってMemorium向けに、PukiWikiのページから名詞・形容詞を抽出し、キーワードファイルを生成するPerlスクリプトを「改版」(1/28)

MeCabを使ってMemorium向けに、PukiWikiのページから名詞・形容詞を抽出し、キーワードファイルを生成するPerlスクリプト (1/24) (http://d-k.cocolog-nifty.com/blog/2005/01/mecabmemoriumpu.html)を改良しました。

変更点は以下の2点。

  • 入力ファイルの文字コードをPerlスクリプト内で、EUCに変換すること
  • Perlスクリプトの引数として、入力ファイルのパスを指定できるようにした。入力ファイルの引数が省略された場合は、既定値でPukiWikiのファイルから入力するようにする。

これで好きなファイル(例えば、HTMLページなど)をMemoriumにキーワードとして渡すことができるようになりました。

以下、変更したソース。Perlの超超超初心者なので汚いところや変なところはご容赦を。

■Perlを起動して、出力ファイルをUTF8に変換するシェルスクリプト

perl /home/hogehoge/bin/pukiwiki2memorium.pl $1
lv -Ou8 /home/hogehoge/public_html/tmp/MemoriumKeywords.txt.euc  >/home/hogehoge/public_html/tmp/MemoriumKeywords.txt.utf8

■Perlスクリプト

#!/usr/bin/perl
use Jcode;

my $i_dir = '/home/hogehoge/public_html/pukiwiki/wiki';
my $o_dir = '/home/hogehoge/public_html/tmp';
my $o_memorium_fn = 'MemoriumKeywords.txt.euc';
my $from_pukiwiki = 'true';
my $i=1;
my @o_memorium;

# 標準入力から入力ファイル
if ( ($#ARGV+1) >= 1 ) {

  $from_pukiwiki = 'false';
  print "MeCab への入力ファイルは引数\n";
  my $i_filename = $ARGV[0];
  chomp $i_filename ;
  open(I_PUKIWIKI,"<$i_filename") || die "Can't open 引数の入力ファイル";

  $o_memorium[0] = ":ファイルからのメモ:";

}
else {
  print "MeCab への入力ファイルは PukiWiki\n";
  # Select PukiWiki Newest File
  opendir(DIR,$i_dir) or die "$!";

  while($filename=readdir(DIR) ) {
    @stat = stat $i_dir.'/'.$filename;
    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdat) = localtime($stat[9]);
    $mtime=sprintf("%04d%02d%02d%02d%02d%02d",$year+1900,$mon+1,$mday,$hour,$min,$sec);
    push(@fnames,$mtime.",".$filename);
  }
  closedir(DIR);

  @fnames=sort{$b cmp $a}@fnames;

  my @i_date_pukiwiki = split(/,/,@fnames[1]);

  my $i_pukiwiki = @i_date_pukiwiki[1];

  # Read PukiWiki Newest File
  my $i_pukiwiki_path = $i_dir."/".$i_pukiwiki;
  open(I_PUKIWIKI,"<$i_pukiwiki_path" ) or die "$!";

  $o_memorium[0] = ":PukiWikiからのメモ:";

}

my $o_memorium_path = $o_dir."/".$o_memorium_fn;
open(O_MEMO, ">$o_memorium_path" ) or die "$!";


while( <I_PUKIWIKI> ){
 # MeCab: Yet Another Part-of-Speech and Morphological Analyzer
 # http://chasen.org/~taku/software/mecab/
 use MeCab;

 # 入力ファイルの文字コードをEUCに変換
 $_ = jcode($_)->euc;

 my @arg = ($0, "-Ochasen");
 my $mecab = new MeCab::Tagger (\@arg);
 my @memorium_card = $mecab->parse($_);

# MeCab 品詞で処理を分ける。
# tune apps:Memorium
# http://blog.livedoor.jp/tunepolo/archives/6794946.html

 foreach my $row ( @memorium_card ) {
   my @rows = split(/\n/,$row);
   foreach my $card ( @rows ) {
     if ( $card =~  /名詞|形容詞|副詞|接続詞/ ) {
       my @meisi_list = split(/\t/,$card);
       
       # Output Memorium Format
       # Memorium Keywords - Memoriumプラグイン
       # http://www.persistent.org/memorium/hiki.cgi?Memorium%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3
       # :単語:品詞: の形式で出力

       $o_memorium[$i] = ":".$meisi_list[0].":".$meisi_list[3]."\n";
       $i=$i+1;
       }
     }
   }
}

my %count;
@o_memorium = grep(!$count{$_}++, @o_memorium);

print @o_memorium;
print O_MEMO @o_memorium;
close(O_MEMO);

print "PukiWiki -> Memorium.Done!\n";

EOF 

■MeCabで抽出したキーワードの例:

MeCab(+辞書 ipadic)は「半角英数字」はダメだけど、「HP」「in」のような「全角英数字」は抽出してくれるのか。ならPerlスクリプト内でMeCabへ渡す前に「半角英数字」を「全角英数字」に変換する?(宿題)

:メール:名詞-サ変接続
:バックアップ:名詞-サ変接続
:仕様:名詞-一般
:モバイル:名詞-一般
:台:名詞-接尾-一般
:目:名詞-接尾-一般
:いつ:名詞-副詞可能
:どこ:名詞-代名詞-一般
:名無し:名詞-一般
:結構:副詞-一般
:がっかり:副詞-助詞類接続
:同期:名詞-副詞可能
:ん:名詞-非自立-一般
:もん:名詞-非自立-一般
:無い:形容詞-自立
:in:名詞-一般
:ファイル:名詞-一般
:良い:形容詞-非自立
:テキストエディタ:名詞-一般
:やつ:名詞-非自立-一般
:インフォメーション:名詞-一般
:みなさま:名詞-代名詞-一般
:いつも:副詞-助詞類接続
:HP:名詞-一般
:作成:名詞-サ変接続
:更新:名詞-サ変接続
:なかなか:副詞-助詞類接続

1/29 追記:
「あたまがうにになる: 人工無能を作ろう~汚染チェック(perl) (http://www.i-on.gr.jp/~lan/blog/archives/000260.html)」を参考に「半角→全角」に変換の処理を、手元のPerlスクリプトの方には入れてみましたが効果の程は???

以上。

うーん、次の興味は「人口無能」かしら。



| | コメント (0) | トラックバック (0)

2005.01.24

MeCabを使ってMemorium向けに、PukiWikiのページから名詞・形容詞を抽出し、キーワードファイルを生成するPerlスクリプト (1/24)

日記やメモ帳代わりにしているPukiWikiのページから、日本語形態素解析ソフト 「MeCab」を使ってMemorium向けに名詞・形容詞を抽出し、キーワードファイルを生成するPerlスクリプトを作ってみました。 Perl初心者なのでめちゃくちゃなコーディングはお許し下さい。でも、動くことは動きます。

  • 単にMeCabを使ってみたかっただけ。まだよく分かっていません。
  • Memorium自体の動作としては、PukiWikiから抽出したキーワードに偏りがあり、いい検索結果がでず、面白くないです。
  • 実行環境が Debian Linux 3.0(Woody)でPerlのバージョンが5.6.1と5.8以降でないため、 PerlでMemoriumのキーワードファイルのUTF8形式に変換できませんでした。シェルスクリプトで lv コマンドで一度EUCに生成されたキーワードファイルをUTF8に変換しました。
  • 「名詞」と「形容詞」をPukiWikiから抽出します。
    1/28追記:「接続詞」「副詞」も追加
  • 1/28追記:
    今後の課題:
    • 1.入力ファイルの文字コードをEUCに変換すること
    • 2.入力ファイルを引数で指定できるようにして、入力ファイル省略された場合は、既定値でPukiWikiのファイルから入力するようにする。

1.Perl、lvコマンド起動シェルスクリプト:

perl /home/hogehoge/bin/pukiwiki2memorium.pl
lv -Ou8 /home/hogehoge/public_html/tmp/MemoriumKeywords.txt.euc  >/home/hogehoge/public_html/tmp/MemoriumKeywords.txt.utf8

2.MeCabを使ったキーワード抽出Perlスクリプト(暫定版)

#!/usr/bin/perl

my $i_dir = '/home/hogehoge/public_html/pukiwiki/wiki';
my $o_dir = '/home/hogehoge/public_html/tmp';
my $o_memorium_fn = 'MemoriumKeywords.txt.euc';

# PukiWikiで更新の新しいページからキーワードを抽出
# 日付順でSORTした。
opendir(DIR,$dir) or die "$!";

while($filename=readdir(DIR) ) {
  @stat = stat $dir.'/'.$filename;
  ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdat) = localtime($stat[9]);
  $mtime=sprintf("%04d%02d%02d%02d%02d%02d",$year+1900,$mon+1,$mday,$hour,$min,$sec);
  push(@fnames,$mtime.",".$filename);
}
closedir(DIR);

@fnames=sort{$b cmp $a}@fnames;
my @i_date_pukiwiki = split(/,/,@fnames[1]); #二番目に新しいファイルを読み込む。一番目は:Recentのため。
my $i_pukiwiki = @i_date_pukiwiki[1];


# 選択したPukiWikiのページからテキストを読み込む
my $i_pukiwiki_path = $i_dir."/".$i_pukiwiki;
open(I_PUKIWIKI,"<$i_pukiwiki_path" ) or die "$!";

my $o_memorium_path = $o_dir."/".$o_memorium_fn;
open(O_MEMO, ">$o_memorium_path" ) or die "$!";


my $i=0;

# 読み込んだテキストにMeCabを実行
while( <I_PUKIWIKI> ){
 # MeCab: Yet Another Part-of-Speech and Morphological Analyzer
 # http://chasen.org/~taku/software/mecab/
 use MeCab;
 
 my @arg = ($0, "-Ochasen");
 my $mecab = new MeCab::Tagger (\@arg);
 my @memorium_card = $mecab->parse($_);

# MeCab 品詞で処理を分ける。
# tune apps:Memorium
# http://blog.livedoor.jp/tunepolo/archives/6794946.html

$o_memorium[0] = ":某のメモ:";

 foreach my $row ( @memorium_card ) {
   my @rows = split(/\n/,$row);
   foreach my $card ( @rows ) {
     if ( $card =~  /名詞|形容詞/ ) {
       my @meisi_list = split(/\t/,$card);
       
       # Memorium のキーワードファイルの出力形式
       # Memorium Keywords - Memoriumプラグイン
       # http://www.persistent.org/memorium/hiki.cgi?Memorium%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3
       # :単語:品詞: の形式で出力

       $o_memorium[$i] = ":".$meisi_list[0].":".$meisi_list[3]."\n";
       $i=$i+1;
       }
     }
   }
}

# 重複したキーワードを削除
my %count;
@o_memorium = grep(!$count{$_}++, @o_memorium);

# EUCのMemoriumのキーワードファイルに出力
print O_MEMO @o_memorium;
close(O_MEMO);

EOF

3.生成したキーワードファイルの例:

半角英数字をMeCab(+辞書 ipadic)?が抽出できないのが痛い。

:メモ::重複:名詞-サ変接続
:ループ:名詞-一般
:比較:名詞-サ変接続
:等しい:形容詞-自立
:等しく:形容詞-自立
:小さい:形容詞-自立
:大きい:形容詞-自立
:以下:名詞-非自立-副詞可能
:以上:名詞-非自立-副詞可能
:右:名詞-一般
:大:接頭詞-名詞接続
:左:名詞-一般
:大:名詞-接尾-一般

4.動作環境

  • Debian Linux 3.0 (Woody)
  • Perl 5.6.1 (deb)
  • ipadic 2.4.4-1 (deb)
  • mecab 0.80 ... perl/ruby/python/java バインディング tar.gz からmake install;make

というわけで、今はこのPerlスクリプトをcronに登録して回しています。

■参考:

MeCab: Yet Another Part-of-Speech and Morphological Analyzer
http://chasen.org/%7Etaku/software/mecab/

MeCab は, 奈良先端科学技術大学院大学自然言語処理学講座の開発する形態素解析器 ChaSenを基に開発された高速な形態素解析器です.

tune apps:Memorium
http://blog.livedoor.jp/tunepolo/archives/6794946.html

このキーワードがMemoriumを上手に利用するための鍵だと思うので,自動(半自動)で登録するためのプログラムを作成しました.

内容はRubyスクリプトで,形態素解析のMeCabを用い,一般名詞と固有名詞だけ文章から取り出し,MemoriumのWikiで利用できるように整形して表示するものです.

Memorium:眺めるインタフェースの提案とその試作
http://www.persistent.org/memorium.html

FrontPage - PukiWiki.org
http://pukiwiki.org/

Perlメモ
http://www.din.or.jp/~ohzaki/perl.htm#ArrayUnique

配列から重複した要素を取り除く

@IT:Unicodeのテキストファイルをほかの文字コードに変換するには
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/448cnvunicode.html





| | コメント (0) | トラックバック (1)

2005.01.19

今日のMemorium(1/19)

今日のMemorium。

  • from 明解な 柔らかい ... うーん、このキーワードの組み合わせから出るとは… (^^;
    • 正しいデザインは世紀を超える - WEB講義 - 環境goo
      http://eco.goo.ne.jp/business/csr/lesson/dec01-2.html

      ... 機能的にも十二分。その後、西尾サンは、用途に合わせて使い分けられるように、硬い毛と柔らかい毛をふたつ ... どれも考え落ちで、ど

  • from 速い やばい ... こんな「ダブルダッチ」のページなんて、Memoriumがなかったら、絶対見ることはなかっただろうな…。

■リンク:

Memorium:眺めるインタフェースの提案とその試作
http://www.persistent.org/memorium.html

P.S.

今、PukiWiki(でつけている日記など)からMemoriumに渡すキーワードのWikiを生成する Perlスクリプトを書いてcronで回そうというアイデアを思いつきました。環境はDebian Linux 3.0(Woody)、で日本語形態素解析にはMeCab(か ChaSen)を使用する予定。PukiWikiから名詞と固有名詞、そして形容詞を抽出するというもの。でも、平日は時間が取れない…。週末になったら、かな。

半自動のRubyのスクリプトは以下のページに紹介されているのですが。

tune apps:Memorium
http://blog.livedoor.jp/tunepolo/archives/6794946.html

自動(半自動)で登録するためのプログラムを作成しました.

内容はRubyスクリプトで,形態素解析のMeCabを用い,一般名詞と固有名詞だけ文章から取り出し,MemoriumのWikiで利用できるように整形して表示するものです.

MeCab: Yet Another Part-of-Speech and Morphological Analyzer
http://chasen.org/%7Etaku/software/mecab/

ChaSen's Wiki - FrontPage
http://chasen.naist.jp/hiki/ChaSen/

形態素解析システム茶筌

1/24追記:できました。
雑木林とコンピュータ: MeCabを使ってMemorium向けに、PukiWikiのページから名詞・形容詞を抽出し、キーワードファイルを生成するPerlスクリプト (1/24)
http://d-k.cocolog-nifty.com/blog/2005/01/mecabmemoriumpu.html



| | コメント (0) | トラックバック (0)

2004.11.02

Memorium & NEC SmartDisplay PK-SD10 (11/2)

NEC SmartDisplay(スマートディスプレイ) PK-SD10 ですが、すっかり生活になじんでいます。最近は就寝前に布団の中から、ホストコンピュータのWindows XP Professional で動作させている Memorium を「リモートデスクトップ」を使い PK-SD10 で表示させて眺めています。

ちなみにMemoriumの「メモのURL」の設定は、以前の記事で書いた「Sleipnirの検索履歴」からPerlスクリプトでMemoriumのキーワード形式に書き出したローカルファイルと、 Memorium Keywordsのキーワードの「データベース一覧」から以下の二つとをそれぞれ組み合わせて登録しています。


■Memorium関連過去の記事:

Memorium & NEC SmartDisplay PK-SD10 (11/2)
http://d-k.cocolog-nifty.com/blog/2004/11/041102_memorium.html
Memorium Ver1.0 以降のメモ形式に対応した Sleipnir の検索履歴からメモを生成するPerlスクリプト 改良版(10/10)
http://d-k.cocolog-nifty.com/blog/2004/10/041010slep2memo.html
Memorium Ver1.0 以降のメモ形式に対応した Sleipnir の検索履歴からメモを生成するPerlスクリプト (9/22)
http://d-k.cocolog-nifty.com/blog/2004/09/040922slep2memo.html
Memorium Ver1.0 以降でもローカルのメモのテキストファイルを呼び出せる (9/22)
http://d-k.cocolog-nifty.com/blog/2004/09/040922memorium.html
Memorium 0.6a のメモの各ファイルを Sleipnir の検索履歴 History.ini から自動生成する Perl スクリプト
http://d-k.cocolog-nifty.com/blog/2004/09/memoriumsleipni.html

■NEC SmartDisplay(スマートディスプレイ)PK-SD10関連過去の記事:

Memorium & NEC SmartDisplay PK-SD10 (11/2)
http://d-k.cocolog-nifty.com/blog/2004/11/041102_memorium.html
NEC PK-SD10 で文字入力ベンチマーク (10/10)
http://d-k.cocolog-nifty.com/blog/2004/10/041010sd10input.html
PK-SD10 を片手で持つ方法を発見 (10/5)
http://d-k.cocolog-nifty.com/blog/2004/10/041005_pksd10__.html
NEC PK-SD10 購入後2週間の感想(10/3)
http://d-k.cocolog-nifty.com/blog/2004/10/041003pksd10imp.html
SmartDisplay PK-SD10 の電源コネクタ部分の強度が不安
http://d-k.cocolog-nifty.com/blog/2004/09/040930sd10conct.html
PukiWiki を SmartDisplay PK-SD10 でも、普通のPCと同じCSS(スタイルシート)のページが見えるようにしたい。pukiwiki.ini.php,keitai.ini.php
http://d-k.cocolog-nifty.com/blog/2004/09/040921pukiinisd.html
PK-SD10本体側のセットアップ&インストール作業編
http://d-k.cocolog-nifty.com/blog/2004/09/040919sd10hwset.html
PK-SD10のPC側での 「Microsoft Smart Display サービスのセットアップウィザード」編
http://d-k.cocolog-nifty.com/blog/2004/09/040919pksd10.html
PK-SD10 開梱
http://d-k.cocolog-nifty.com/blog/2004/09/040919nec_pksd1.html
PK-SD10、衝動買い。価格 52,395円 (税込,送料無料)
http://d-k.cocolog-nifty.com/blog/2004/09/040917sd10_nec_.html



| | コメント (0) | トラックバック (0)

2004.10.10

Memorium Ver1.0 以降のメモ形式に対応した Sleipnir の検索履歴からメモを生成するPerlスクリプト 改良版(10/10)

9/22に作成した Memorium Ver1.0 以降のメモ形式に対応した Sleipnir の検索履歴からメモを生成するPerlスクリプトを改良しました。というかバグ取り???

変更点:

Sleipnir の検索キーワードを検索履歴ファイルからそのまま Memorium に渡すのではなく、空白ごとに単語を切り分けてから渡すようにした。…って、普通最初からこうするよな…_| ̄|○


■ Memorium 関連サイト内リンク

Memorium Ver1.0 以降のメモ形式に対応した Sleipnir の検索履歴からメモを生成するPerlスクリプト (9/22)
http://d-k.cocolog-nifty.com/blog/2004/09/040922slep2memo.html
Memorium Ver1.0 以降でもローカルのメモのテキストファイルを呼び出せる (9/22)
http://d-k.cocolog-nifty.com/blog/2004/09/040922memorium.html
2004.09.05 雑木林とコンピュータ: Memorium 0.6a のメモの各ファイルを Sleipnir の検索履歴 History.ini から自動生成する Perl スクリプト
http://d-k.cocolog-nifty.com/blog/2004/09/memoriumsleipni.html



| | コメント (0) | トラックバック (0)

2004.09.22

Memorium Ver1.0 以降のメモ形式に対応した Sleipnir の検索履歴からメモを生成するPerlスクリプト (9/22)

Memorium Ver1.0 以降のメモ形式に対応した Sleipnir の検索履歴からメモを生成するPerlスクリプト

※:関連リンク
2004.09.22 雑木林とコンピュータ: Memorium Ver1.0 以降でもローカルのメモのテキストファイルを呼び出せる
http://d-k.cocolog-nifty.com/blog/2004/09/040922memorium.html
2004.09.05 雑木林とコンピュータ: Memorium 0.6a のメモの各ファイルを Sleipnir の検索履歴 History.ini から自動生成する Perl スクリプト
http://d-k.cocolog-nifty.com/blog/2004/09/memoriumsleipni.html

10/10追記:

このPerlスクリプトの改良?版を 10/10 に掲載しました。
Memorium Ver1.0 以降のメモ形式に対応した Sleipnir の検索履歴からメモを生成するPerlスクリプト 改良版(10/10)
http://d-k.cocolog-nifty.com/blog/2004/10/041010slep2memo.html



| | コメント (0) | トラックバック (0)

Memorium Ver1.0 以降でもローカルのメモのテキストファイルを呼び出せる (9/22)

Memorium Ver1.0 以降でもローカルのメモのテキストファイルを呼び出せる

Memorium Keywords - Memorium Tools
http://www.persistent.org/memorium/hiki.cgi?Memorium+Tools より

Memorium Ver1.0以降でローカルのメモをよびだす
* file:///C:\memoriumkeywords\myKey.txt(win)
path,テキストファイルの名前は何でもいい.UTF-8で保存. 中身は:○○のメモ:のように書く.

http://www.persistent.org/d/?date=20040922#p01 より

▼ Memorium
* Memorium Toolsのページをつくる.

また1.0以降でWikiベースでの呼び出しにはなっているが,file:///の指定の仕方でローカルのテキストファイルを呼び出せるということを書いておいた.


知らなかった…_| ̄|○

バージョン1.0以降でもローカルのテキストファイルが呼び出せるのね…。
またREADMEなどの説明を見落としたかも…。
明日、スクリプトを書き直そう…。

でも、自分で"Wiki"を使い始めて気がついたのだが、やっぱりローカルファイルよりは"Wiki"にキーワードを登録した方が面白いよなぁ。


※参考:
雑木林とコンピュータ: Memorium 0.6a のメモの各ファイルを Sleipnir の検索履歴 History.ini から自動生成する Perl スクリプト
http://d-k.cocolog-nifty.com/blog/2004/09/memoriumsleipni.html


| | コメント (1) | トラックバック (0)

2004.09.05

Memorium 0.6a のメモの各ファイルを Sleipnir の検索履歴 History.ini から自動生成する Perl スクリプト (9/5)

Memorium 0.6a のメモをSleipnirの検索履歴 History.ini から自動生成する Perl スクリプト

  • Sleipnirの検索履歴を記録しているファイル:
    • D:\Program Files\Sleipnir\user\(ユーザ名)\History.ini";
    • 文字コード:shift_jis

    History.ini のファイル形式は以下の通り
    -----以下、History.ini-------

    [History2]
    SearchCount=10
    URLCount=10
    Search-data0="SPF"
    Search-data1="CoLinux サービス"
    Search-data2="CoLinux"
    Search-data3="PFI"
    Search-data4="Netcraft"
    Search-data5="ICS coLinux"
    Search-data6="CoLinux Fedora"
    Search-data7="Gmail"
    Search-data8="Fedora Core coLinux"
    Search-data9="About:config メモリ 常駐"
    Search-data10="About:config 高速起動"
    URL-data0="http://www.webdokusho.com/"
    URL-data1="http://tenki.jp/yoh/y44.html"
    URL-data2="http://a.hatena.ne.jp/go?http://tenki.jp/yoh/y44.html20040901183347"
    URL-data3="http://a.hatena.ne.jp/go?http://www.webdokusho.com/20040901203447"
    URL-data4="http://pc5.2ch.net/test/read.cgi/software/1093702712/l20"
    URL-data5="http://pc5.2ch.net/test/read.cgi/software/1092524939/l20"
    URL-data6="http://www.asahi.com/"
    URL-data7="http://jgillick.nettripper.com/switchproxy/switchproxy.xpi"
    URL-data8="http://jgillick.100freemb.com/switchproxy/"
    URL-data9="http://www.five-d.co.jp/fer/asx/takano_08.wax"
    URL-data10="http://www.five-d.co.jp/fer/asx/takano_07.wax"
    

  • Memorium 0.6a のメモのファイル名:
    • memorium\cards\card[0-9]{1.2}.txt
    • 文字コード:utf8

Perl で生成するスクリプトを書いているのだが、shift_jis から utf8 へ検索キーワードの文字コードを変換するところがうまくいっていない (T_T)。

9/7追記:
とりあえず、すごーく汚いコーディングですが、「動く」スクリプト(sleipnir_history2memorium_cards.pl)ができました。お目汚しですがアップしておきます。

-----以下、sleipnir_history2memorium_cards.pl ---------
#!/usr/bin/perl
use encoding "utf8";
use Encode;
binmode STDOUT, ":encoding(shiftjis)";
binmode STDERR, ":encoding(shiftjis)";

$counter=0;

open HISTORY_SJIS, '<:encoding(shiftjis)','D:\Program Files\Sleipnir\user\(ユーザ名)\History.ini' || die "History.ini ファイルを開けません :$!\n";
open HISTORY_UTF8, 'History-utf8.ini' || die "History-utf8.ini ファイルを開けません :$!\n";;

while(my $date = <HISTORY_SJIS>){
  print HISTORY_UTF8 $date;
  }
close HISTORY_SJIS;

while(my $date = <HISTORY_UTF8>){
  if ($date =~ /^Search-data/){
    @line = split(/=/,$date);
    @line[1] =~ s/\"//g;

    $file_name = "card".$counter.".txt";
    open ( O_FILE , ">:utf8", $file_name ) || die "cardxx.txt ファイルを開けません :$!\n";
    print O_FILE @line[1];
    close (O_FILE);
    ++$counter;
    }
  }
close HISTORY_UTF8;

exit;
-----以上、sleipnir_history2memorium_cards.pl ---------

Memorium の新しいバージョン 1.0 以降だと設定が「メモのファイル」ではなくなり Web の Wiki ベースのデータベースに変更になってしまっていて、この方法は使えない。

※参考リンク:
■編集と循環 - MemoriumChangeLog …バージョン 0.6a はなくて、0.5a しか残っていない様子。
http://www.persistent.org/hiki/hiki.cgi?MemoriumChangeLog#l0
05a
WISS2003にて緊急公開&その後一般公開(2003-12-17)
(Windows)http://www.persistent.org/data/memorium05a.zip (3.93MB)

■Memorium Keywords - ダウンロード
http://www.persistent.org/memorium/hiki.cgi?%A5%C0%A5%A6%A5%F3%A5%ED%A1%BC%A5%C9
ダウンロード
Memorium for Windows ver1.01
http://www.persistent.org/data/memorium101_win.zip

以上。


9/22追記:

Memorium Ver1.0 以降のメモ形式に対応した Sleipnir の検索履歴からメモを生成するPerlスクリプト (9/22)
http://d-k.cocolog-nifty.com/blog/2004/09/040922slep2memo.html



| | コメント (2) | トラックバック (0)