Python程序設(shè)計課件 第十一章 應(yīng)用案例_第1頁
Python程序設(shè)計課件 第十一章 應(yīng)用案例_第2頁
Python程序設(shè)計課件 第十一章 應(yīng)用案例_第3頁
Python程序設(shè)計課件 第十一章 應(yīng)用案例_第4頁
Python程序設(shè)計課件 第十一章 應(yīng)用案例_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Python程序設(shè)計

第十一章應(yīng)用案例本章知識點導(dǎo)圖安裝deepfacefromdeepfaceimportDeepFacedeepface是一個Python輕量級人臉識別和人臉屬性分析(年齡、性別、情感和種族)的框架,提供非常簡單的接口就可以實現(xiàn)各種人臉識別算法的應(yīng)用。安裝方式:pipinstalldeepface-i

/simple導(dǎo)入的庫名。

人臉特征識別

DeepFace這個庫總體而言識別效果還行,但是離工程應(yīng)用還是有一定的距離。下面將從六個方面來看DeepFace這個庫。

1.人臉驗證DeepFace.verify()DeepFace.verify()可用于驗證兩幅圖像是否為同一個人,調(diào)用函數(shù)格式如下。verify(img1_path,img2_path=‘’,

model_name='VGG-Face’,

distance_metric='cosine’,

model=None,

enforce_detection=True,

detector_backend='opencv’,

align=True,

prog_bar=True,

normalization='base')參數(shù)說明:

model:構(gòu)建deepface模型。每次調(diào)用verify函數(shù)都會重新建立人臉識別模型??梢赃x擇傳遞預(yù)構(gòu)建的人臉識別模型。如DeepFace.build_model('VGG-Face')構(gòu)建模型。enforce_detection:如果在圖像中檢測不到任何人臉,則驗證函數(shù)將返回異常。將此設(shè)置為False將不會出現(xiàn)此異常。detector_backend:人臉識別算法后端,可能需要retinaface,mtcnn,opencv,ssd,dlib支持。align:是否人臉對齊。prog_bar:啟用或禁用進度條。normalization:人臉歸一化的方式。img1_path:傳遞的圖像路徑、numpy數(shù)組(BGR)或based64編碼圖像。model_name:模型名,支持VGG-Face,Facenet,OpenFace,DeepFace,DeepID,Dlib,ArcFace,Ensemble等。distance_metric:度量標(biāo)準(zhǔn),支持cosine,euclidean,euclidean_l2等。返回結(jié)果:如果img1_path輸入的是一張人臉圖片,則返回一個字典;如果輸入的是列表,則返回一個字典列表。返回具體參數(shù)如下:verified:是否同一個人。distance:人臉距離,越小越相似。max_threshold_to_verify:判斷為同一個人的閾值。model:所用模型。similarity_metric:相似性度量標(biāo)準(zhǔn)。detector_backend:表示用于檢測人臉的后端工具。threshold:表示在進行人臉驗證時使用的閾值。閾值通常用于確定兩張人臉圖像是否足夠相似以被認為是同一個人。

例如,輸入兩張照片,看看是不是同一個人:In[1]:fromdeepfaceimportDeepFacemodels_name=["VGG-Face","Facenet","Facenet512","OpenFace","DeepFace","DeepID","ArcFace","Dlib","SFace",'Ensemble']

result=DeepFace.verify(img1_path="d:/img/bb/bb1.png",img2_path="d:/img/gg/gg1.png",model_name=models_name[2])#這里選的是Facenet512模型#展示結(jié)果,判斷兩人是否為同一個人print(result)輸出結(jié)果如下:Out[1]:{'verified':False,'distance':0.5844550501834723,'threshold':0.3,'model':'Facenet512','detector_backend':'opencv','similarity_metric':'cosine','facial_areas':{'img1':{'x':75,'y':201,'w':611,'h':611},'img2':{'x':90,'y':180,'w':362,'h':362}},'time':7.19}注意:DeepFace庫對中文路徑比較敏感,容易報錯,最好使用全英文路徑。

2.人臉識別DeepFace.find()DeepFace.find()可用于從數(shù)據(jù)集中檢索與當(dāng)前人臉相似的圖片。函數(shù)調(diào)用格式為:

find(img_path,db_path,

model_name='VGG-Face’,

distance_metric='cosine’,

model=None,

enforce_detection=True,

detector_backend='opencv’,

align=True,

prog_bar=True,

normalization='base’,

silent=False)其中的參數(shù)同verify()函數(shù),多了人臉檢索庫路徑。db_path:檢索庫路徑。silent:是否靜默顯示數(shù)據(jù)。返回結(jié)果:

一個包含相似圖像的pandasdataframe數(shù)據(jù)框,包括圖像路徑和距離值,相似距離越小越相似。例如從文件夾ww中選出與給定的gg2.png相似的照片,圖片如下所示。

In[2]:result=DeepFace.find(img_path=r"d:\img\gg\gg2.png",db_path="d:/img/ww",model_name=models_name[2])print(result)

Findingrepresentations:100%|██████████|4/4[00:08<00:00,2.04s/it]Representationsstoredind:/img/ww/representations_facenet512.pklfile.Pleasedeletethisfilewhenyouaddnewidentitiesinyourdatabase.findfunctionlasts8.392402410507202seconds[identitysource_xsource_ysource_wsource_hFacenet512_cosine0d:/img/ww/gg.png401053023021.110223e-161d:/img/ww/2.png401053023021.452245e-01]結(jié)果給出顯示,從ww中挑出與gg2.png大概相似的有g(shù)g.png和2.png,相似距離值分別為1.110223e-16和1.452245e-01。其實這里gg2.png和gg.png是同一張,只是文件名不一樣,所以距離值較小。但是判斷gg2.png和2.png這兩張相似還是勉強的,畢竟根本不是同一個人。DeepFace.find()第一次執(zhí)行會提取各個圖像的特征,并在ww文件夾中保存了一個pkl文件,以供下次直接調(diào)用,節(jié)省了比對的計算時間。3.人臉屬性分析DeepFace.analyze()DeepFace.analyze()函數(shù)用于分析圖片中人臉的面部屬性,包括年齡,性別,面部表情(包括憤怒、恐懼、正常、悲傷、厭惡、快樂和驚訝等),種族(包括亞洲人、白人、中東人、印度人、拉丁裔和黑人等)。函數(shù)調(diào)用格式如下:analyze(img_path,

actions=['emotion','age','gender','race'],

models=None,

enforce_detection=True,

detector_backend='opencv’,

prog_bar=True)其中參數(shù)同verify()函數(shù),主要多了屬性設(shè)置actions。

actions:識別屬性,包括age,gender,emotion,race等。返回結(jié)果:如果img_path輸入一張人臉則返回一個字典,如果輸入列表則返回一個字典列表。返回具體參數(shù)如下:

region:人臉坐標(biāo),格式為:wywh。

age:年齡。

gender:性別。

dominant_emotion:主導(dǎo)情緒,也就是情緒識別結(jié)果。

emotion:各個情緒度量值,值越大表示越傾向。

dominant_race:種族結(jié)果。

race:各個種族度量值。例如判斷照片dd1.png的屬性。具體圖片見圖所示。

In[3]:result=DeepFace.analyze(img_path="d:/img/dd/dd1.png",actions=['emotion','emotion','age','gender','race'])

...:print(result)

age_model_weights.h5willbedownloaded...Downloading...From:/serengil/deepface_models/releases/download/v1.0/age_model_weights.h5To:C:\Users\yubg\.deepface\weights\age_model_weights.h5100%|██████████|539M/539M[01:07<00:00,7.99MB/s]gender_model_weights.h5willbedownloaded...Downloading...From:/serengil/deepface_models/releases/download/v1.0/gender_model_weights.h5To:C:\Users\yubg\.deepface\weights\gender_model_weights.h5100%|██████████|537M/537M[00:47<00:00,11.2MB/s]race_model_single_batch.h5willbedownloaded...Downloading...From:/serengil/deepface_models/releases/download/v1.0/race_model_single_batch.h5To:C:\Users\yubg\.deepface\weights\race_model_single_batch.h5100%|██████████|537M/537M[00:49<00:00,10.8MB/s]Action:race:100%|██████████|5/5[00:00<00:00,6.06it/s][{'emotion':{'angry':1.5361418093107204e-05,'disgust':7.33691604107474e-12,'fear':74.31256175041199,'happy':0.018923623429145664,'sad':0.005050586332799867,'surprise':1.607646460399792e-06,'neutral':25.66344439983368},'dominant_emotion':'fear','region':{'x':171,'y':343,'w':858,'h':858},'age':32,'gender':{'Woman':46.9680517911911,'Man':53.03194522857666},'dominant_gender':'Man','race':{'asian':81.37743473052979,'indian':1.923646591603756,'black':0.5071595311164856,'white':10.520566999912262,'middleeastern':1.126598846167326,'latinohispanic':4.544603079557419},'dominant_race':'asian'}]結(jié)果給出的比較詳細,甚至給出了各種情況的概率,給出的屬性除了年齡外基本上還是比較準(zhǔn)確的,'dominant_emotion':'fear','age':32,'dominant_gender':'Man','dominant_race':'asian'。第一次運行該代碼時需要下載較大的表情、年齡、人種等數(shù)據(jù),需要網(wǎng)速順暢,否則容易中斷。4.人臉檢測DeepFace.extract_faces()DeepFace.extract_faces()函數(shù)用于檢測人臉,如果圖像中有多個人臉只會返回其中的一個,調(diào)用函數(shù)格式為:

extract_faces(img_path,

target_size=(224,224),

detector_backend='opencv’,

enforce_detection=True,

align=False)參數(shù)同verify(),主要多了可以設(shè)置返回圖像尺寸的參數(shù)target_size,輸出返回一張RGB的numpy數(shù)組圖像。In[4]:fromPILimportImage,ImageDraw

...:importnumpyasnp...:result=DeepFace.extract_faces(img_path=r"d:\img\hy.png",#hy.png見圖11-3

...:detector_backend='opencv',

...:enforce_detection=True,

...:align=False)

...:print(result)

...:im=result[0]["face"]

...:im=Image.fromarray((im*255).astype(np.uint8))#轉(zhuǎn)換數(shù)據(jù)類型

...:im.show()[{'face':array([[[0.90588236,0.8980392,0.7372549],[0.9019608,0.89411765,0.7411765],[0.90588236,0.89411765,0.7921569],...,[0.7137255,0.5882353,0.53333336],[0.7019608,0.5803922,0.52156866],[0.70980394,0.58431375,0.5294118]],...,...,#此處由于數(shù)據(jù)篇幅較大,省略部分數(shù)據(jù)...,[0.6039216,0.4392157,0.30980393],[0.60784316,0.4392157,0.30980393],[0.6156863,0.44313726,0.31764707]]],dtype=float32),'facial_area':{'x':597,'y':186,'w':369,'h':369},'confidence':6.516651885875035}]合影時僅顯示其中的一張頭像,輸出結(jié)果見圖11-45.人臉特征提取DeepFace.represent()該函數(shù)用于將面部圖像表示為特征向量,函數(shù)調(diào)用格式為:represent(img_path,

model_name='VGG-Face’,

model=None,

enforce_detection=True,

detector_backend='opencv’,

align=True,

normalization='base')其中的參數(shù)同verify()。輸出返回圖像特征多維向量,特征向量的維度根據(jù)模型而變化。In[5]:result=DeepFace.represent(img_path="d:/img/hy.png",model_name=models_name[2])

...:print("特征維度為:{}".format(len(result)))特征維度為:13網(wǎng)絡(luò)爬蟲(獲取NCBI文章)

獲取NCBI主頁()上soybean相關(guān)文獻的PMID號,并將這些PMID號和所對應(yīng)的文章標(biāo)題做成二元元組存儲在列表中。

抓取網(wǎng)頁為了完成將PMID號和所對應(yīng)的文章標(biāo)題做成二元元組存儲在列表中,需要分兩步完成:獲取網(wǎng)頁內(nèi)容提取所需要的內(nèi)容(標(biāo)題和PMID號)這里分別寫了兩個函數(shù)get_html_text()和title_pmid()來實現(xiàn)上面兩步操作。第一個函數(shù)get_html_text(url),爬取NCBI主頁上soybean相關(guān)的文獻,其網(wǎng)址為/pubmed/?term=soybean,將獲取到的頁面內(nèi)容全部原封不動地保存在當(dāng)前路徑下的data_html.txt文件中,同時輸出整個網(wǎng)頁文本內(nèi)容在屏幕上。為了防止頻繁抓取網(wǎng)頁時被封IP(反爬蟲),需要在函數(shù)體內(nèi)加一個header參數(shù)來偽裝瀏覽器。

第二個函數(shù)title_pmid(htmltext)的參數(shù)是第一個函數(shù)get_html_text(url)獲取到的全部網(wǎng)頁原內(nèi)容htmltext,其功能就是從htmltext中獲取文章標(biāo)題和對應(yīng)的PMID號.importrequests,re

#抓取網(wǎng)頁defget_html_text(url='/pubmed/?term=soybean'):'''

從給定的url中獲取其網(wǎng)頁內(nèi)容并保存在data_html.txt中

輸出為獲取的網(wǎng)頁內(nèi)容htmltext文本'''header={'User-Agent':'Mozilla/5.0(X11;Ubuntu;Linuxx86_64;rv:46.0)Gecko/20100101Firefox/46.0','Content-Type':'application/x-www-form-urlencoded','Connection':'Keep-Alive','Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'}#header目的是為了防止被封IP#url='/pubmed/?term=soybean'try:r=requests.get(url,timeout=30,headers=header)#如果狀態(tài)不是200,引發(fā)HTTPError異常r.raise_for_status()r.encoding=r.apparent_encoding#與encoding的區(qū)別說明在文后r.encoding="utf-8"#保存獲取到的頁面內(nèi)容f0=open('data_html.txt','w',encoding='utf-8')#打開并自動創(chuàng)建txt文件f0.write(r.text)f0.close()returnr.textexcept:return"產(chǎn)生異常"

htmltext=get_html_text('/pubmed/?term=soybean')

將獲取到的內(nèi)容保存在data_html.txt文件中,其中就包含有所需要的PMID號和所對應(yīng)的文章標(biāo)題,如圖所示。

r=requests.get()獲取內(nèi)容后,r.encoding表示從httpheader中提取響應(yīng)內(nèi)容編碼,而r.apparent_encoding表示從內(nèi)容中分析出的響應(yīng)內(nèi)容編碼。encoding是從http中的header中的charset字段中提取的編碼方式,若header中沒有charset字段則默認為ISO-8859-1編碼模式,則無法解析中文,會出現(xiàn)亂碼。apparent_encoding會從網(wǎng)頁的內(nèi)容中分析網(wǎng)頁編碼的方式,所以apparent_encoding比encoding更加準(zhǔn)確。當(dāng)網(wǎng)頁出現(xiàn)亂碼時可以把apparent_encoding的編碼格式賦值給encoding。如果網(wǎng)頁編碼方式是ISO-8895-1,那么用r.text查看的是亂碼。r.encoding只是分析網(wǎng)頁的頭部,猜測編碼方式,而r.apparent_encoding則是實實在在根據(jù)網(wǎng)頁內(nèi)容分析編碼方式。所以,在爬蟲程序中,經(jīng)常使用r.encoding=r.apparent_encoding,來直接獲取網(wǎng)頁的編碼。提取標(biāo)題與PMID號

所需要的PMID號和文章的標(biāo)題均已包含在data_html.txt中。如何能夠找到所需要的這兩個內(nèi)容,這就需要從原網(wǎng)頁中去發(fā)現(xiàn)。利用瀏覽器上的“開發(fā)人員工具”模式,對網(wǎng)頁進行跟蹤查找,如圖,網(wǎng)頁中的A、B區(qū)域分別對應(yīng)著代碼區(qū)的A’和B’,從中可以找到對應(yīng)的title和PMID號。通過對比發(fā)現(xiàn)它們都在“<aclass="docsum-title"href=”代碼行中,所以需要將所有以“<aclass="docsum-title"href=”開頭的代碼行全部提取出來,這需要使用到正則表達式來提取.deftitle_pmid(htmltext):'''

從獲取的htmltext中獲取PMID號和對應(yīng)的文章標(biāo)題

輸出為列表,一個元素為一條記錄'''#正則表達式找出需要的部分。#通過查看,需要的數(shù)據(jù)是以“class="docsum-title"”開頭,以“</a>”結(jié)尾pattern='class="docsum-title"(.*?)</a>'data1=re.findall(pattern,htmltext,re.S)#找到返回的是listprint(len(data1))print(data1)

#提取標(biāo)題和PMIDdata_title_pmid=[]#接收標(biāo)題和PMID號構(gòu)成的元組對pat_1='href="/(.*?)/"\n'#匹配PMID號pat_2='>\n\n(.*?).\n\n'#匹配標(biāo)題foriindata1:pmid=re.findall(pat_1,i)title_=re.findall(pat_2,i)print(title_)title=re.sub('<b>Soybean</b>|<b>soybean</b>',"Soybean",title_[0])#剔除掉<b>和</b>data_title_pmid.append((title,pmid[0]))#將處理好的標(biāo)題和PMID元組對做成的列表保存在data_content.txt文件中f1=open('data_content.txt','w',encoding='utf-8')f1.write(str(data_title_pmid))f1.close()returndata_title_pmid

title_pmid(htmltext)上面的代碼通過正則表達式提取了PMID和標(biāo)題,并且將處理好的標(biāo)題和PMID元組對做成列表保存在data_content.txt文件中。

說明:若想獲取有翻頁的網(wǎng)頁所有內(nèi)容,我們就要打開第二頁,查看第二頁的網(wǎng)址,如本例網(wǎng)站中的第二頁網(wǎng)址為/?term=soybean&page=2,第三頁網(wǎng)址為/?term=soybean&page=3,通過對比發(fā)現(xiàn)如下規(guī)律:第一頁:/?term=soybean第二頁:/?term=soybean&page=2第三頁:/?term=soybean&page=3……其實第一頁也可以改為:/?term=soybean&page=1所以對于有翻頁的網(wǎng)址其實變化的就是網(wǎng)址最后的數(shù)字,所以可以用for循環(huán)來提取每一頁的內(nèi)容即可。查找基因序列目標(biāo)是將桌面上的fna文件讀取其內(nèi)容做成字典,字典鍵名為序列的名稱,鍵值為序列。fna文件可以用記事本打開,其內(nèi)容如圖所示。文本內(nèi)容包含了較多的基因序列,現(xiàn)在就將他們?nèi)孔龀苫蛐蛄凶值洌阌诓樵兒褪褂?。實現(xiàn)代碼如下:In[1]:defread_gen(path):

...:'''

...:讀取基因文件,含完整的路徑

...:讀取的是fna格式的文本文件

...:輸出的是已經(jīng)讀取的基因名稱和編碼構(gòu)成的字典

...:'''

...:

...:#讀取文件:完整的文件名和路徑

...:a_a=open(path)

...:originaltext=a_a.read()

...:a_a.close()

...:

...:#將原始文件中的基因序列進行切割做成字典

...:c=originaltext.split('>')

...:print('本次共讀取了',len(c),'個基因序列。',"已經(jīng)做成了字典變量diction")

...:c.remove('')

...:

...:diction={}

...:foriinc:

...:k=i.split('\n')

...:if''ink:

...:k.remove('')

...:content=''.join(k[1:])

...:name=k[0]

...:dic={name:content}

...:diction.update(dic)

...:returndictionIn[2]:path=r'c:\Users\yubg\Desktop\GCF_000321185.1_ASM32118v1_genomic.fna'...:diction=read_gen(path)

本次共讀取了121個基因序列。已經(jīng)做成了字典變量diction

In[3]:dictionOut[3]:{'NZ_CAPG01000120.1Bacillussp.AP8,wholegenomeshotgunsequence':'TAACATAAGAAAAAGACGACCTTTCAAAATGAAGAATCGCCCCCTAATAGTTTAAGTCTATGTATTCATAAACTATATCTTCTTATGCAACAATAGCAGTTATCCAAAAACAAAGCGCTGTAAGTATAGCCATAGGTGTCATCACCCACTTTTCCTTTCTACTATTAGAAAAGCCATTCATAATCGCATTGAGTGTGAGGTATGACGCAAATAAAAAACAAATTCCTCTTGTAGTGCCAATTGAGAATAAATTAGGAATTACCTTGGCAGTCTGCAATATTATTATGATGGCAAATAGCTGAATAAATACAGAAAAGCCACAAGCAACTCTCATTCTTATAGGCATTACGTTGTACTTACCACCCATAGCGAATTCTCCATAGGGGAAACCTAAAGCAAGTAAAGTATATAAGATCGCAACTAATAAAAATGAGACACTTCCAATTAACGCTATTATCATCTAACTATCCCCCTACAAAGTAATATGGTATCTCTATCTACATTTAATTATCTTCTCTCTTTATTCTTATTGCACCTAGTATTCGTTCATTACAAATAAATCCGTCTTGCACTAAACT','NZ_CAPG01000119.1Bacillussp.AP8,wholegenomeshotgunsequence':'ATGTCTCTTTGTTTACTTTATCAGCCTTTCCAACCTCTAAAGAAGTTTTGGAAGCTGGTGTAGAGACCCTATCTATGAAGATTAACGAACTATGTAAGAGCCGATCTGAGAAATGGGCCCGTGATCAAGCAGCTAAGCTAATGAAAGCAGCTCATCAAAATCCATTTCAGCAGACCTTATACCATAGTCACCTGATTAGTTTAGAGATGCTTATTAACATTCTTCTTGAATACAAAAAGCATCTATCCAAACTGGAAGAAGAGATAGATGCCTTAGCGAAAAATATAGAAGAATATAAGATTATCCAATCCATTCCTGGTA…由于篇幅較長,此處僅展示前兩個基因序列。為了方便查找,可按照名稱找出基因組序列編碼,編寫gen_name_search(diction,name)函數(shù)代碼如下。In[4]:defgen_name_search(diction,name):

...:'''

...:給出序列名稱搜索序列編碼

...:'''

...:keys=diction.keys()

...:

...:foriinkeys:

...:ifnameini:

...:print(i,":",diction[i])

...:returndiction[i]In[5]:st=gen_name_search(diction,"NZ_CAPG01000107.1")NZ_CAPG01000107.1Bacillussp.AP8,wholegenomeshotgunsequence:TGGTATGTCAACACTAAACTGGACAAAAATTATAAGGTCTGTTGCTTGAATTCCACAGGTGTTAAATAGCCCAGTGTTCCGTGAATTCGAATATTGTTGAACCAATGAACATAATCATCAAGTTCAAGAGCGAGCTGTTCAAGTGAAGAGAAGTGCGCTCCGTTAGCGAATTCTGTTTTAAATACCTTAAATGTCGCTTCAGCCACGGCATTATCATAAGGGCATCCTTTCATGCTCAGTGATCGCTGGATACCAAATGCTTCAAGAGCCTCTGAAATTAGTTTATTATCAAACTCTTTTCCTCGGTCTGTATGAAACATTTTGACATTATTTAAATTCGCCTGGATGCTCGCAATCGCTTGATACACAAGCTCTGCCGTTTTGTTTACGCCTGTACTATGACCGATGATTTCACGATTGAAAAGGTCGACAAATAGGCATACATAGTGCCATTTTTTTCCGACACGGACGTATGTTAAATCGCTTACAATAACCGCTAATTGTTCATCCTGCTTGAATTGACGCTGTAGTTCATTTTTTACTGGCGCTTCGTTACAACTGGATTTATGTGGCTTAAATTGAGCCACCGTATAGTTTGACAC

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論