`

[转]Plucene介绍

 
阅读更多
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>

Plucene介绍

作者:chiesa 最后更新:2005/9/25

概述

Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。

Plucene基于java lucene项目创建。
Plucene::Simple可以让我们更方便的使用Plucene。

安装方法:

perl -MCPAN -e “install Plucene”
perl -MCPAN -e “install Plucene::Simple”

Hello World

1    use Plucene::Simple;23    my $index = Plucene::Simple->open( "/test/index" );4    5    6    $index->add("file1.txt" => {content=> "hello world"});7    $index->add("file2.txt" =>{content=> "hello china"});8    910    @ids = $index->search("world");11    print "@ids";

程序输出的结果为file1.txt。

第3行:我们打开索引目录/test/index,如果没有该目录,会自动创建。如果索引目录已经存在,那么索引内容会被自动载入。

第6、7行:添加索引:fileX.txt的内容为hello.. 索引会被存储在/test/index,当下次程序运行,这些索引内容依然存在,可以直接检索。

第10行:搜索world

结果得到file1.txt包含world。

构建全文搜索

根据上面的例子,建立一个针对文件系统的搜索引擎的方法就很简单了。

首先,制作一个Indexer服务,负责遍历文件系统目录,监控文件系统更新,读取文件,添加文档内容,制作index。
(参照上节代码第6,7行)

注意,对于不同格式的文件需要进行格式转换,如:pdf2text,html2text,word2text等。

然后,制作Searcher用户界面,进行搜索。
(参照上节代码第10,11行)

构建搜索引擎
和针对文件系统的搜索不同的是,搜索引擎的文档来源来自于internet。

首先,需要制作web spider,自动获取网页html,然后将html转换成text,然后进行index制作。

中文问题解决

Plucene中文是个big problem。主要表现在分词上。

要解决这个问题,首先,你需要了解Plucene API机制,而不是仅使用Plucene Simple(事实上,效率上,这个包的机制也有很多值得优化的地方,比如index文件的预取等)。

关于Plucene机制,可以参考其Pod帮助文档。

当然,更好的是,通过Lucene来了解。在国内,chedong已经写了这方面的文档,非常好。

下面,提供我的解决思路,基于Plucene::Analysis::Standard::StandardAnalyzer,Plucene::Analysis::Standard::StandardTokenizer改造,来制作你自己的Plucene::Analysis::ChineseAnalyzer和Plucene::Analysis::ChineseTokenizer,这两个包负责的是分词。然后修改Plucene::Simple(或者基于此制作你的Plucene::Simple::Chinese)来调用Plucene::Analysis::ChineseAnalyzer

下面是Plucene::Analysis::ChineseTokenizer代码:

1 package Plucene::Analysis::ChineseTokenizer;2 use strict;3 use warnings;4 use Carp;5 use Plucene::Analysis::Token;6 use base 'Plucene::Analysis::Tokenizer';7 sub normalize { lc 

Plucene介绍

作者:chiesa 最后更新:2005/9/25

概述

Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。

Plucene基于java lucene项目创建。
Plucene::Simple可以让我们更方便的使用Plucene。

安装方法:

perl -MCPAN -e “install Plucene”
perl -MCPAN -e “install Plucene::Simple”

Hello World

1    use Plucene::Simple;23    my $index = Plucene::Simple->open( "/test/index" );4    5    6    $index->add("file1.txt" => {content=> "hello world"});7    $index->add("file2.txt" =>{content=> "hello china"});8    910    @ids = $index->search("world");11    print "@ids";

程序输出的结果为file1.txt。

第3行:我们打开索引目录/test/index,如果没有该目录,会自动创建。如果索引目录已经存在,那么索引内容会被自动载入。

第6、7行:添加索引:fileX.txt的内容为hello.. 索引会被存储在/test/index,当下次程序运行,这些索引内容依然存在,可以直接检索。

第10行:搜索world

结果得到file1.txt包含world。

构建全文搜索

根据上面的例子,建立一个针对文件系统的搜索引擎的方法就很简单了。

首先,制作一个Indexer服务,负责遍历文件系统目录,监控文件系统更新,读取文件,添加文档内容,制作index。
(参照上节代码第6,7行)

注意,对于不同格式的文件需要进行格式转换,如:pdf2text,html2text,word2text等。

然后,制作Searcher用户界面,进行搜索。
(参照上节代码第10,11行)

构建搜索引擎
和针对文件系统的搜索不同的是,搜索引擎的文档来源来自于internet。

首先,需要制作web spider,自动获取网页html,然后将html转换成text,然后进行index制作。

中文问题解决

Plucene中文是个big problem。主要表现在分词上。

要解决这个问题,首先,你需要了解Plucene API机制,而不是仅使用Plucene Simple(事实上,效率上,这个包的机制也有很多值得优化的地方,比如index文件的预取等)。

关于Plucene机制,可以参考其Pod帮助文档。

当然,更好的是,通过Lucene来了解。在国内,chedong已经写了这方面的文档,非常好。

下面,提供我的解决思路,基于Plucene::Analysis::Standard::StandardAnalyzer,Plucene::Analysis::Standard::StandardTokenizer改造,来制作你自己的Plucene::Analysis::ChineseAnalyzer和Plucene::Analysis::ChineseTokenizer,这两个包负责的是分词。然后修改Plucene::Simple(或者基于此制作你的Plucene::Simple::Chinese)来调用Plucene::Analysis::ChineseAnalyzer

下面是Plucene::Analysis::ChineseTokenizer代码:

___FCKpd___1

代码和StandardTokenize的实现含义基本是完全相同的。需要额外解释的是第20行/p{INGB2312}和第22行BASE64Encoding

在第20行,我们使用/p{INGB2312},这个是需要自行实现的一个宏。用以判断该字符是否属于半中文字符。具体实现可以参照http://search.cpan.org/~dankogai/Encode-InCharset-0.03/InCharset.pm。对于我们来说,/p{INGB2312}是判断该字符是否属于0xa1-0xfe之间(gb2312编码范围是高位0xa1-0xfe,低位也是0xa1-0xfe)。

第22行,我们使用了一个函数BASE64Encoding,这也是我们需要自行实现的一个函数,用来对汉字作BASE64编码,这个perl提供了相关库支持,很容易做到。

为什么要做BASE64编码,因为我发现Plucene在存储汉字index的时候有问题,所以用这种方法解决,将汉字转换成普通字符序列。否则我们直接使用http://search.cpan.org/~dankogai/Encode-InCharset-0.03/InCharset.pm中的/p{InGB2312}就可以了(在代码中使用use encoding 'gb2312'申明使用汉字编码),这个宏可以用来判断双字节的汉字。

Plucene::Analysis::ChineseAnalyzer与Plucene::Analysis::Standard::StandardAnalyzer基本相同,只是调用的Tokenizer为Plucene::Analysis::ChineseTokenizer

注意,我们的方法只能针对gb2312代码与英文,如果需要支持其他代码,需要自行扩展。

这样我们就初步解决了Plucene的中文问题,一个可以运作的中文搜索就实现了。
我们的方法是遇到一个中文字就将其作为一个分词结果,比如,“中国人”,分词结果为”中”,”国”,”人”,更好的分词可以针对词典来分。Perl已经有这方面的中文实现。请参考http://www.mandarintools.com/上的perl segment(作者也提供了一个java实现)。

结论

Plucene的中文化是个很麻烦的事情。我上面提到的方法只是很简单的一个解决方案,我并不打算完整实现它,只是提供一个思路。

为了得到更好的搜索结果,大家需要参考Lucene在中文化方面的成果,比如:http://www.siuying.net/articles/2005/03/16/382,siu.ying做了很好的范例。同时,还有人使用计算所汉语词法分析系统ICTCLAS在java lucene中,也是一个很好的尝试。

在我的观点,大家不如使用基于Java的Lucene,因为在这个平台上,国内已经有很多成熟的中文问题解决的范例了。我就打算这么做。:)

Showing changes from revision #1 to #2: Added | Removed

Plucene介绍

作者:chiesa 最后更新:2005/9/22最后更新:2005/9/25

概述

Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。

Plucene基于java lucene项目创建。
Plucene::Simple可以让我们更方便的使用Plucene。

安装方法:

perl -MCPAN -e “install Plucene”
perl -MCPAN -e “install Plucene::Simple”

Hello World

1    use Plucene::Simple;23    my $index = Plucene::Simple->open( "/test/index" );4    5    6    $index->add("file1.txt" => {content=> "hello world"});7    $index->add("file2.txt" =>{content=> "hello china"});8    910    @ids = $index->search("world");11    print "@ids";

程序输出的结果为file1.txt。

第3行:我们打开索引目录/test/index,如果没有该目录,会自动创建。如果索引目录已经存在,那么索引内容会被自动载入。

第6、7行:添加索引:fileX.txt的内容为hello.. 索引会被存储在/test/index,当下次程序运行,这些索引内容依然存在,可以直接检索。

第10行:搜索world

结果得到file1.txt包含world。

构建全文搜索

根据上面的例子,建立一个针对文件系统的搜索引擎的方法就很简单了。

首先,制作一个Indexer服务,负责遍历文件系统目录,监控文件系统更新,读取文件,添加文档内容,制作index。
(参照上节代码第6,7行)

注意,对于不同格式的文件需要进行格式转换,如:pdf2text,html2text,word2text等。

然后,制作Searcher用户界面,进行搜索。
(参照上节代码第10,11行)

构建搜索引擎
和针对文件系统的搜索不同的是,搜索引擎的文档来源来自于internet。

首先,需要制作web spider,自动获取网页html,然后将html转换成text,然后进行index制作。

中文问题解决

Plucene中文是个big problem。主要表现在分词上。

要解决这个问题,首先,你需要了解Plucene API机制,而不是仅使用Plucene Simple(事实上,效率上,这个包的机制也有很多值得优化的地方,比如index文件的预取等)。

关于Plucene机制,可以参考其Pod帮助文档。

当然,更好的是,通过Lucene来了解。在国内,chedong已经写了这方面的文档,非常好。

下面,提供我的解决思路,基于Plucene::Analysis::Standard::StandardAnalyzer,Plucene::Analysis::Standard::StandardTokenizer改造,来制作你自己的Plucene::Analysis::ChineseAnalyzer和Plucene::Analysis::ChineseTokenizer,这两个包负责的是分词。然后修改Plucene::Simple(或者基于此制作你的Plucene::Simple::Chinese)来调用Plucene::Analysis::ChineseAnalyzer

下面是Plucene::Analysis::ChineseTokenizer代码:

1 package Plucene::Analysis::ChineseTokenizer;2 use strict;3 use warnings;4 use Carp;5 use Plucene::Analysis::Token;6 use base 'Plucene::Analysis::Tokenizer';7 sub normalize { lc 

Plucene介绍

作者:chiesa 最后更新:2005/9/25

概述

Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。

Plucene基于java lucene项目创建。
Plucene::Simple可以让我们更方便的使用Plucene。

安装方法:

perl -MCPAN -e “install Plucene”
perl -MCPAN -e “install Plucene::Simple”

Hello World

1    use Plucene::Simple;23    my $index = Plucene::Simple->open( "/test/index" );4    5    6    $index->add("file1.txt" => {content=> "hello world"});7    $index->add("file2.txt" =>{content=> "hello china"});8    910    @ids = $index->search("world");11    print "@ids";

程序输出的结果为file1.txt。

第3行:我们打开索引目录/test/index,如果没有该目录,会自动创建。如果索引目录已经存在,那么索引内容会被自动载入。

第6、7行:添加索引:fileX.txt的内容为hello.. 索引会被存储在/test/index,当下次程序运行,这些索引内容依然存在,可以直接检索。

第10行:搜索world

结果得到file1.txt包含world。

构建全文搜索

根据上面的例子,建立一个针对文件系统的搜索引擎的方法就很简单了。

首先,制作一个Indexer服务,负责遍历文件系统目录,监控文件系统更新,读取文件,添加文档内容,制作index。
(参照上节代码第6,7行)

注意,对于不同格式的文件需要进行格式转换,如:pdf2text,html2text,word2text等。

然后,制作Searcher用户界面,进行搜索。
(参照上节代码第10,11行)

构建搜索引擎
和针对文件系统的搜索不同的是,搜索引擎的文档来源来自于internet。

首先,需要制作web spider,自动获取网页html,然后将html转换成text,然后进行index制作。

中文问题解决

Plucene中文是个big problem。主要表现在分词上。

要解决这个问题,首先,你需要了解Plucene API机制,而不是仅使用Plucene Simple(事实上,效率上,这个包的机制也有很多值得优化的地方,比如index文件的预取等)。

关于Plucene机制,可以参考其Pod帮助文档。

当然,更好的是,通过Lucene来了解。在国内,chedong已经写了这方面的文档,非常好。

下面,提供我的解决思路,基于Plucene::Analysis::Standard::StandardAnalyzer,Plucene::Analysis::Standard::StandardTokenizer改造,来制作你自己的Plucene::Analysis::ChineseAnalyzer和Plucene::Analysis::ChineseTokenizer,这两个包负责的是分词。然后修改Plucene::Simple(或者基于此制作你的Plucene::Simple::Chinese)来调用Plucene::Analysis::ChineseAnalyzer

下面是Plucene::Analysis::ChineseTokenizer代码:

1 package Plucene::Analysis::ChineseTokenizer;2 use strict;3 use warnings;4 use Carp;5 use Plucene::Analysis::Token;6 use base 'Plucene::Analysis::Tokenizer';7 sub normalize { lc 

Plucene介绍

作者:chiesa 最后更新:2005/9/25

概述

Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。

Plucene基于java lucene项目创建。
Plucene::Simple可以让我们更方便的使用Plucene。

安装方法:

perl -MCPAN -e “install Plucene”
perl -MCPAN -e “install Plucene::Simple”

Hello World

1    use Plucene::Simple;23    my $index = Plucene::Simple->open( "/test/index" );4    5    6    $index->add("file1.txt" => {content=> "hello world"});7    $index->add("file2.txt" =>{content=> "hello china"});8    910    @ids = $index->search("world");11    print "@ids";

程序输出的结果为file1.txt。

第3行:我们打开索引目录/test/index,如果没有该目录,会自动创建。如果索引目录已经存在,那么索引内容会被自动载入。

第6、7行:添加索引:fileX.txt的内容为hello.. 索引会被存储在/test/index,当下次程序运行,这些索引内容依然存在,可以直接检索。

第10行:搜索world

结果得到file1.txt包含world。

构建全文搜索

根据上面的例子,建立一个针对文件系统的搜索引擎的方法就很简单了。

首先,制作一个Indexer服务,负责遍历文件系统目录,监控文件系统更新,读取文件,添加文档内容,制作index。
(参照上节代码第6,7行)

注意,对于不同格式的文件需要进行格式转换,如:pdf2text,html2text,word2text等。

然后,制作Searcher用户界面,进行搜索。
(参照上节代码第10,11行)

构建搜索引擎
和针对文件系统的搜索不同的是,搜索引擎的文档来源来自于internet。

首先,需要制作web spider,自动获取网页html,然后将html转换成text,然后进行index制作。

中文问题解决

Plucene中文是个big problem。主要表现在分词上。

要解决这个问题,首先,你需要了解Plucene API机制,而不是仅使用Plucene Simple(事实上,效率上,这个包的机制也有很多值得优化的地方,比如index文件的预取等)。

关于Plucene机制,可以参考其Pod帮助文档。

当然,更好的是,通过Lucene来了解。在国内,chedong已经写了这方面的文档,非常好。

下面,提供我的解决思路,基于Plucene::Analysis::Standard::StandardAnalyzer,Plucene::Analysis::Standard::StandardTokenizer改造,来制作你自己的Plucene::Analysis::ChineseAnalyzer和Plucene::Analysis::ChineseTokenizer,这两个包负责的是分词。然后修改Plucene::Simple(或者基于此制作你的Plucene::Simple::Chinese)来调用Plucene::Analysis::ChineseAnalyzer

下面是Plucene::Analysis::ChineseTokenizer代码:

___FCKpd___1

代码和StandardTokenize的实现含义基本是完全相同的。需要额外解释的是第20行/p{INGB2312}和第22行BASE64Encoding

在第20行,我们使用/p{INGB2312},这个是需要自行实现的一个宏。用以判断该字符是否属于半中文字符。具体实现可以参照http://search.cpan.org/~dankogai/Encode-InCharset-0.03/InCharset.pm。对于我们来说,/p{INGB2312}是判断该字符是否属于0xa1-0xfe之间(gb2312编码范围是高位0xa1-0xfe,低位也是0xa1-0xfe)。

第22行,我们使用了一个函数BASE64Encoding,这也是我们需要自行实现的一个函数,用来对汉字作BASE64编码,这个perl提供了相关库支持,很容易做到。

为什么要做BASE64编码,因为我发现Plucene在存储汉字index的时候有问题,所以用这种方法解决,将汉字转换成普通字符序列。否则我们直接使用http://search.cpan.org/~dankogai/Encode-InCharset-0.03/InCharset.pm中的/p{InGB2312}就可以了(在代码中使用use encoding 'gb2312'申明使用汉字编码),这个宏可以用来判断双字节的汉字。

Plucene::Analysis::ChineseAnalyzer与Plucene::Analysis::Standard::StandardAnalyzer基本相同,只是调用的Tokenizer为Plucene::Analysis::ChineseTokenizer

注意,我们的方法只能针对gb2312代码与英文,如果需要支持其他代码,需要自行扩展。

这样我们就初步解决了Plucene的中文问题,一个可以运作的中文搜索就实现了。
我们的方法是遇到一个中文字就将其作为一个分词结果,比如,“中国人”,分词结果为”中”,”国”,”人”,更好的分词可以针对词典来分。Perl已经有这方面的中文实现。请参考http://www.mandarintools.com/上的perl segment(作者也提供了一个java实现)。

结论

Plucene的中文化是个很麻烦的事情。我上面提到的方法只是很简单的一个解决方案,我并不打算完整实现它,只是提供一个思路。

为了得到更好的搜索结果,大家需要参考Lucene在中文化方面的成果,比如:http://www.siuying.net/articles/2005/03/16/382,siu.ying做了很好的范例。同时,还有人使用计算所汉语词法分析系统ICTCLAS在java lucene中,也是一个很好的尝试。

在我的观点,大家不如使用基于Java的Lucene,因为在这个平台上,国内已经有很多成熟的中文问题解决的范例了。我就打算这么做。:)

Showing changes from revision #1 to #2: Added | Removed

Plucene介绍

作者:chiesa 最后更新:2005/9/22最后更新:2005/9/25

概述

Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。

Plucene基于java lucene项目创建。
Plucene::Simple可以让我们更方便的使用Plucene。

安装方法:

perl -MCPAN -e “install Plucene”
perl -MCPAN -e “install Plucene::Simple”

Hello World

1    use Plucene::Simple;23    my $index = Plucene::Simple->open( "/test/index" );4    5    6    $index->add("file1.txt" => {content=> "hello world"});7    $index->add("file2.txt" =>{content=> "hello china"});8    910    @ids = $index->search("world");11    print "@ids";

程序输出的结果为file1.txt。

第3行:我们打开索引目录/test/index,如果没有该目录,会自动创建。如果索引目录已经存在,那么索引内容会被自动载入。

第6、7行:添加索引:fileX.txt的内容为hello.. 索引会被存储在/test/index,当下次程序运行,这些索引内容依然存在,可以直接检索。

第10行:搜索world

结果得到file1.txt包含world。

构建全文搜索

根据上面的例子,建立一个针对文件系统的搜索引擎的方法就很简单了。

首先,制作一个Indexer服务,负责遍历文件系统目录,监控文件系统更新,读取文件,添加文档内容,制作index。
(参照上节代码第6,7行)

注意,对于不同格式的文件需要进行格式转换,如:pdf2text,html2text,word2text等。

然后,制作Searcher用户界面,进行搜索。
(参照上节代码第10,11行)

构建搜索引擎
和针对文件系统的搜索不同的是,搜索引擎的文档来源来自于internet。

首先,需要制作web spider,自动获取网页html,然后将html转换成text,然后进行index制作。

中文问题解决

Plucene中文是个big problem。主要表现在分词上。

要解决这个问题,首先,你需要了解Plucene API机制,而不是仅使用Plucene Simple(事实上,效率上,这个包的机制也有很多值得优化的地方,比如index文件的预取等)。

关于Plucene机制,可以参考其Pod帮助文档。

当然,更好的是,通过Lucene来了解。在国内,chedong已经写了这方面的文档,非常好。

下面,提供我的解决思路,基于Plucene::Analysis::Standard::StandardAnalyzer,Plucene::Analysis::Standard::StandardTokenizer改造,来制作你自己的Plucene::Analysis::ChineseAnalyzer和Plucene::Analysis::ChineseTokenizer,这两个包负责的是分词。然后修改Plucene::Simple(或者基于此制作你的Plucene::Simple::Chinese)来调用Plucene::Analysis::ChineseAnalyzer

下面是Plucene::Analysis::ChineseTokenizer代码:

___FCKpd___3

代码和StandardTokenize的实现含义基本是完全相同的。需要额外解释的是第20行/p{INGB2312}和第22行BASE64Encoding

在第20行,我们使用/p{INGB2312},这个是需要自行实现的一个宏。用以判断该字符是否属于半中文字符。具体实现可以参照http://search.cpan.org/~dankogai/Encode-InCharset-0.03/InCharset.pm。对于我们来说,/p{INGB2312}是判断该字符是否属于0xa1-0xfe之间(gb2312编码范围是高位0xa1-0xfe,低位也是0xa1-0xfe)。

第22行,我们使用了一个函数BASE64Encoding,这也是我们需要自行实现的一个函数,用来对汉字作BASE64编码,这个perl提供了相关库支持,很容易做到。

为什么要做BASE64编码,因为我发现Plucene在存储汉字index的时候有问题,所以用这种方法解决,将汉字转换成普通字符序列。否则我们直接使用http://search.cpan.org/~dankogai/Encode-InCharset-0.03/InCharset.pm中的/p{InGB2312}就可以了(在代码中使用use encoding 'gb2312'申明使用汉字编码),这个宏可以用来判断双字节的汉字。

Plucene::Analysis::ChineseAnalyzer与Plucene::Analysis::Standard::StandardAnalyzer基本相同,只是调用的Tokenizer为Plucene::Analysis::ChineseTokenizer

注意,我们的方法只能针对gb2312代码与英文,如果需要支持其他代码,需要自行扩展。

这样我们就初步解决了Plucene的中文问题,一个可以运作的中文搜索就实现了。
我们的方法是遇到一个中文字就将其作为一个分词结果,比如,“中国人”,分词结果为”中”,”国”,”人”,更好的分词可以针对词典来分。Perl已经有这方面的中文实现。请参考http://www.mandarintools.com/上的perl segment(作者也提供了一个java实现)。

结论

Plucene的中文化是个很麻烦的事情。我上面提到的方法只是很简单的一个解决方案,我并不打算完整实现它,只是提供一个思路。

为了得到更好的搜索结果,大家需要参考Lucene在中文化方面的成果,比如:http://www.siuying.net/articles/2005/03/16/382,siu.ying做了很好的范例。同时,还有人使用计算所汉语词法分析系统ICTCLAS在java lucene中,也是一个很好的尝试。

在我的观点,大家不如使用基于Java的Lucene,因为在这个平台上,国内已经有很多成熟的中文问题解决的范例了。我就打算这么做。:)

[1]}8 sub next {9 my $self = shift;1011 my $fh = $self->{reader};12 retry:13 if (!defined $self->{buffer} or !length $self->{buffer}) {14 return if eof($fh);15 $self->{start} = tell($fh);16 $self->{buffer} .= ;17 }18 return unless length $self->{buffer};1920 if ($self->{buffer} =~ s/(.*?)(/p{INGB2312}/p{INGB2312}|[[:alpha:]]+)//) {21 $self->{start} += length $1;22 if(ord(substr($word,0,1))>127){$word="!".BASE64Encoding($word);}23 my $rv = Plucene::Analysis::Token->new(text => $word,start => $self->{start},end => ($self->{start} + length($word)));24 $self->{start} += length($word);25 return $rv;26 }27 # No match, rest of buffer is useless.28 $self->{buffer} = "";29 # But we should try for some more text30 goto retry;31 }32 1;

代码和StandardTokenize的实现含义基本是完全相同的。需要额外解释的是第20行/p{INGB2312}和第22行BASE64Encoding

在第20行,我们使用/p{INGB2312},这个是需要自行实现的一个宏。用以判断该字符是否属于半中文字符。具体实现可以参照http://search.cpan.org/~dankogai/Encode-InCharset-0.03/InCharset.pm。对于我们来说,/p{INGB2312}是判断该字符是否属于0xa1-0xfe之间(gb2312编码范围是高位0xa1-0xfe,低位也是0xa1-0xfe)。

第22行,我们使用了一个函数BASE64Encoding,这也是我们需要自行实现的一个函数,用来对汉字作BASE64编码,这个perl提供了相关库支持,很容易做到。

为什么要做BASE64编码,因为我发现Plucene在存储汉字index的时候有问题,所以用这种方法解决,将汉字转换成普通字符序列。否则我们直接使用http://search.cpan.org/~dankogai/Encode-InCharset-0.03/InCharset.pm中的/p{InGB2312}就可以了(在代码中使用use encoding 'gb2312'申明使用汉字编码),这个宏可以用来判断双字节的汉字。

Plucene::Analysis::ChineseAnalyzer与Plucene::Analysis::Standard::StandardAnalyzer基本相同,只是调用的Tokenizer为Plucene::Analysis::ChineseTokenizer

注意,我们的方法只能针对gb2312代码与英文,如果需要支持其他代码,需要自行扩展。

这样我们就初步解决了Plucene的中文问题,一个可以运作的中文搜索就实现了。
我们的方法是遇到一个中文字就将其作为一个分词结果,比如,“中国人”,分词结果为”中”,”国”,”人”,更好的分词可以针对词典来分。Perl已经有这方面的中文实现。请参考http://www.mandarintools.com/上的perl segment(作者也提供了一个java实现)。

结论

Plucene的中文化是个很麻烦的事情。我上面提到的方法只是很简单的一个解决方案,我并不打算完整实现它,只是提供一个思路。

为了得到更好的搜索结果,大家需要参考Lucene在中文化方面的成果,比如:http://www.siuying.net/articles/2005/03/16/382,siu.ying做了很好的范例。同时,还有人使用计算所汉语词法分析系统ICTCLAS在java lucene中,也是一个很好的尝试。

在我的观点,大家不如使用基于Java的Lucene,因为在这个平台上,国内已经有很多成熟的中文问题解决的范例了。我就打算这么做。:)

Showing changes from revision #1 to #2: Added | Removed

Plucene介绍

作者:chiesa 最后更新:2005/9/22最后更新:2005/9/25

概述

Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。

Plucene基于java lucene项目创建。
Plucene::Simple可以让我们更方便的使用Plucene。

安装方法:

perl -MCPAN -e “install Plucene”
perl -MCPAN -e “install Plucene::Simple”

Hello World

___FCKpd___2

程序输出的结果为file1.txt。

第3行:我们打开索引目录/test/index,如果没有该目录,会自动创建。如果索引目录已经存在,那么索引内容会被自动载入。

第6、7行:添加索引:fileX.txt的内容为hello.. 索引会被存储在/test/index,当下次程序运行,这些索引内容依然存在,可以直接检索。

第10行:搜索world

结果得到file1.txt包含world。

构建全文搜索

根据上面的例子,建立一个针对文件系统的搜索引擎的方法就很简单了。

首先,制作一个Indexer服务,负责遍历文件系统目录,监控文件系统更新,读取文件,添加文档内容,制作index。
(参照上节代码第6,7行)

注意,对于不同格式的文件需要进行格式转换,如:pdf2text,html2text,word2text等。

然后,制作Searcher用户界面,进行搜索。
(参照上节代码第10,11行)

构建搜索引擎
和针对文件系统的搜索不同的是,搜索引擎的文档来源来自于internet。

首先,需要制作web spider,自动获取网页html,然后将html转换成text,然后进行index制作。

中文问题解决

Plucene中文是个big problem。主要表现在分词上。

要解决这个问题,首先,你需要了解Plucene API机制,而不是仅使用Plucene Simple(事实上,效率上,这个包的机制也有很多值得优化的地方,比如index文件的预取等)。

关于Plucene机制,可以参考其Pod帮助文档。

当然,更好的是,通过Lucene来了解。在国内,chedong已经写了这方面的文档,非常好。

下面,提供我的解决思路,基于Plucene::Analysis::Standard::StandardAnalyzer,Plucene::Analysis::Standard::StandardTokenizer改造,来制作你自己的Plucene::Analysis::ChineseAnalyzer和Plucene::Analysis::ChineseTokenizer,这两个包负责的是分词。然后修改Plucene::Simple(或者基于此制作你的Plucene::Simple::Chinese)来调用Plucene::Analysis::ChineseAnalyzer

下面是Plucene::Analysis::ChineseTokenizer代码:

___FCKpd___3

代码和StandardTokenize的实现含义基本是完全相同的。需要额外解释的是第20行/p{INGB2312}和第22行BASE64Encoding

在第20行,我们使用/p{INGB2312},这个是需要自行实现的一个宏。用以判断该字符是否属于半中文字符。具体实现可以参照http://search.cpan.org/~dankogai/Encode-InCharset-0.03/InCharset.pm。对于我们来说,/p{INGB2312}是判断该字符是否属于0xa1-0xfe之间(gb2312编码范围是高位0xa1-0xfe,低位也是0xa1-0xfe)。

第22行,我们使用了一个函数BASE64Encoding,这也是我们需要自行实现的一个函数,用来对汉字作BASE64编码,这个perl提供了相关库支持,很容易做到。

为什么要做BASE64编码,因为我发现Plucene在存储汉字index的时候有问题,所以用这种方法解决,将汉字转换成普通字符序列。否则我们直接使用http://search.cpan.org/~dankogai/Encode-InCharset-0.03/InCharset.pm中的/p{InGB2312}就可以了(在代码中使用use encoding 'gb2312'申明使用汉字编码),这个宏可以用来判断双字节的汉字。

Plucene::Analysis::ChineseAnalyzer与Plucene::Analysis::Standard::StandardAnalyzer基本相同,只是调用的Tokenizer为Plucene::Analysis::ChineseTokenizer

注意,我们的方法只能针对gb2312代码与英文,如果需要支持其他代码,需要自行扩展。

这样我们就初步解决了Plucene的中文问题,一个可以运作的中文搜索就实现了。
我们的方法是遇到一个中文字就将其作为一个分词结果,比如,“中国人”,分词结果为”中”,”国”,”人”,更好的分词可以针对词典来分。Perl已经有这方面的中文实现。请参考http://www.mandarintools.com/上的perl segment(作者也提供了一个java实现)。

结论

Plucene的中文化是个很麻烦的事情。我上面提到的方法只是很简单的一个解决方案,我并不打算完整实现它,只是提供一个思路。

为了得到更好的搜索结果,大家需要参考Lucene在中文化方面的成果,比如:http://www.siuying.net/articles/2005/03/16/382,siu.ying做了很好的范例。同时,还有人使用计算所汉语词法分析系统ICTCLAS在java lucene中,也是一个很好的尝试。

在我的观点,大家不如使用基于Java的Lucene,因为在这个平台上,国内已经有很多成熟的中文问题解决的范例了。我就打算这么做。:)

[1]}8 sub next {9 my $self = shift;1011 my $fh = $self->{reader};12 retry:13 if (!defined $self->{buffer} or !length $self->{buffer}) {14 return if eof($fh);15 $self->{start} = tell($fh);16 $self->{buffer} .= ;17 }18 return unless length $self->{buffer};1920 if ($self->{buffer} =~ s/(.*?)(/p{INGB2312}/p{INGB2312}|[[:alpha:]]+)//) {21 $self->{start} += length $1;22 if(ord(substr($word,0,1))>127){$word="!".BASE64Encoding($word);}23 my $rv = Plucene::Analysis::Token->new(text => $word,start => $self->{start},end => ($self->{start} + length($word)));24 $self->{start} += length($word);25 return $rv;26 }27 # No match, rest of buffer is useless.28 $self->{buffer} = "";29 # But we should try for some more text30 goto retry;31 }32 1;

代码和StandardTokenize的实现含义基本是完全相同的。需要额外解释的是第20行/p{INGB2312}和第22行BASE64Encoding

在第20行,我们使用/p{INGB2312},这个是需要自行实现的一个宏。用以判断该字符是否属于半中文字符。具体实现可以参照http://search.cpan.org/~dankogai/Encode-InCharset-0.03/InCharset.pm。对于我们来说,/p{INGB2312}是判断该字符是否属于0xa1-0xfe之间(gb2312编码范围是高位0xa1-0xfe,低位也是0xa1-0xfe)。

第22行,我们使用了一个函数BASE64Encoding,这也是我们需要自行实现的一个函数,用来对汉字作BASE64编码,这个perl提供了相关库支持,很容易做到。

为什么要做BASE64编码,因为我发现Plucene在存储汉字index的时候有问题,所以用这种方法解决,将汉字转换成普通字符序列。否则我们直接使用http://search.cpan.org/~dankogai/Encode-InCharset-0.03/InCharset.pm中的/p{InGB2312}就可以了(在代码中使用use encoding 'gb2312'申明使用汉字编码),这个宏可以用来判断双字节的汉字。

Plucene::Analysis::ChineseAnalyzer与Plucene::Analysis::Standard::StandardAnalyzer基本相同,只是调用的Tokenizer为Plucene::Analysis::ChineseTokenizer

注意,我们的方法只能针对gb2312代码与英文,如果需要支持其他代码,需要自行扩展。

这样我们就初步解决了Plucene的中文问题,一个可以运作的中文搜索就实现了。
我们的方法是遇到一个中文字就将其作为一个分词结果,比如,“中国人”,分词结果为”中”,”国”,”人”,更好的分词可以针对词典来分。Perl已经有这方面的中文实现。请参考http://www.mandarintools.com/上的perl segment(作者也提供了一个java实现)。

结论

Plucene的中文化是个很麻烦的事情。我上面提到的方法只是很简单的一个解决方案,我并不打算完整实现它,只是提供一个思路。

为了得到更好的搜索结果,大家需要参考Lucene在中文化方面的成果,比如:http://www.siuying.net/articles/2005/03/16/382,siu.ying做了很好的范例。同时,还有人使用计算所汉语词法分析系统ICTCLAS在java lucene中,也是一个很好的尝试。

在我的观点,大家不如使用基于Java的Lucene,因为在这个平台上,国内已经有很多成熟的中文问题解决的范例了。我就打算这么做。:)

[1]}8 sub next {9 my $self = shift;1011 my $fh = $self->{reader};12 retry:13 if (!defined $self->{buffer} or !length $self->{buffer}) {14 return if eof($fh);15 $self->{start} = tell($fh);16 $self->{buffer} .= ;17 }18 return unless length $self->{buffer};1920 if ($self->{buffer} =~ s/(.*?)(/p{INGB2312}/p{INGB2312}|[[:alpha:]]+)//) {21 $self->{start} += length $1;22 if(ord(substr($word,0,1))>127){$word="!".BASE64Encoding($word);}23 my $rv = Plucene::Analysis::Token->new(text => $word,start => $self->{start},end => ($self->{start} + length($word)));24 $self->{start} += length($word);25 return $rv;26 }27 # No match, rest of buffer is useless.28 $self->{buffer} = "";29 # But we should try for some more text30 goto retry;31 }32 1;

代码和StandardTokenize的实现含义基本是完全相同的。需要额外解释的是第20行/p{INGB2312}和第22行BASE64Encoding

在第20行,我们使用/p{INGB2312},这个是需要自行实现的一个宏。用以判断该字符是否属于半中文字符。具体实现可以参照http://search.cpan.org/~dankogai/Encode-InCharset-0.03/InCharset.pm。对于我们来说,/p{INGB2312}是判断该字符是否属于0xa1-0xfe之间(gb2312编码范围是高位0xa1-0xfe,低位也是0xa1-0xfe)。

第22行,我们使用了一个函数BASE64Encoding,这也是我们需要自行实现的一个函数,用来对汉字作BASE64编码,这个perl提供了相关库支持,很容易做到。

为什么要做BASE64编码,因为我发现Plucene在存储汉字index的时候有问题,所以用这种方法解决,将汉字转换成普通字符序列。否则我们直接使用http://search.cpan.org/~dankogai/Encode-InCharset-0.03/InCharset.pm中的/p{InGB2312}就可以了(在代码中使用use encoding 'gb2312'申明使用汉字编码),这个宏可以用来判断双字节的汉字。

Plucene::Analysis::ChineseAnalyzer与Plucene::Analysis::Standard::StandardAnalyzer基本相同,只是调用的Tokenizer为Plucene::Analysis::ChineseTokenizer

注意,我们的方法只能针对gb2312代码与英文,如果需要支持其他代码,需要自行扩展。

这样我们就初步解决了Plucene的中文问题,一个可以运作的中文搜索就实现了。
我们的方法是遇到一个中文字就将其作为一个分词结果,比如,“中国人”,分词结果为”中”,”国”,”人”,更好的分词可以针对词典来分。Perl已经有这方面的中文实现。请参考http://www.mandarintools.com/上的perl segment(作者也提供了一个java实现)。

结论

Plucene的中文化是个很麻烦的事情。我上面提到的方法只是很简单的一个解决方案,我并不打算完整实现它,只是提供一个思路。

为了得到更好的搜索结果,大家需要参考Lucene在中文化方面的成果,比如:http://www.siuying.net/articles/2005/03/16/382,siu.ying做了很好的范例。同时,还有人使用计算所汉语词法分析系统ICTCLAS在java lucene中,也是一个很好的尝试。

在我的观点,大家不如使用基于Java的Lucene,因为在这个平台上,国内已经有很多成熟的中文问题解决的范例了。我就打算这么做。:)

Showing changes from revision #1 to #2: Added | Removed

Plucene介绍

作者:chiesa 最后更新:2005/9/22最后更新:2005/9/25

概述

Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。

Plucene基于java lucene项目创建。
Plucene::Simple可以让我们更方便的使用Plucene。

安装方法:

perl -MCPAN -e “install Plucene”
perl -MCPAN -e “install Plucene::Simple”

Hello World

___FCKpd___2

程序输出的结果为file1.txt。

第3行:我们打开索引目录/test/index,如果没有该目录,会自动创建。如果索引目录已经存在,那么索引内容会被自动载入。

第6、7行:添加索引:fileX.txt的内容为hello.. 索引会被存储在/test/index,当下次程序运行,这些索引内容依然存在,可以直接检索。

第10行:搜索world

结果得到file1.txt包含world。

构建全文搜索

根据上面的例子,建立一个针对文件系统的搜索引擎的方法就很简单了。

首先,制作一个Indexer服务,负责遍历文件系统目录,监控文件系统更新,读取文件,添加文档内容,制作index。
(参照上节代码第6,7行)

注意,对于不同格式的文件需要进行格式转换,如:pdf2text,html2text,word2text等。

然后,制作Searcher用户界面,进行搜索。
(参照上节代码第10,11行)

构建搜索引擎
和针对文件系统的搜索不同的是,搜索引擎的文档来源来自于internet。

首先,需要制作web spider,自动获取网页html,然后将html转换成text,然后进行index制作。

中文问题解决

Plucene中文是个big problem。主要表现在分词上。

要解决这个问题,首先,你需要了解Plucene API机制,而不是仅使用Plucene Simple(事实上,效率上,这个包的机制也有很多值得优化的地方,比如index文件的预取等)。

关于Plucene机制,可以参考其Pod帮助文档。

当然,更好的是,通过Lucene来了解。在国内,chedong已经写了这方面的文档,非常好。

下面,提供我的解决思路,基于Plucene::Analysis::Standard::StandardAnalyzer,Plucene::Analysis::Standard::StandardTokenizer改造,来制作你自己的Plucene::Analysis::ChineseAnalyzer和Plucene::Analysis::ChineseTokenizer,这两个包负责的是分词。然后修改Plucene::Simple(或者基于此制作你的Plucene::Simple::Chinese)来调用Plucene::Analysis::ChineseAnalyzer

下面是Plucene::Analysis::ChineseTokenizer代码:

___FCKpd___3

代码和StandardTokenize的实现含义基本是完全相同的。需要额外解释的是第20行/p{INGB2312}和第22行BASE64Encoding

在第20行,我们使用/p{INGB2312},这个是需要自行实现的一个宏。用以判断该字符是否属于半中文字符。具体实现可以参照http://search.cpan.org/~dankogai/Encode-InCharset-0.03/InCharset.pm。对于我们来说,/p{INGB2312}是判断该字符是否属于0xa1-0xfe之间(gb2312编码范围是高位0xa1-0xfe,低位也是0xa1-0xfe)。

第22行,我们使用了一个函数BASE64Encoding,这也是我们需要自行实现的一个函数,用来对汉字作BASE64编码,这个perl提供了相关库支持,很容易做到。

为什么要做BASE64编码,因为我发现Plucene在存储汉字index的时候有问题,所以用这种方法解决,将汉字转换成普通字符序列。否则我们直接使用http://search.cpan.org/~dankogai/Encode-InCharset-0.03/InCharset.pm中的/p{InGB2312}就可以了(在代码中使用use encoding 'gb2312'申明使用汉字编码),这个宏可以用来判断双字节的汉字。

Plucene::Analysis::ChineseAnalyzer与Plucene::Analysis::Standard::StandardAnalyzer基本相同,只是调用的Tokenizer为Plucene::Analysis::ChineseTokenizer

注意,我们的方法只能针对gb2312代码与英文,如果需要支持其他代码,需要自行扩展。

这样我们就初步解决了Plucene的中文问题,一个可以运作的中文搜索就实现了。
我们的方法是遇到一个中文字就将其作为一个分词结果,比如,“中国人”,分词结果为”中”,”国”,”人”,更好的分词可以针对词典来分。Perl已经有这方面的中文实现。请参考http://www.mandarintools.com/上的perl segment(作者也提供了一个java实现)。

结论

Plucene的中文化是个很麻烦的事情。我上面提到的方法只是很简单的一个解决方案,我并不打算完整实现它,只是提供一个思路。

为了得到更好的搜索结果,大家需要参考Lucene在中文化方面的成果,比如:http://www.siuying.net/articles/2005/03/16/382,siu.ying做了很好的范例。同时,还有人使用计算所汉语词法分析系统ICTCLAS在java lucene中,也是一个很好的尝试。

在我的观点,大家不如使用基于Java的Lucene,因为在这个平台上,国内已经有很多成熟的中文问题解决的范例了。我就打算这么做。:)

Source: http://wiki.perlchina.org/main/show/Plucene%E4%BB%8B%E7%BB%8D




分享到:
评论

相关推荐

    plucene python版

    lucene.cn 搜索引擎索引模块 pylucene msn : geshuai@gmail.com

    重庆市首席信息官(CIO)协会 《软件及信息化工程造价规范V5.0》T/CQCIO 002-2019

    重庆市T/CQCIO 002—2019《软件及信息化工程造价规范V5.0》 本标准规定了软件及信息化工程造价方法及过程,包括工程费、工程建设其他费、预备费等的造价方法及过程。 本标准规定了工程费中设备及商业现货软件、行业现货软件、数据加工处理费等的取值方法。 本标准规定了购买信息化运营服务的造价方法。 本标准主要适用于政府投资软件及信息化工程项目的估算、概预算、结算管理以及购买信息化运营服务项目的服务单价、服务总价的预算管理、绩效评价管理、结算管理。其他投资类型的软件及信息化工程项目造价评估可参考执行。

    本项目用传统cv算法和卷积神经网络实现手势识别.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    会计学综合练习题.zip

    会计学综合练习题.zip

    过滤 - 化工原理实验Python代码

    过滤 - 化工原理实验Python代码

    aiohttp-3.9.1-cp310-cp310-musllinux_1_1_ppc64le.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    aiohttp-3.7.3-cp36-cp36m-manylinux2014_i686.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    aiohttp-3.9.4-cp311-cp311-musllinux_1_1_aarch64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    着装分割-基于NCNN+YOLOv8-Seg实现行人着装分割算法-附项目源码+流程教程-优质项目实战.zip

    着装分割_基于NCNN+YOLOv8-Seg实现行人着装分割算法_附项目源码+流程教程_优质项目实战

    球面楔形平板等厚干涉matlab代码.rar

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    aiohttp-3.8.0-cp39-cp39-musllinux_1_1_s390x.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    110套html5模板+精品整站源码+16套小程序源码+20套java源码带文档+面试题

    整站源码带后台免费更新(PHP),有安装说明。java20套已经很多了,小程序亲测过,还有我之前整理的面试题

    一个中国象棋程序和一个配套的基于蒙特卡洛算法及神经网络的人工智能(模仿阿尔法狗)源码.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    基于HTML+CSS+JavaScript 制作的网页俄罗斯方块小游戏.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    基于Django框架,采用MTV模式,基于用户画像的电影推荐系统的设计与实现.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    aiohttp-3.8.0a7-cp38-cp38-musllinux_1_1_aarch64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    基于SpringBoot和Vue家政服务平台系统(移动端+PC端+server端源码+MySQL脚本+环境部署步骤讲解+运行步骤

    服务宗旨:有任何问题私信我 适合人群:工作中项目需要、模板框架实战学习、大学毕业设计参考、找工作项目实战积累等等

    毕设项目:STM32直流电机控制系统.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    毕设项目:基于springboot构建的答疑系统.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

Global site tag (gtag.js) - Google Analytics