需求: 需要做一個(gè)pdf文檔管理工具堵幽。為了讓界面更加美觀,考慮給每個(gè)文檔增加一個(gè)封面弹澎。
我還記得三年前做過類似的工作朴下。當(dāng)時(shí)直接在網(wǎng)上找了一個(gè)圖標(biāo),當(dāng)做封面苦蒿。這樣所有的pdf文檔都是一個(gè)封面殴胧,看著很單調(diào)。
后來佩迟,領(lǐng)導(dǎo)就要求用戶在上傳資料前团滥,自己先制作一張封面,一起上傳报强。
這個(gè)解決方案其實(shí)也有很大問題灸姊,一個(gè)是增加了用戶操作成本。另一個(gè)就是秉溉,每個(gè)用戶封面的風(fēng)格比例不同力惯,擺在一起也不美觀。
這次召嘶,我就開動(dòng)了腦筋父晶,想到了利用詞云自動(dòng)生成封面的方案。
技術(shù)很簡(jiǎn)單弄跌,就是后端接收到用戶上傳的pdf文檔后甲喝,做以下三件事:
- 文字提取(pdfminer)铛只。
- 關(guān)鍵詞和頻率提炔号帧(jieba)糠溜。
- 詞云繪制(wordcloud).
每件事都有相應(yīng)的python工具庫(kù)(其實(shí),每件事幾乎都只有一行代碼)押袍,只需要拿來用即可诵冒,效果還挺好。
注意谊惭,如果pdf較大的話汽馋,這三件事計(jì)算量還是挺大的,而且還涉及到io操作圈盔,一般都需要幾秒鐘的處理時(shí)間豹芯。所以可以考慮用異步任務(wù)隊(duì)列完成,減少用戶等待時(shí)間驱敲。
帶上封面后铁蹈,界面就高級(jí)了一些