Perl Module Reference for Ver.2.1

滳(takya-n@is.aist-nara.ac.jp)
last update 981115

SUFARY(http://cl.aist-nara.ac.jp/lab/nlt/ss/)


 ɽ
 $SUFRAY : SUFARYѥåŸǥ쥯ȥ


 Ϥ

Perl ϡäȤץ񤯤ΤˤʸǤ
絬Ϥʥեθʤɤ򤹤ˤϡ®٤٤Τˤ
ޤǡSUFARY  Perl ȤȤ˾ФƤ櫓
SUFARY  Perl ȤˤϼΤ褦ˡޤ

ѥ׽Ѥơ÷ץ array ̿롥
PerlѤ SUFARY ⥸塼äơPerl  SUFARY Υ饤
  ֥ľܥǤ褦ˤ롥

SUFARY ѥåǤϸԤˡѤơPerl⥸塼ƱƤ
ޤ

⥸塼ȤˤϡεҤ򥹥ץȤƬն˲äޤ
󡤥󥹥ȡ륬(README)˽äơ SUFARY Perl Module 򥤥
ȡ뤷ƤƲ
------
BEGIN{
  $sufdir = "SUFARY Perl Module 򥤥󥹥ȡ뤷ǥ쥯ȥ̾";
  unshift(@INC, "$sufdir", "$sufdir/blib/lib", "$sufdir/blib/arch");
}
use SUFARY;
------

Ф Perl Ѥ硤BEGIN {...} ˰ʲιԤ­
Ʋ
------
  $diddir = "DID Perl Module 򥤥󥹥ȡ뤷ǥ쥯ȥ̾";
  unshift(@INC, "$diddir", "$diddir/blib/lib", "$diddir/blib/arch");
------

ѿ $sufdir, $diddir ˤϡ줾δĶ˹碌ꤷƲ
⥸塼 make install  BEGIN {...} εҤפǤ

Υ⥸塼ȤȤǡSUFARY ֥ȤѲǽˤʤޤ
ŪʻˡϡҤΥץץࣱ
$SUFARY/perl/SUFARY/test.perl 滲ȲޤФ
 DID ֥ȤѲǽˤʤޤŪʻˡϡ
Υץץࣲ$SUFARY/perl/SUFARY/testdid.perl 滲Ȳ


Ǥ SUFARY ֥Ȥ DID ֥ȤΥ᥽åɤꥹȥ
פޤ

 SUFARY ᥽å

new TEXT_FILE [ARRAY_FILE]

SUFARY ֥Ȥޤmkary Ȥä array ե
Ƥɬפޤեɤ߹ߤ˼ԤȤϡundef ֤
ޤǤ륪֥ȿξ¤ϡ255Ǥ

reopen TEXT_FILE [ARRAY_FILE]

֥Ȥݻǡեѹޤե
ɤ߹ߤ˼Ԥȡ֤ͤ 0  1 ˤʤޤ

close()

ä˻ȤȤ̵Ȼפޤ֥ȤեĤޤ

init()

оݤƥΤˤ롥$SUFARY/array/array  init 

search0(KEY)

ɲøKEY ʸ򸡺ޤ$SUFARY/array/array  search 
̤ϡline(), lid(), get_all_line(), get_all_lid() Ǽ
ޤ

search(KEY)

̾︡KEY ʸ򸡺ޤinit() + search0() 

line(NUM)

̤ NUM ܤη̤ޤԤʸ֤ޤ

lid(NUM)

̤ NUM ܤη̤ޤԤιIDֹ֤ޤIDֹȤϥ
ǤΤιԤγϰ֤ΤȤǤ

get_all_pos()

˥ޥåƥȤΰ 礷Ƽޤ֤ͤϥޥå
ƥȤΰ֤ؤΥե󥹤Ǥ

get_all_line()

˥ޥåԤ礷ʸȤƼޤ֤ͤϥޥåԤ
ؤΥե󥹤Ǥ

get_all_lid()

˥ޥåԤ IDֹ 礷Ƽޤ֤ͤϥޥåID
ֹ ؤΥե󥹤ǤIDֹȤϥƥǤΤιԤγ
ϰ֤ΤȤǤ

getstr(IDX, LEN)

оݥƥȤ IDX ܤ LEN ʸФʸȤ֤ޤ

id2line(IDX)

оݥƥȤ IDX ܤʸޤԤ֤ޤ

get_block(IDX, D1, D2)

оݥƥȤ IDX ܤʸޤࡤʸ D1 ʸ D2˰Ϥޤ
ǡʸ֤ޤ

pid2lid(IDX)

оݥƥȤ IDX ܤʸޤԤιIDֹ֤ޤID
ȤϥƥǤΤιԤγϰ֤ΤȤǤ
  
common_prefix(KEY, SEP)

Common Prefix Search ԤʤޤKEY ǸSEP Ƕڤʸ
ꤷޤ(ܤϡC饤֥ sa_common_prefix_search() β
滲Ȳ)ޥåƥȤΰ֤Υե󥹤֤


 DID ᥽å

new DOCID_FILE

DID ֥Ȥޤmkdid Ȥä DocID ե
ɬפޤեɤ߹ߤ˼ԤȤϡundef ֤
Ǥ륪֥ȿξ¤ϡ255Ǥ

reopen DOCID_FILE

֥Ȥݻǡեѹޤե
ɤ߹ߤ˼Ԥȡ֤ͤ 0  1 ˤʤޤ

close()

ä˻ȤȤ̵Ȼפޤ֥ȤեĤޤ

did_size()

DocID ե˴ޤޤ뵭ο֤ޤ

didsearch(IDX)

ƥ IDX ʸܤʸޤޤ뵭õޤ֤ͤϡ
ֹ̤桤ƥǤεγϰ֡ʸΥꥹȤǤ
뵭Ĥʤä硤ֹ̤椬 -1 ˤʤޤ

 ץץ

ץץࣱ(Ūʸ)
------
#!/usr/local/bin/perl
BEGIN {
    $sufdir = "/home/tatuo-y/work/sufary/sufary/perl/SUFARY";
    unshift(@INC, "$sufdir", "$sufdir/blib/lib", "$sufdir/blib/arch");
}
use SUFARY;

$x = SUFARY->new("/home/tatuo-y/work/sufary/sufary/sample.txt");
$nx = $x->search(""); # 
print "FOUND $nx\n";

# ɽ 1
for ($i = 0; $i < $nx; $i++){
    print "[$i]\t",$x->line($i),"\n";
    print "\tιԤϥƥȤƬ ",$x->lid($i)," ʸܤϤޤޤ\n";
}

# ɽ 2
$tmp = $x->get_all_pos;
foreach $i (@$tmp) {
    print ">>>\t",$x->id2line($i),"\n";
    print "\tιԤϥƥȤƬ ",$x->pid2lid($i)," ʸܤϤޤޤ\n";
    print "\tɤϥƥȤƬ $i ʸܤˤޤ\n";
    print "\tιԤϰʲε˴ޤޤƤޤ\n",$x->get_block($i,'<DOC>','</DOC>'),"\n";
}

$x->close();
------

ץץࣲ(DocIDѤ)
------
#!/usr/local/bin/perl
BEGIN {
    $sufdir = "/home/tatuo-y/work/sufary/sufary/perl/SUFARY";
    unshift(@INC, "$sufdir", "$sufdir/blib/lib", "$sufdir/blib/arch");
    $diddir = "/home/tatuo-y/work/sufary/sufary/perl/DID";
    unshift(@INC, "$diddir", "$diddir/blib/lib", "$diddir/blib/arch");
}
use SUFARY;
use DID;

$x = SUFARY->new("/home/tatuo-y/work/sufary/sufary/sample.txt");
$d = DID->new("/home/tatuo-y/work/sufary/sufary/sample.txt.did");

# ANDäƤߤ  '&'
$n = $x->search("");
$tmp = $x->get_all_pos;
foreach $i (@$tmp) {
    ($doc_no, $start, $size) = $d->didsearch($i);
    if($doc_no != -1){$check[$doc_no] = 1;}
}
$n = $x->search("");
$tmp = $x->get_all_pos;
foreach $i (@$tmp) {
    ($doc_no, $start, $size) = $d->didsearch($i);
    if($doc_no != -1 && $check[$doc_no] == 1){
	print $x->getstr($start,$size),"\n";
	$check[$doc_no] = 0;
    }
}

$d->close();
$x->close();
------

