Python自然語言處理 課件 第10章 深度學(xué)習(xí)與自然語言處理_第1頁
Python自然語言處理 課件 第10章 深度學(xué)習(xí)與自然語言處理_第2頁
Python自然語言處理 課件 第10章 深度學(xué)習(xí)與自然語言處理_第3頁
Python自然語言處理 課件 第10章 深度學(xué)習(xí)與自然語言處理_第4頁
Python自然語言處理 課件 第10章 深度學(xué)習(xí)與自然語言處理_第5頁
已閱讀5頁,還剩97頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

深度學(xué)習(xí)與自然語言處理Python自然語言處理第十章CONTENT目錄

01詞嵌入算法03循環(huán)神經(jīng)網(wǎng)絡(luò)02訓(xùn)練詞向量實踐04Seq2Seq模型實戰(zhàn)課前回顧常見機器學(xué)習(xí)方法無監(jiān)督學(xué)習(xí)的文本分類文本分類實戰(zhàn)文本聚類實戰(zhàn)深度學(xué)習(xí)概述深度學(xué)習(xí)(DeepLearning)方法基于人工神經(jīng)網(wǎng)絡(luò)(ArtificialNeuralNetwork)自動學(xué)習(xí)合適的特征與多層次的表達與輸出

應(yīng)用于信息抽取、詞性標注、搜索引擎和推薦系統(tǒng)等方面使用詞向量來表示各個級別的元素本章概述

深度學(xué)習(xí)算法:詞嵌入

循環(huán)神經(jīng)網(wǎng)絡(luò)模型

Seq2Seq實例詞嵌入算法01詞向量Word2vec簡介詞向量模型CBOW和Skip-gram模型詞嵌入算法

詞嵌入算法:一種模仿動物神經(jīng)網(wǎng)絡(luò)行為特征,進行分布式并行信息處理的算法數(shù)據(jù)模型依靠系統(tǒng)復(fù)雜程度和調(diào)節(jié)內(nèi)部大量節(jié)點之間相互連接的關(guān)系,從而達到處理信息的目的其核心為上下文表達和上下文與目標詞匯之間的映射關(guān)系詞向量

詞向量(WordEmbedding)離散表示(One-Hot):把每個詞表示為一個長向量。這個向量的維度是詞表大小,向量中只有一個維度的值為1,其余維度為0例:蘋果[0,0,0,1,0,0,0,0,0,……]缺點:無法捕獲詞與詞之間的相似性詞向量

分布式表示:將每個詞映射到K維實數(shù)向量,并根據(jù)詞之間的距離,作為判斷它們之間的語義相似度的標準word2vec模型優(yōu)點:詞之間存在相似關(guān)系詞嵌入算法01詞向量Word2vec簡介詞向量模型CBOW和Skip-gram模型word2vec簡介

word2vec:用于訓(xùn)練詞向量的工具神經(jīng)網(wǎng)絡(luò)語言模型(NeuralNetworkLanguageModel,簡稱NNLM)算法:產(chǎn)生詞向量的相關(guān)模型NNLM模型架構(gòu)word2vec簡介

word2vec模型01連續(xù)詞袋模型(ContinuousBag-Of-Words,簡稱CBOW)02Skip-Gramword2vec簡介

詞袋模型將所有詞語裝進一個袋子里,不考慮其詞法和語序的問題例:JanewantstogotoShenzhen.Bob

wantstogotoShanghai.[Jane,wants,to,go,Shenzhen,Bob,Shanghai][1,1,2,1,1,0,0][0,1,2,1,0,1,1]word2vec簡介語料選取語料必須充分:詞量足夠大,盡可能多地包含反映詞語之間關(guān)系的句子語料必須準確:能夠正確反映該語言的語義和語法關(guān)系word2vec簡介

Skip-gram模型可以跳過某些符號例:“中國足球踢得真是太爛了”提取4個3元詞組為“中國足球踢得”、“足球踢得真是”、“踢得真是太爛”、“真是太爛了”Skip-gram可以組成“中國足球太爛”word2vec簡介

word2vec模型可以將文本內(nèi)容的處理簡化為K維向量空間中的向量運算,并且向量空間中的相似度也可以用來表達文本的語義相似度word2vec可用于聚類、找同義詞、詞性分析等任務(wù)word2vec簡介

詞向量的評價方式:1將詞向量集成到系統(tǒng)中以提高整個系統(tǒng)的準確性2從語言學(xué)的角度分析詞向量,例如句子相似度分析,語義偏移等詞嵌入算法01詞向量Word2vec簡介詞向量模型CBOW和Skip-gram模型詞向量模型神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu):詞向量模型算法流程:①②③對于每個詞,隨機初始化一個特征向量;設(shè)計神經(jīng)網(wǎng)絡(luò);通過數(shù)據(jù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)以獲得合理的特征向量和神經(jīng)網(wǎng)絡(luò)參數(shù)。詞向量模型

詞向量模型

詞向量模型

詞向量模型

詞向量模型

詞向量模型詞嵌入算法01詞向量Word2vec簡介詞向量模型CBOW和Skip-gram模型CBOW和Skip-gram模型

CBOW(ContinuousBag-Of-WordsModel)和Skip-gram模型:CBOW和Skip-gram模型

CBOW計算流程:(1)隨機生成所有單詞的詞向量矩陣,每一行對應(yīng)一個單詞的向量;(2)從矩陣中提取某一個單詞(中心詞)的周邊單詞詞向量;(3)求周邊單詞詞向量的均值向量;(4)在該均值向量上用logisticregression訓(xùn)練,激活函數(shù)用softmax;(5)期望回歸得到的概率向量能與真實的概率向量相匹配。CBOW和Skip-gram模型

Skip-Gram:根據(jù)當(dāng)前詞來預(yù)測周圍的詞課程小結(jié)詞嵌入算法詞向量word2vec詞向量模型CBOW和Skip-gram模型深度學(xué)習(xí)與自然語言處理Python自然語言處理第十章課前回顧詞向量word2vec詞向量模型CBOW和Skip-gram模型訓(xùn)練詞向量實踐02代碼實現(xiàn)訓(xùn)練詞向量實踐

下載word2vec:①Google(/dav/word2vec)②C++11(/jdeng/word2vec)③Java(/NLPchina/Word2VEC_java)④Python(/pypi/gensim)訓(xùn)練詞向量實踐

基本系統(tǒng)配置:①WindowsOriginal:cygwin②C++11:VS2013Linux/MacOS③任意版本word2vec

中文語料庫:維基百科中文語料(地址:/zhwiki/latest/zhwiki-latests-articles.xml.bz2)搜狗SouGouT訓(xùn)練詞向量實踐1、安裝Python3.6,安裝庫:gensim、jieba、hanziconv2、下載數(shù)據(jù)下載Word2vec.git下載中文維基百科數(shù)據(jù)下載jieba字典訓(xùn)練詞向量實踐3、載入相關(guān)庫#把一些警告的訊息暫時關(guān)掉importwarningswarnings.filterwarnings('ignore')#Utilities相關(guān)庫importosimportnumpyasnpimportmmapfromtqdmimporttqdm#可視化相關(guān)庫importjiebafromgensim.corporaimportWikiCorpusfromgensim.modelsimportword2vecfromhanziconvimportHanziConvimportmatplotlib.pyplotasplt訓(xùn)練詞向量實踐4、參數(shù)設(shè)置#文檔的根目錄路徑ROOT_DIR=os.getcwd()#訓(xùn)練/驗證用的文檔路徑DATA_PATH=os.path.join(ROOT_DIR,"data")#模型目錄MODEL_PATH=os.path.join(ROOT_DIR,"model")#設(shè)定jieba自定義字典路徑JIEBA_DICTFILE_PATH=os.path.join(MODEL_PATH,"extra_dict","dict.txt.big")#設(shè)定字典jieba.set_dictionary(JIEBA_DICTFILE_PATH)訓(xùn)練詞向量實踐5、獲取corpus語料#將wiki數(shù)據(jù)集下載后進行提取,且將xml轉(zhuǎn)換成plaintxtwiki_articles_xml_file=os.path.join(DATA_PATH,"zhwiki-20180220s-articles.xml.bz2")wiki_articles_txt_file=os.path.join(DATA_PATH,"zhwiki_plaintext.txt")#使用gensim.WikiCorpus來讀取wikiXML中的corpuswiki_corpus=WikiCorpus(wiki_articles_xml_file,dictionary={})#迭代提取出來的詞匯withopen(wiki_articles_txt_file,'w',encoding='utf-8')asoutput:text_count=0fortextinwiki_corpus.get_texts():#把詞匯寫進文件中備用

output.write(''.join(text)+'\n')text_count+=1iftext_count%10000==0:print("目前已處理%d篇文章"%text_count)print("簡繁轉(zhuǎn)換已完畢,總共處理了%d篇文章!"%text_count)訓(xùn)練詞向量實踐6、進行中文分詞與stop-word移除(1)#一個取得一個數(shù)的函數(shù)式defget_num_lines(fi文件行l(wèi)e_path):fp=open(file_path,"r+")buf=mmap.mmap(fp.fileno(),0)lines=0whilebuf.readline():lines+=1returnlines#進行簡體轉(zhuǎn)繁體wiki_articles_zh_tw_file=os.path.join(DATA_PATH,"zhwiki_zh_tw.txt")wiki_articles_zh_tw=open(wiki_articles_zh_tw_file,"w",encoding="utf-8")#迭代轉(zhuǎn)換成plaintext的wiki文件,并透過HanziConv來進行簡繁轉(zhuǎn)換withopen(wiki_articles_txt_file,"r",encoding="utf-8")aswiki_articles_txt:forlineintqdm(wiki_articles_txt,total=get_num_lines(wiki_articles_txt_file)):wiki_articles_zh_tw.write(HanziConv.toTraditional(line))print("成功簡繁轉(zhuǎn)換!")wiki_articles_zh_tw.close()#進行中文分詞并同步停用詞過濾stops_word_file=os.path.join(ROOT_DIR,"stopwords.txt")訓(xùn)練詞向量實踐6、進行中文分詞與stop-word移除(2)stopwordset=set()#讀取stopword詞典,并保存到stopwordset中withopen("stopwords.txt","r",encoding="utf-8")asstopwords:forstopwordinstopwords:stopwordset.add(stopword.strip('\n'))#保存分詞后的結(jié)果wiki_articles_segmented_file=os.path.join(DATA_PATH,"zhwiki_segmented.txt")wiki_articles_segmented=open(wiki_articles_segmented_file,"w",encoding="utf-8")#迭代轉(zhuǎn)換成繁體的wiki文檔,并透過jieba來進行分詞withopen(wiki_articles_zh_tw_file,"r",encoding="utf-8")asCorpus:forsentenceintqdm(Corpus,total=get_num_lines(wiki_articles_zh_tw_file)):#forsentenceinCorpus:sentence=sentence.strip("\n")pos=jieba.cut(sentence,cut_all=False)forterminpos:iftermnotinstopwordset:wiki_articles_segmented.write(term+"")print("jieba分詞完畢,并已完成過濾詞工序!")wiki_articles_zh_tw_file.close()訓(xùn)練詞向量實踐7、訓(xùn)練向量詞fromgensim.modelsimportword2vec#可參考/gensim/models/word2vec.html更多運用print("word2vec模型訓(xùn)練中...")#加載文件sentence=word2vec.Text8Corpus(wiki_articles_segmented_file)#設(shè)置參數(shù)和訓(xùn)練模型(Train)model=word2vec.Word2Vec(sentence,size=300,window=10,min_count=5,workers=4,sg=1)#保存模型word2vec_model_file=os.path.join(MODEL_PATH,"zhwiki_word2vec.model")model.wv.save_word2vec_format(word2vec_model_file,binary=True)#model.wv.save_word2vec_format("wiki300.model.bin",binary=True)print("Word2vec模型已存儲完畢")訓(xùn)練詞向量實踐8、詞向量實驗fromgensim.models.keyedvectorsimportKeyedVectorsword_vectors=KeyedVectors.load_word2vec_format(word2vec_model_file,binary=True)print("詞匯相似詞前5排序")query_list=['校長']res=word_vectors.most_similar(query_list[0],topn=5)foriteminres:print(item[0]+","+str(item[1]))print("計算2個詞匯間的Cosine相似度")query_list=['爸爸','媽媽']res=word_vectors.similarity(query_list[0],query_list[1])print(res)query_list=['爸爸','老公','媽媽']print("%s之于%s,如%s之于"%(query_list[0],query_list[1],query_list[2]))res=word_vectors.most_similar(positive=[query_list[0],query_list[1]],negative=[query_list[2]],topn=5)foriteminres:print(item[0]+","+str(item[1]))課程小結(jié)詞向量訓(xùn)練數(shù)據(jù)準備參數(shù)設(shè)置和調(diào)整語料獲取和處理訓(xùn)練詞向量測試深度學(xué)習(xí)與自然語言處理Python自然語言處理第十章課前回顧數(shù)據(jù)獲取訓(xùn)練詞向量測試循環(huán)神經(jīng)網(wǎng)絡(luò)03簡單RNNLSTM網(wǎng)絡(luò)Attention機制簡單RNN

循環(huán)神經(jīng)網(wǎng)絡(luò)(RecurrentNeuralNetworks,簡稱RNN):在原神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上添加記憶單元RNN的思想是利用順序信息RNN對序列中的每個元素執(zhí)行相同的運算,并且每個運算取決于先前的計算結(jié)果RNN會記住到目前為止已計算過的所有信息。所以理論上,RNN可以使用任意長的序列信息簡單RNN

循環(huán)展開后示意圖:

RNN基本網(wǎng)絡(luò)單元:簡單RNN

RNN細節(jié)示意圖簡單RNN

簡單RNN

按時間順序計算前向傳播(ForwardPropagation)將反向傳播算法用于殘差傳輸,在普通BP網(wǎng)絡(luò)上添加了時間序列,稱為BPTT(BackPropagationThroughTime)算法簡單RNN

RNN變體長期短期記憶網(wǎng)絡(luò)(LongShortTermMemoryNetworks,簡稱LSTM)目標預(yù)測的點與其相關(guān)信息點之間的間隔較小,則RNN可以學(xué)習(xí)使用過去的信息例:預(yù)測“中國的首都是”的下一個詞,直接使用“北京”,無需其他信息簡單RNN

在大多數(shù)情況下,更多的上下文信息更有助于進行推斷例:預(yù)測“我出生在中國,成長在中國,因而我的母語是漢語”的最后一句,需要更多更早之前的上下文簡單RNN要預(yù)測的點與其相關(guān)點之間的間隔可能會變得非常大,間隔越大,RNN越難學(xué)習(xí)到過往久遠的信息循環(huán)神經(jīng)網(wǎng)絡(luò)03簡單RNNLSTM網(wǎng)絡(luò)Attention機制LSTM網(wǎng)絡(luò)長短期記憶網(wǎng)絡(luò)LSTM是一種特殊RNN,可以學(xué)習(xí)長期依賴關(guān)系鏈式重復(fù)模塊神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu):LSTM網(wǎng)絡(luò)LSTM鏈重復(fù)模塊結(jié)構(gòu):LSTM網(wǎng)絡(luò)LSTM組成部件:單元狀態(tài)LSTM網(wǎng)絡(luò)門結(jié)構(gòu):σ層輸出[0,1],表示每個成分通過的程度0表示不讓任何東西過,1表示讓所有東西通過LSTM網(wǎng)絡(luò)

LSTM網(wǎng)絡(luò)

LSTM網(wǎng)絡(luò)

LSTM網(wǎng)絡(luò)

最終輸出LSTM網(wǎng)絡(luò)

窺孔連接(PeepholeConnection)LSTM網(wǎng)絡(luò)

配對的遺忘門和輸入門LSTM網(wǎng)絡(luò)

GatedRecurrentUnit(GRU)LSTM網(wǎng)絡(luò)

GRU特點:模型簡化、參數(shù)較少、擬合能力較弱LSTM:具有較多參數(shù)和很強的擬合能力,適用于大規(guī)模和高度復(fù)雜的數(shù)據(jù)集LSTM的各種變形基本相同,不同的任務(wù)不同的變型有不同的表現(xiàn)循環(huán)神經(jīng)網(wǎng)絡(luò)03簡單RNNLSTM網(wǎng)絡(luò)Attention機制Attention機制

Attention機制的基本思想:打破傳統(tǒng)編碼器一解碼器結(jié)構(gòu),在編碼時依賴于內(nèi)部固定長度向量的限制。Attention機制

Attention機制實現(xiàn):①保留LSTM編碼器輸入序列的中間輸出結(jié)果;②訓(xùn)練模型選擇性地學(xué)習(xí)這些輸入,并在模型輸出時將輸出序列與其關(guān)聯(lián)。Attention機制

Attention應(yīng)用:

文本翻譯

圖像描述

語義蘊含

語音識別

文本摘要Attention機制

文本翻譯:當(dāng)給定一個法語句子的輸入序列,將它翻譯并輸出英文句子Attention機制用于觀察輸入序列中與輸出序列每一個詞相對應(yīng)的具體單詞:在生成目標詞時,Attention機制讓模型搜索一些輸入單詞或由編碼器計算得到的單詞標注,用于擴展基本的編碼器一解碼器結(jié)構(gòu)Attention機制

圖像描述:基于序列的Attention機制可以應(yīng)用在計算機視覺問題上,來幫助輸出序列更好地利用卷積神經(jīng)網(wǎng)絡(luò)來關(guān)注輸入的圖片的方法Attention機制用于關(guān)注與輸出序列中的每一個詞相關(guān)的局部圖像Attention機制

語音識別:輸入一個英文語音片段,輸出一個音素序列Attention機制被用來關(guān)聯(lián)輸出序列中的每一個音素和輸入序列中特定的語音幀Attention機制

文本摘要:輸入一段文章,輸出輸入序列的一段文本總結(jié)Attention被用來關(guān)聯(lián)摘要文本中的每一個詞語與源文本中的對應(yīng)單詞課程小結(jié)循環(huán)神經(jīng)網(wǎng)絡(luò)簡單RNNLSTM網(wǎng)絡(luò),門Attention機制深度學(xué)習(xí)與自然語言處理Python自然語言處理第十章課前回顧簡單RNNLSTM網(wǎng)絡(luò)Attention機制Seq2Seq模型與實戰(zhàn)04Seq2Seq模型實戰(zhàn)Seq2Seq問答機器人本章小結(jié)Seq2Seq模型

自然語言生成(NatureLanguageGeneration,簡稱NLG)自然語言理解(NatureLanguageUnderstanding,簡稱NLU)Encoder-Decoder基本結(jié)構(gòu):Seq2Seq模型

ABC:輸入序列WXYZ:輸出序列<EOS>:句子結(jié)束符第一個RNN接受輸入序列,輸出輸入向量的語義表示向量第二個RNN接受第一個RNN生成的輸入序列的語義向量Seq2Seq模型

Seq2Seq模型

Seq2Seq模型與實戰(zhàn)04Seq2Seq模型實戰(zhàn)Seq2Seq問答機器人本章小結(jié)實戰(zhàn)Seq2Seq問答機器人

問答系統(tǒng):本質(zhì)上是一個信息檢索(IR)系統(tǒng),從文本中獲取更多的信息,返回更加精準的答案,模仿人的語言習(xí)慣,通過模式匹配的方式來尋找答案問答系統(tǒng)流程:(1)問題解析(2)信息檢索(3)答案抽取實戰(zhàn)Seq2Seq問答機器人

聊天機器人:存放大量句型、模版知道的問題,給出人性化答案不知道的問題,回答不知道或轉(zhuǎn)移話題實戰(zhàn)Seq2Seq問答機器人

聊天機器人解決的問題:1、怎么讓機器人能聽你的話并想出應(yīng)該回復(fù)什么2、怎么樣進行開放式的話題,讓聊天一直持續(xù)下去3、怎么樣貼合用戶愛好,聊相關(guān)話題4、面對多樣的用戶是怎么讓各種用戶都滿意的實戰(zhàn)Seq2Seq問答機器人

聊天機器人實現(xiàn)過程:1用戶輸入數(shù)據(jù)2分析用戶意圖3抓取關(guān)鍵參數(shù)4匹配最佳回答5輸出回答實戰(zhàn)Seq2Seq問答機器人

1、安裝Python3.6:安裝gensim3.8.3、jieba0.42.1、TensorFlow1.5.0庫2、載入主函數(shù)相關(guān)庫importosimportsysimportmathimporttimeimportnumpyasnpimporttensorflowastfimportdata_utilsimports2s_model實戰(zhàn)Seq2Seq問答機器人3、設(shè)置參數(shù)tf.app.flags.DEFINE_float('learning_rate',0.0003,'學(xué)習(xí)率')tf.app.flags.DEFINE_float('max_gradient_norm',5.0,'梯度最大閾值')tf.app.flags.DEFINE_float('dropout',1.0,'每層輸出DROPOUT的大小')tf.app.flags.DEFINE_integer('batch_size',64,'批量梯度下降的批量大小')tf.app.flags.DEFINE_integer('size',512,'LSTM每層神經(jīng)元數(shù)量')tf.app.flags.DEFINE_integer('num_layers',2,'LSTM的層數(shù)')tf.app.flags.DEFINE_integer('num_epoch',5,'訓(xùn)練幾輪')tf.app.flags.DEFINE_integer('num_samples',512,'分批softmax的樣本量')tf.app.flags.DEFINE_integer('num_per_epoch',1000,'每輪訓(xùn)練多少隨機樣本')tf.app.flags.DEFINE_string('buckets_dir','./bucket_dbs','sqlite3數(shù)據(jù)庫所在文件夾')tf.app.flags.DEFINE_string('model_dir','./model','模型保存的目錄')tf.app.flags.DEFINE_string('model_name','model4','模型保存的名稱')tf.app.flags.DEFINE_boolean('use_fp16',False,'是否使用16位浮點數(shù)(默認32位)')tf.app.flags.DEFINE_integer('bleu',-1,'是否測試bleu')tf.app.flags.DEFINE_boolean('test',False,'是否在測試')FLAGS=tf.app.flags.FLAGSbuckets=data_utils.buckets實戰(zhàn)Seq2Seq問答機器人4、定義建立模型函數(shù)defcreate_model(session,forward_only):#建立模型

dtype=tf.float16ifFLAGS.use_fp16elsetf.float32model=s2s_model.S2SModel(data_utils.dim,data_utils.dim,buckets,FLAGS.size,FLAGS.dropout,FLAGS.num_layers,FLAGS.max_gradient_norm,FLAGS.batch_size,FLAGS.learning_rate,FLAGS.num_samples,forward_only,dtype)returnmodel實戰(zhàn)Seq2Seq問答機器人定義seq2seq_modeclassS2SModel(object):def__init__(self,source_vocab_size,target_vocab_size,buckets,size,dropout,num_layers,max_gradient_norm,batch_size,learning_rate,num_samples,forward_only=False,dtype=tf.float32):…實戰(zhàn)Seq2Seq問答機器人數(shù)據(jù)轉(zhuǎn)換函數(shù)classBucketData(object):defread_bucket_dbs(buckets_dir):defsentence_indice(sentence):defindice_sentence(indice):defvector_sentence(vector):defgenerate_bucket_dbs(input_dir,

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論