产业气象站|Serverless 快速实现简单版查询工具,基于
朋友的单位有一个小型的图书室 , 图书室中摆放了很多的书 , 每本书都被编号放在对应的区域 , 为了让大家更快、更容易找到这些书 , 他联系我 , 让我帮他弄一个图书查询系统 , 通过用户输入能模糊匹配到对应的结果 , 并且提供书籍对应的地点 。
功能设计
让朋友把书籍整理并存储到一个Excel表格中;
将Excel表放到对象存储中 , 云函数读取这个文件并解析;
根据词语的相似寻找相似的图书;
前端页面通过MUI制作 , 放在对象存储中 , 并且使用对象存储的Website功能;
整体实现
数据形态
Excel样式主要包括书名和编号 , 同时下面包括分类的tab:
文章图片
基于函数的搜索功能
核心代码实现:
importjiebaimportopenpyxlfromgensimimportcorpora,models,similaritiesfromcollectionsimportdefaultdictimporturllib.requestwithopen("/tmp/book.xlsx","wb")asf:f.write(urllib.request.urlopen("https://********").read())top_str="abcdefghijklmn"book_dict={}book_list=[]wb=openpyxl.load_workbook("/tmp/book.xlsx")sheets=wb.sheetnamesforeve_sheetinsheets:print(eve_sheet)sheet=wb.get_sheet_by_name(eve_sheet)this_book_name_index=Nonethis_book_number_index=Noneforeve_headerintop_str:ifsheet[eve_header][0].valuehttps://pcff.toutiao.jxnews.com.cn/p/20200629/=="书名":this_book_name_index=eve_headerifsheet[eve_header][0].valuehttps://pcff.toutiao.jxnews.com.cn/p/20200629/=="编号":this_book_number_index=eve_headerprint(this_book_name_index,this_book_number_index)ifthis_book_name_indexandthis_book_number_index:this_book_list_len=len(sheet[this_book_name_index])foriinrange(1,this_book_list_len):add_key="%s_%s_%s"%(sheet[this_book_name_index][i].value,eve_sheet,sheet[this_book_number_index][i].value)add_value=https://pcff.toutiao.jxnews.com.cn/p/20200629/{"category":eve_sheet,"name":sheet[this_book_name_index][i].value,"number":sheet[this_book_number_index][i].value}book_dict[add_key]=add_valuebook_list.append(add_key)defgetBookList(book,book_list):documents=[]foreve_sentenceinbook_list:tempData="".join(jieba.cut(eve_sentence))documents.append(tempData)texts=[[wordforwordindocument.split()]fordocumentindocuments]frequency=defaultdict(int)fortextintexts:forwordintext:frequency[word]+=1dictionary=corpora.Dictionary(texts)new_xs=dictionary.doc2bow(jieba.cut(book))corpus=[dictionary.doc2bow(text)fortextintexts]tfidf=models.TfidfModel(corpus)featurenum=len(dictionary.token2id.keys())sim=similarities.SparseMatrixSimilarity(tfidf[corpus],num_features=featurenum)[tfidf[new_xs]]book_result_list=[(sim[i],book_list[i])foriinrange(0,len(book_list))]book_result_list.sort(key=lambdax:x[0],reverse=True)result=[]foreveinbook_result_list:ifeve[0]>=0.25:result.append(eve)returnresultdefmain_handler(event,context):try:print(event)name=event["body"]print(name)base_html="""
【产业气象站|Serverless 快速实现简单版查询工具,基于】{{book_name}}
- 产业气象站|散热效果大大下降,CPU硅脂应该这样涂!涂多了得不偿失
- 【湖南】那些街边不起眼的小小打印店,背后却是鲜为人知的产业帝国
- 产业气象站|5G汽车:新能源汽车产业发展新方向
- 产业气象站|「电商运营」作为电商运营需要具备的逻辑思维
- 电子产业观察者|他才是人生大赢家,段永平:OPPO、vivo真正的幕后大老板
- 大宇说科技|斥资188亿,解决了芯片全产业链困局,中国最强芯片巨头诞生
- 自主汽车网|汽车产业生态将被重建,“软件定义的汽车”成为共识
- 科技小数据|产业观察:如何通俗地理解5G及其应用
- 产业气象站|重新审视和思考威胁情报的价值,从欧洲“超算”被黑事件
- 产业气象站|专家:直接烧掉!,人工智能会威胁到人类吗?若出现这些状况