一个基于中国人民大学网站的智能搜索引擎,集成了多种先进的信息检索技术。
- BM25 算法: 高效的文本相关性排序
- PageRank: 基于链接结构的页面重要性评估
- Learning to Rank (LTR): 机器学习优化的排序模型
- RAG 问答系统: 基于检索增强生成的智能问答
- 个性化推荐: 基于用户搜索历史的智能推荐系统
├── app.py # Flask Web应用主程序
├── ss.py # 搜索引擎核心类
├── rag_qa_system.py # RAG问答系统
├── llm_evaluator.py # LLM评估器
├── recommendation_system.py # 推荐系统
├── 爬虫构建相关/
│ ├── optimized_ruc_spider.py # Scrapy爬虫程序
│ └── pranks.py # PageRank计算
├── templates/ # HTML模板
└── static/ # 静态资源
- Python 3.8+
- 依赖包见下方安装说明
pip install flask flask-cors
pip install scrapy
pip install jieba numpy scikit-learn
pip install beautifulsoup4 lxml
pip install openai # 如使用RAG功能使用 Scrapy 爬虫爬取人大网站数据:
cd 爬虫构建相关
scrapy crawl ruc_spider爬虫会将数据保存到 SQLite 数据库和本地文件。
运行以下命令构建搜索索引:
from ss import SearchEngine
engine = SearchEngine()
engine.build_index()
engine.save_index('search_index.pkl')cd 爬虫构建相关
python pranks.pypython app.py访问 http://localhost:5000 即可使用搜索引擎。
采用 BM25 算法进行文本相关性计算,支持中文分词和停用词过滤。
基于网页链接关系计算页面重要性,提升搜索结果质量。
使用机器学习模型优化排序,综合考虑多个特征:
- BM25分数
- PageRank分数
- URL长度
- 标题匹配度
- 内容长度
结合检索和生成技术,可对搜索结果进行智能问答。需配置 OpenAI API 或兼容接口。
基于用户搜索历史和行为,提供智能推荐功能。
如需使用 RAG 功能,需在 rag_qa_system.py 中配置 API:
self.client = OpenAI(
api_key="your-api-key",
base_url="your-base-url"
)- 后端框架: Flask
- 爬虫框架: Scrapy
- 中文分词: jieba
- 机器学习: scikit-learn
- 数据库: SQLite
- 前端: HTML/CSS/JavaScript
- 爬虫使用需遵守网站 robots.txt 规则和相关法律法规
- RAG 功能需要配置合适的 LLM API
- 首次运行需要爬取数据并构建索引,可能需要较长时间
- 建议在良好网络环境下运行爬虫
欢迎提交 Issue 和 Pull Request!