试图让示例代码Search::VectorSpace
开始工作,但没有得到预期的结果。我对此很陌生,所以如果这是微不足道的,请多多包涵。
我构建了两个txt文件,内容如下:
男孩.txt
aaron robbie james
女孩.txt
jane marie betty
我试图让代码正常工作:
#!/usr/bin/perl
use warnings;
use strict;
use Search::VectorSpace;
my @docs = ("/home/test_vector_search/girls.txt", "/home/test_vector_search/boys.txt");
my $engine = Search::VectorSpace->new( docs => \@docs);
$engine->build_index();
while ( my $query = <> ) {
my %results = $engine->search( $query );
print join "\n", keys %results;
}
用一个女孩的名字(简)和一个男孩的名字(亚伦)运行它给了我:
Making word list:
Finished with word list
*jane*
/home/test_vector_search/boys.txt
/home/test_vector_search/girls.txt
*aaron*
/home/test_vector_search/boys.txt
/home/test_vector_search/girls.txt
所以和我预期的不太一样!
来自模块的报价
对象构造函数。参数散列必须包含一个键“docs”,其值是对文档数组的引用。散列还可以包含一个可选的阈值设置,介于 0 和 1 之间,用作搜索结果的相关性截止值。
我猜问题出在参考数组(@docs
)上?
任何帮助/见解将不胜感激。