我有一个朋友(这朋友不是我),朋友的单位里有一个小型图书室,图书室中存放了不少书。
尽管每本书都在相应的区域里进行了编号,但是毕竟没有图书馆的管理系统,大家找起来还是要花点时间的。为了让大家更容易地找到这些书,朋友联系我,打算让我帮他做一个简单的图书查询系统(完整的图书馆管理系统)。
Easier said than done,考虑到这还是有一定复杂度的项目,我打算使用腾讯云云函数 SCF,把整个应用部署到 Serverless 架构上。
▎整体效果
左边是图书检索系统的首页;右边是检索演示,比方说我们搜索「精神」,App 就会依据返回相关的书籍。看起来还不赖。
▎功能设计
- 将包含书籍信息的 Excel 表存放至腾讯云对象存储 COS 中;
- 使用腾讯云云函数读取并解析表格;
- 根据词语相似性检索对应的图书;
- 通过 MUI 制作前端页面,页面也存放在 COS 中。
▎具体实现
- Excel 样式(包含书名和编号)
分类 tab:
- 核心代码实现:
import jieba
import openpyxl
from gensim import corpora, models, similarities
from collections import defaultdict
import urllib.request
with open("/tmp/book.xlsx", "wb") as f:
f.write(
urllib.request.urlopen("https://********").read()
)
top_str = "abcdefghijklmn"
book_dict = {}
book_list = []
wb = openpyxl.load_workbook('/tmp/book.xlsx')
sheets = wb.sheetnames
for eve_sheet in sheets:
print(eve_sheet)
sheet = wb.get_sheet_by_name(eve_sheet)
this_book_name_index = None
this_book_number_index = None
for eve_header in top_str:
if sheet[eve_header][0].value == "书名":
this_book_name_index = eve_header
if sheet[eve_header][0].value == "编号":
this_book_number_index = eve_header
print(this_book_name_index, this_book_number_inde