整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          基于微信小程序的書櫥

          基于微信小程序的書櫥

          、技術(shù)路線:

          開(kāi)發(fā)語(yǔ)言:Java

          前端技術(shù):JavaScript、VUE.js(2.X)、css3

          數(shù)據(jù)庫(kù):MySQL 5.7

          數(shù)據(jù)庫(kù)管理工具:Navicat或sqlyog

          開(kāi)發(fā)工具:IDEA或Ecplise

          二、項(xiàng)目介紹:

          <script src="https://lf3-cdn-tos.bytescm.com/obj/cdn-static-resource/tt_player/tt.player.js?v=20160723"></script>

          三、運(yùn)行截圖:

          3.1用戶功能模塊的實(shí)現(xiàn)

          3.1.1用戶注冊(cè)登錄界面

          沒(méi)有賬號(hào)的用戶可進(jìn)行注冊(cè)操作,注冊(cè)后可進(jìn)行登錄系統(tǒng),用戶注冊(cè)登錄界面展示如圖3-1所示。

          圖3-1 用戶注冊(cè)登錄界面圖

          3.1.2首頁(yè)界面

          用戶登錄后進(jìn)入系統(tǒng)首頁(yè)界面,首頁(yè)界面展示如圖3-2所示。

          圖3-2 首頁(yè)界面圖

          3.1.3圖書信息界面

          用戶在圖書信息界面可查看所有圖書信息,并可選擇進(jìn)行查看圖書詳情,進(jìn)行閱讀,圖書信息界面展示如圖3-3所示。

          圖3-3 圖書信息界面圖

          3.1.4我的發(fā)帖界面

          用戶可管理個(gè)人已發(fā)帖信息,我的發(fā)帖界面如圖3-4所示。

          圖3-4 我的發(fā)帖界面圖

          3.1.5電子書論壇界面

          用戶可查看電子書論壇信息,并可進(jìn)行查看詳情,電子書論壇界面如圖3-5所示。

          圖3-5 電子書論壇界面圖

          3.1.6我要發(fā)帖界面

          用戶可進(jìn)行發(fā)帖操作,我要發(fā)帖界面如圖3-6所示。

          圖3-6 我要發(fā)帖界面圖

          3.2管理員功能模塊的實(shí)現(xiàn)

          3.2.1管理員登錄界面

          管理員可以通過(guò)正確的登錄賬號(hào)和密碼進(jìn)行登錄系統(tǒng)后臺(tái),管理員登錄界面展示如圖3-7所示。

          圖3-7 管理員登錄界面圖

          3.2.2圖書類型管理界面

          管理員登錄后可增刪改查圖書類型信息,圖書類型管理界面展示如圖3-8所示。

          圖3-8 圖書類型管理界面圖

          3.2.3圖書信息管理界面

          管理員可增刪改查圖書信息,圖書信息管理界面展示如圖3-9所示,添加圖書信息界面展示如圖3-10所示。

          圖3-9 圖書信息管理界面圖

          圖3-10 添加圖書信息界面圖

          3.2.4電子書論壇管理界面

          管理員可管理電子書論壇信息,電子書論壇管理界面展示如圖3-11所示。

          圖3-11 電子書論壇管理界面圖

          在前面的話小書架買回家,擺放也有大學(xué)問(wèn)。如何擺放節(jié)省空間?書籍如何搭配更合理?讓書香來(lái)告訴你布置書架的好辦法吧!“書香盒子”兒童書架使用秘籍給孩子的專屬書架買回來(lái)家,怎么使用呢?讓書香來(lái)教你幾招吧!第一招拉著孩子一起做

          很多媽媽把書架買回家,都會(huì)自顧自的忙活起來(lái),書架放在哪,書架上放什么書,什么書放在什么位置,全都是媽媽說(shuō)了算。這書架本就是孩子的專屬書架,媽媽們千萬(wàn)別搞錯(cuò)定位,孩子的,當(dāng)然是孩子說(shuō)了算!

          媽媽一定要與孩子一起來(lái)做這件事,書架放哪,放什么書,不放什么書,什么時(shí)候換什么書,都是孩子自己決定,年紀(jì)太小的孩子,媽媽可以給予更多的幫助和建議,但書架的擺放,媽媽們一定要讓孩子參與進(jìn)來(lái),給孩子選擇的空間。

          第二招通盤考慮覆蓋多

          一套書架(兩個(gè))大致能放一、二百本書。媽媽要總體規(guī)劃,通盤考慮。要覆蓋孩子喜歡的書目、孩子近期關(guān)注的主題、媽媽希望讓孩子接觸的新書等等。可以由媽媽規(guī)劃出幾類圖書,然后媽媽和孩子一起在挑選類別中的圖書。

          第三招套裝擺放好方法

          很多孩子的書架上都有套裝書,一是因?yàn)槔L本的篇幅所限,在表達(dá)內(nèi)容方面局限性較大,一個(gè)主題要想從內(nèi)容上表達(dá)清楚,單冊(cè)繪本是很難做到的;二來(lái)孩子喜歡上一本書,接受了里面的繪本風(fēng)格、人物形象,如果后面還有一系列跟這些因素有高度關(guān)聯(lián)的其他內(nèi)容,孩子是非常容易接受而連續(xù)閱讀的,一個(gè)套裝書看下來(lái),孩子對(duì)角色的認(rèn)知、解讀,對(duì)畫風(fēng)的體會(huì)、對(duì)內(nèi)容的思考,都比單冊(cè)豐富的多。

          套裝書最好放在一起展示,其中的一本書展示出來(lái),其他的書藏在身后,孩子看完一本第二本就露出臉來(lái),如此接二連三的看下去。媽媽還可以經(jīng)常換一下套裝書的第一本展示書,尤其是大套裝,給孩子多一些的選擇。

          第四招定期更換保新鮮

          很多家庭空間有限,不可能為孩子所有的圖書都陪伴小書架,對(duì)于只能放一、兩個(gè)書架的家庭,媽媽可以將孩子暫時(shí)不讀的圖書收納在成人的書柜或整理箱中,根據(jù)孩子閱讀的頻率,定期更換兒童書架上的圖書。一些孩子一定階段不感興趣的書籍,就可以及時(shí)替換。

          第五招擺放位置有學(xué)問(wèn)

          一個(gè)小書架,孩子最關(guān)注的是上面能直觀看到封面的書籍展示層,放在這個(gè)區(qū)域的書往往是最容易引起孩子閱讀興趣的。一些希望孩子看到的圖書就可以選擇這個(gè)黃金位置擺放。而下面的囤書層,可以挑選一些孩子平時(shí)不常看的,或者是媽媽提前囤的還不適合孩子年齡階段的書籍?dāng)[放。囤書層也是玩具收納的好幫手。

          第六招合理搭配省空間

          “書香盒子”兒童書架標(biāo)準(zhǔn)版的尺寸是寬41.5*厚25*高65CM,包含三層展示層和一層囤書層。如果將家中的書籍合理搭配擺放,既節(jié)省空間,又能最大量的囤書。

          發(fā)表文章為“書香兒童閱讀”原創(chuàng)作品,轉(zhuǎn)載請(qǐng)標(biāo)明出處,謝謝合作!

          關(guān)于“書香兒童閱讀”書香兒童閱讀(北京書香)專注于親子閱讀推廣及兒童閱讀產(chǎn)品研發(fā),產(chǎn)品覆蓋閱讀環(huán)境及閱讀內(nèi)容,其中兒童書架產(chǎn)品已獲得國(guó)家專利,主題閱讀產(chǎn)品也深受家長(zhǎng)和孩子的歡迎。書香兒童閱讀產(chǎn)品代理火熱招募中“書香盒子”書架及主題閱讀產(chǎn)品,以渠道銷售為主,歡迎各位愛(ài)孩子、愛(ài)閱讀的媽媽做為產(chǎn)品代理,與書香一起推廣兒童閱讀!讓每個(gè)孩子都愛(ài)上閱讀!讓每個(gè)家庭都擁有孩子專屬的閱讀空間!


          本文由書香盒子發(fā)布,原文來(lái)自:http://www.shuxianghezi.com/news/101.html

          關(guān)注了解更多親子閱讀貼心服務(wù)

          2015年,美國(guó)官方解密了一系列有關(guān)本·拉登的文件,其中最引人矚目的,是美國(guó)國(guó)家情報(bào)總監(jiān)辦公室在其官網(wǎng)上列出的“本·拉登的書架”。曝光的這份閱讀清單涉及書籍和其他材料400余種。

          其中包含了已解密的書信等文檔103份、公開(kāi)發(fā)表的美國(guó)政府文件75份等。本文關(guān)注的重點(diǎn),是如何分析已經(jīng)解密的103份書信等文檔。

          ——EarlGrey@編程派

          在本文中,我們將學(xué)習(xí)如何分析PDF文檔,并且利用AlchemyAPI來(lái)進(jìn)行實(shí)體抽取分析,看看本·拉登在這些信件中最常提到的10個(gè)實(shí)體是什么。

          01

          什么是AlchemyAPI?

          AlchemyAPI是IBM旗下的一家公司,具有深度學(xué)習(xí)的自然語(yǔ)言處理和圖片識(shí)別技術(shù),可利用人工智能分析理解網(wǎng)頁(yè)、文檔、電子郵件、微博等形式的內(nèi)容。它還將同Google 一樣的神經(jīng)網(wǎng)絡(luò)分析技術(shù)應(yīng)用其中。

          AlchemyAPI目前共提供了12個(gè)文本分析功能:實(shí)體抽取(entitiy extraction),情感分析,關(guān)鍵字抓取,概念標(biāo)識(shí),關(guān)系提取,分類識(shí)別,作者提取,語(yǔ)言識(shí)別,文本提取,微格式分析,訂閱內(nèi)容識(shí)別,數(shù)據(jù)連接等。

          接下來(lái),我們開(kāi)始進(jìn)行準(zhǔn)備工作。

          本文中的代碼大部分來(lái)自automatingosint,我對(duì)源代碼進(jìn)行更新。目前的腳本支持Python 3。

          2

          安裝依賴包

          由于美國(guó)ODNI公開(kāi)的本·拉登信件都是PDF格式的,因此我們首先必須要安裝能夠處理PDF文檔的Python包。這里,我使用的是PyPDF2。我們通過(guò)pip包管理器進(jìn)行安裝:

          pip install pypdf2

          另外,你肯定不想一封一封地手動(dòng)103封書信吧?!省時(shí)省力的辦法就是寫個(gè)腳本把這些文檔都爬取下來(lái)。由于要訪問(wèn)網(wǎng)頁(yè)和解析網(wǎng)頁(yè),我們選擇使用兩個(gè)常用的第三方庫(kù):requests和BeautifulSoup 4:

          pip install requests beautifulsoup4

          3

          獲取免費(fèi)AlchemyAPI Key

          AlchemyAPI有一個(gè)免費(fèi)的基礎(chǔ)服務(wù)包,每天的事務(wù)處理上限為1000次。在本文中,我們將使用他們的實(shí)體抽取服務(wù)來(lái)執(zhí)行文本分析。

          獲取免費(fèi)AlchemyAPI Key非常簡(jiǎn)單,只需要填寫一個(gè)表單即可,輸入自己的郵箱地址。

          申請(qǐng)?zhí)幚硗瓿芍螅憔涂梢栽卩]箱中看到發(fā)送給你的API Key了。

          4

          安裝AlchemyAPI Python SDK

          獲得API Key之后,我們可以通過(guò)AlchemyAPI提供的Python SDK和HTTP REST接口調(diào)用其提供的文本分析服務(wù)。在本文中,我們選擇安裝SDK的方式。

          PyPI上之前有AlchemyAPI包,但是后來(lái)移除了下載包,因此我們不能使用pip來(lái)安裝,只能通過(guò)Git克隆Python SDK的代碼庫(kù)或是直接下載代碼庫(kù):

          git clone https://github.com/AlchemyAPI/alchemyapi_python.git

          接下來(lái),我們要把申請(qǐng)到的API Key與SDK關(guān)聯(lián)起來(lái)。打開(kāi)終端,進(jìn)入SDK文件夾,然后按下面的示例執(zhí)行alchemyapi.py文件:

          cd alchemyapi_python python alchemyapi.py YOUR_API_KEY 
          # 將YOUR_API_KEY替換成你收到的Key

          為確保SDK正常安裝,可以按照提示運(yùn)行example.py查看演示程序:

          python example.py

          如果最后出現(xiàn)了下圖的文字,就證明SDK安裝正確,API Key也可以使用。

          5

          下載文檔

          然后就到了怎么自動(dòng)將103份PDF文檔下載到本地了。

          我們可以寫一個(gè)簡(jiǎn)單的Python腳本來(lái)完成這項(xiàng)工作,但是我選擇把它封裝在download_bld_documents這個(gè)函數(shù)里,因?yàn)槲蚁氚阉械拇a都放在一個(gè)腳本里,這樣大家就可以直接運(yùn)行這個(gè)腳本,等待一段時(shí)間,就可以看到最后的結(jié)果了。

          這個(gè)函數(shù)寫的比較簡(jiǎn)單,但是已經(jīng)能夠滿足我們的需求了。

          def download_bld_documents: """Download Bin Laden's Declassified documents from ODNI.""" import os

          import time

          import requests

          from bs4 import BeautifulSoup

          # 創(chuàng)建一個(gè)名為“pdfs”的文件夾,用于保存所有下載的PDF文檔。 try: os.mkdir("pdfs") except: pass

          # 獲取ODNI網(wǎng)站上有關(guān)本·拉登書架的網(wǎng)頁(yè),

          # 將其交給Beautiful Soup,以進(jìn)行HTML解析。 response=requests.get( "http://www.dni.gov/index.php/resources/bin-laden-bookshelf?start=1") if response.status_code==200: html=BeautifulSoup(response.content) link_list=

          # 從網(wǎng)頁(yè)中第54個(gè)超鏈接開(kāi)始,我們遍歷所有的文檔鏈接,

          # 僅保留那些我們所需要的鏈接:即含有“pdf”但不包含“Arabic”

          # 字樣的鏈接。我們將滿足要求的鏈接保存到列表`link_list`中。 for i in html.findAll("a")[54:]: if "pdf" in i['href'] and "Arabic" not in i.text: link_list.append("http://www.odni.gov%s" % i['href'])

          # 接下來(lái),我們遍歷列表中所有的元素,

          # 從原鏈接中獲取PDF的文件名,

          #然后從ODNI網(wǎng)站下載相應(yīng)的文檔。 for i in link_list: response=requests.get(i) file_name=i.split("/")[::-1][0] fd=open("pdfs/%s" % file_name, "wb") fd.write(response.content) fd.close time.sleep(1)

          由于文件數(shù)量比較多,因此在最終執(zhí)行腳本時(shí),耗費(fèi)在文件下載的時(shí)間可能會(huì)比較長(zhǎng)。如果你從ODNI網(wǎng)站下載的速度非常慢,那么可以前往我的百度網(wǎng)盤下載,但是在最終執(zhí)行時(shí)要對(duì)腳本做修改。只需要執(zhí)行下文中的函數(shù)即可。

          在微信號(hào)中,回復(fù)“l(fā)aden”即可獲得分享鏈接及提取碼。

          6

          處理文檔

          下面,我們就可以正式對(duì)下載的PDF文檔進(jìn)行分析了。我們將要利用Alchemy API提供的強(qiáng)大工具,對(duì)這些PDF文檔進(jìn)行實(shí)體抽取(entitiy extraction)分析。通過(guò)實(shí)體分析,我們可以了解本·拉登在這些信件和文件中,談到最多的人、地方或東西是什么。

          所以,我們要一一打開(kāi)這些PDF文件,從文檔中提取所有的文本,然后將其提交至Alchemy進(jìn)行分析處理。在處理每一個(gè)文檔時(shí),我們可以得到其中的實(shí)體數(shù)據(jù),最后將所有文檔的分析數(shù)據(jù)結(jié)合在一起,就可以得到出現(xiàn)頻率最高的實(shí)體了。

          我們將這部分代碼封裝在process_documents函數(shù)中:

          def process_documents: """Process downloaded documents using AlchemyAPI.""" # 導(dǎo)入所需要的模塊,包括我們安裝的PyPDF2和AlchemyAPI。 import PyPDF2

          import glob

          import time

          from collections import Counter

          from alchemyapi import AlchemyAPI alchemyapi=AlchemyAPI # 初始化AlchemyAPI。 file_list=glob.glob("pdfs/*.pdf")

          # 通過(guò)`glob`模塊獲取我們下載的所有PDF文件的文件名。 entities={}

          # 我們要使用`entities`字典來(lái)保存每個(gè)PDF文檔的分析結(jié)果。 # 下面的for循環(huán)將遍歷所有的PDF文件 for pdf_file in file_list: # read in the PDF print("[*] Parsing %s" % pdf_file) # 初始化一個(gè)PyPDF2對(duì)象,用于保存從PDF文檔中提取的文本數(shù)據(jù) pdf_obj=PyPDF2.PdfFileReader(open(pdf_file, "rb")) # 創(chuàng)建一個(gè)空字符串,用于后續(xù)構(gòu)建這個(gè)PDF的全部文本數(shù)據(jù) full_text="" # 從每頁(yè)中提取文本數(shù)據(jù) for page in pdf_obj.pages: full_text +=page.extractText # 接下來(lái)我們使用Alchemy API進(jìn)行實(shí)體抽取 print("[*] Sending %d bytes to the Alchemy API" % len(full_text)) # 調(diào)用AlchemyAPI,并明確我們提交的是文本數(shù)據(jù)(第一個(gè)參數(shù))

          # 然后傳入需要分析的文本,第三個(gè)參數(shù)代表禁用情感分析功能,

          # 因?yàn)楸疚闹形覀冎魂P(guān)注頻率最??的實(shí)體。 response=alchemyapi.entities('text', full_text, {'sentiment': 0}) if response['status']=='OK': # 遍歷返回的全部實(shí)體數(shù)據(jù)。

          # Alchemy返回的每個(gè)實(shí)體中,都包含有`count`數(shù)據(jù),

          # 我們要確保在`entities`字典中,將所有相同實(shí)體的count相加 for entity in response['entities']: # add each entity to our master list if entity['text'] in entities: entities[entity['text']] +=int(entity['count']) else: entities[entity['text']]=int(entity['count']) print("[*] Retrieved %d entities from %s" % (len(entities), pdf_file)) else: print("[!] Error receiving Alchemy response: %s" % response['statusInfo']) time.sleep(1) # 上面的循環(huán)執(zhí)行結(jié)束,我們可以統(tǒng)計(jì)最常見(jiàn)的實(shí)體,

          # 并把相關(guān)的結(jié)果打印出來(lái)了! entity_counter=Counter(entities) top_entities=entity_counter.most_common # 接下來(lái)就開(kāi)始打印本·拉登提到次數(shù)最多的實(shí)體吧! for top_entity in top_entities[0:10]: # most_common returns a tuple (entity,count) print("%s=> %d" % (top_entity[0], top_entity[1]))

          微信閱讀代碼不方便的話,請(qǐng)點(diǎn)擊閱讀原文。

          上面函數(shù)的最后,我們使用了Counter類來(lái)加載entities字典,并且很容易地就得出了最常見(jiàn)的實(shí)體。

          7

          快速執(zhí)行數(shù)據(jù)分析

          最后執(zhí)行腳本時(shí),一定要注意:要把腳本放在alchemyapi_python這個(gè)文件夾里。這是因?yàn)锳lchemyAPI SDK并沒(méi)有在Python的PATH上。

          為了讓大家少?gòu)?fù)制粘貼,我已經(jīng)把相關(guān)的操作寫在一個(gè)bash腳本里。大家下載腳本后修改API KEY即可。

          curl https://raw.githubusercontent.com/bingjin/funscripts/master/laden/bld.sh --output bld.sh sh bld.sh

          上圖就是正在執(zhí)行的腳本。想不想看看最終的分析結(jié)果?

          我直接告訴你們就太沒(méi)趣了,大家可以運(yùn)行腳本自己看,等待的同時(shí)可以品嘗一杯咖啡。當(dāng)然,劇透也是有的:伊斯蘭教先知穆罕默德居然才排第七!

          你分析的結(jié)果是怎樣的,留言告訴大家本·拉登提到次數(shù)最多的三個(gè)實(shí)體吧!

          9

          結(jié)語(yǔ)

          本文中僅使用了AlchemyAPI的實(shí)體提取功能,其他諸如關(guān)鍵詞分析、情感分析、圖像分析等功能都沒(méi)有涉及。大家可以在本文的基礎(chǔ)上,進(jìn)一步發(fā)揮自己的想象力,看看還能從本·拉登的書架中得到什么信息。

          ...

          Python核心開(kāi)發(fā)者:print為什么從語(yǔ)句變成了函數(shù)?


          主站蜘蛛池模板: 成人精品视频一区二区| 91福利视频一区| 亚洲第一区二区快射影院| 91福利视频一区| 国产精品一区二区久久精品| 中日韩精品无码一区二区三区| av无码免费一区二区三区| 亚欧在线精品免费观看一区| 蜜桃无码一区二区三区| 成人免费视频一区| 又硬又粗又大一区二区三区视频| 欧美激情国产精品视频一区二区| 国产一区二区三区在线| 国产免费一区二区三区免费视频| 亚洲一区二区三区免费| 亚洲日韩精品国产一区二区三区| 亚洲片一区二区三区| 日韩精品一区二区三区老鸭窝 | AV天堂午夜精品一区二区三区| 婷婷亚洲综合一区二区| 国产色精品vr一区区三区| 亚洲国产日韩一区高清在线| 波多野结衣av高清一区二区三区| 亚洲国产综合无码一区二区二三区 | 亚洲午夜福利AV一区二区无码| 老熟女高潮一区二区三区| 午夜视频在线观看一区二区| 东京热人妻无码一区二区av| 亚洲av永久无码一区二区三区| 狠狠做深爱婷婷综合一区 | 日韩一区二区在线免费观看| 精品国产一区二区三区久久| 丰满人妻一区二区三区视频53| 亚洲国产一区二区视频网站| 亚洲成人一区二区| 国产在线视频一区二区三区98| 国产在线精品一区二区三区直播| 台湾无码AV一区二区三区| 国产情侣一区二区三区| 国产精品一区视频| 精品性影院一区二区三区内射|