国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

用好Python自然語(yǔ)言工具包-- 實(shí)例“基于本地知識(shí)庫(kù)的自動(dòng)問(wèn)答”

這篇具有很好參考價(jià)值的文章主要介紹了用好Python自然語(yǔ)言工具包-- 實(shí)例“基于本地知識(shí)庫(kù)的自動(dòng)問(wèn)答”。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

首先鳴謝thomas-yanxin

本問(wèn)中示例來(lái)自他在GitHub上的開源項(xiàng)目“基于本地知識(shí)庫(kù)的自動(dòng)問(wèn)答”,鏈接如下:

thomas-yanxin/LangChain-ChatGLM-Webui: 基于LangChain和ChatGLM-6B的針對(duì)本地知識(shí)庫(kù)的自動(dòng)問(wèn)答 (github.com)


目錄

1. 基礎(chǔ)知識(shí):

2. NLTK庫(kù)的使用

3. 實(shí)例代碼分析

設(shè)備的定義

函數(shù)定義:從網(wǎng)絡(luò)上搜索相關(guān)信息

?函數(shù)定義:加載文件

函數(shù)定義:初始化一個(gè)向量存儲(chǔ)器


1. 基礎(chǔ)知識(shí):

NLTK是一個(gè)領(lǐng)先的平臺(tái),用于構(gòu)建處理自然語(yǔ)言數(shù)據(jù)的Python程序。它提供了易于使用的接口,可以訪問(wèn)50多個(gè)語(yǔ)料庫(kù)和詞匯資源,如WordNet,以及一套用于分類、分詞、詞干提取、標(biāo)注、解析和語(yǔ)義推理的文本處理庫(kù)、工業(yè)級(jí)自然語(yǔ)言處理庫(kù)的封裝和活躍的討論論壇。

什么是tokenization?

Tokenize是指將一段文本分割成單獨(dú)的詞語(yǔ)或符號(hào)序列的過(guò)程。在自然語(yǔ)言處理中,文本預(yù)處理通常包括將原始文本數(shù)據(jù)轉(zhuǎn)換為可供分析的結(jié)構(gòu)化數(shù)據(jù)。分詞是這個(gè)過(guò)程中的一個(gè)重要步驟,它可以將一段文本分割成有意義的單元,例如單詞、標(biāo)點(diǎn)符號(hào)、數(shù)字、縮略詞等等。

分詞技術(shù)可以基于不同的規(guī)則和算法實(shí)現(xiàn),如空格、標(biāo)點(diǎn)符號(hào)、停用詞、正則表達(dá)式、最大匹配法等。分詞的準(zhǔn)確性和效率對(duì)于后續(xù)的自然語(yǔ)言處理任務(wù)(例如詞性標(biāo)注、命名實(shí)體識(shí)別、文本分類等)的效果有很大影響,因此它是自然語(yǔ)言處理中一個(gè)非常重要的步驟。

2. NLTK庫(kù)的使用

在python中安裝NLTK庫(kù)

pip install NLTK

導(dǎo)入NLTK庫(kù)

import nltk # 導(dǎo)入NLTK for tokenization

將語(yǔ)料數(shù)據(jù)導(dǎo)入數(shù)據(jù)列表中

nltk.data.path.append('./nltk_data')

NLTK是一個(gè)用于處理自然語(yǔ)言數(shù)據(jù)的Python庫(kù),其中包含了許多用于自然語(yǔ)言處理的數(shù)據(jù)集和語(yǔ)料庫(kù),這些數(shù)據(jù)通常存儲(chǔ)在默認(rèn)路徑中。然而,有時(shí)用戶可能需要在其他地方存儲(chǔ)這些數(shù)據(jù),或者需要加載自己的數(shù)據(jù)集和語(yǔ)料庫(kù),這時(shí)就需要將新的路徑添加到nltk.data.path路徑列表中。

然而,有時(shí)用戶可能需要在其他地方存儲(chǔ)這些數(shù)據(jù),或者需要加載自己的數(shù)據(jù)集和語(yǔ)料庫(kù),這時(shí)就需要將新的路徑添加到nltk.data.path路徑列表中。

具體來(lái)說(shuō),這行代碼使用了Python列表的append()方法,將"./nltk_data"添加到nltk.data.path路徑列表中的末尾。這樣,當(dāng)使用NLTK庫(kù)中的函數(shù)和方法時(shí),程序?qū)⑹紫人阉髂J(rèn)路徑,如果沒(méi)有找到所需的數(shù)據(jù),就會(huì)在路徑列表中的其他位置繼續(xù)搜索,直到找到所需的數(shù)據(jù)為止。這種方式可以方便地?cái)U(kuò)展NLTK庫(kù)的數(shù)據(jù)集和語(yǔ)料庫(kù),使其適應(yīng)用戶的特定需求。

字典變量的定義

## 這段代碼定義了一個(gè)名為 embedding_model_dict 的字典變量,其中包含了5個(gè)鍵值對(duì),每個(gè)鍵值對(duì)表示一個(gè)預(yù)訓(xùn)練的中文詞向量模型的名稱和對(duì)應(yīng)的地址。
embedding_model_dict = { # 詞向量模型
    "ernie-tiny": "nghuyong/ernie-3.0-nano-zh", 
    "ernie-base": "nghuyong/ernie-3.0-base-zh",
    "ernie-medium": "nghuyong/ernie-3.0-medium-zh",
    "ernie-xbase": "nghuyong/ernie-3.0-xbase-zh",
    "text2vec-base": "GanymedeNil/text2vec-base-chinese"
}

## 這段代碼定義了一個(gè)名為 llm_model_dict 的字典變量,其中包含了5個(gè)鍵值對(duì),每個(gè)鍵值對(duì)表示一個(gè)預(yù)訓(xùn)練的中文語(yǔ)言模型的名稱和對(duì)應(yīng)的地址。
llm_model_dict = {
    "ChatGLM-6B": "THUDM/chatglm-6b",
    "ChatGLM-6B-int4": "THUDM/chatglm-6b-int4",
    "ChatGLM-6B-int8": "THUDM/chatglm-6b-int8",
    "ChatGLM-6b-int4-qe": "THUDM/chatglm-6b-int4-qe",
    "ChatGLM-6b-local": "/data/chatglm-6b"
}

這段代碼定義了兩個(gè)字典變量。第一個(gè)字典變量 embedding_model_dict 包含了五個(gè)鍵值對(duì),每個(gè)鍵值對(duì)表示一個(gè)中文詞向量模型的名稱和對(duì)應(yīng)的地址。具體來(lái)說(shuō),這些模型是以預(yù)訓(xùn)練方式生成的,可以用于將中文文本映射到連續(xù)的向量空間中。

第二個(gè)字典變量 llm_model_dict 包含了五個(gè)鍵值對(duì),每個(gè)鍵值對(duì)表示一個(gè)預(yù)訓(xùn)練的中文語(yǔ)言模型的名稱和對(duì)應(yīng)的地址。這些模型可以用于生成中文文本,比如回答問(wèn)題、生成對(duì)話等。其中一些模型的地址指向公共可用的模型,而另一些模型的地址是本地地址,表示這些模型存儲(chǔ)在計(jì)算機(jī)本地的某個(gè)路徑中。

3. 實(shí)例代碼分析

我們要分析的就是來(lái)自GitHub上的開源項(xiàng)目“基于本地知識(shí)庫(kù)的自動(dòng)問(wèn)答”項(xiàng)目中的app.py文件

上邊已經(jīng)分析了NLTK的庫(kù)的導(dǎo)入、語(yǔ)料數(shù)據(jù)的導(dǎo)入、字典變量的定義,接下來(lái)我們繼續(xù)研究。

設(shè)備的定義

DEVICE = "cuda" if torch.cuda.is_available(
) else "mps" if torch.backends.mps.is_available() else "cpu"

這段代碼定義了一個(gè)變量 DEVICE,用于指定代碼運(yùn)行所使用的設(shè)備。如果當(dāng)前系統(tǒng)支持CUDA設(shè)備(即具有NVIDIA GPU),則將 DEVICE 設(shè)置為 "cuda",表示使用GPU加速運(yùn)算。如果當(dāng)前系統(tǒng)支持MPS(Multi-Process Service),則將 DEVICE 設(shè)置為 "mps",表示使用MPS加速運(yùn)算。否則,將 DEVICE 設(shè)置為 "cpu",表示使用CPU運(yùn)算。

具體來(lái)說(shuō),這段代碼通過(guò)調(diào)用 torch.cuda.is_available() 函數(shù)檢查當(dāng)前系統(tǒng)是否支持CUDA設(shè)備,如果支持則將 DEVICE 設(shè)置為 "cuda"。否則,通過(guò)調(diào)用 torch.backends.mps.is_available() 函數(shù)檢查當(dāng)前系統(tǒng)是否支持MPS,如果支持則將 DEVICE 設(shè)置為 "mps"。如果系統(tǒng)不支持CUDA或MPS,則將 DEVICE 設(shè)置為 "cpu"。

這里解釋一下torch:

torch是一個(gè)開源機(jī)器學(xué)習(xí)框架,基于Python語(yǔ)言,提供了豐富的工具和庫(kù),用于構(gòu)建深度學(xué)習(xí)模型和進(jìn)行科學(xué)計(jì)算。torch框架是由Facebook AI Research團(tuán)隊(duì)開發(fā),其主要優(yōu)勢(shì)在于它支持張量計(jì)算和自動(dòng)求導(dǎo),同時(shí)提供了高效的GPU加速功能,因此廣泛應(yīng)用于深度學(xué)習(xí)領(lǐng)域。

torch的核心是張量(tensor)數(shù)據(jù)結(jié)構(gòu),它是一種多維數(shù)組,類似于numpy中的數(shù)組,但可以在GPU上運(yùn)行加速。torch框架提供了大量的張量操作函數(shù),如加減乘除、矩陣乘法、卷積操作等,同時(shí)還支持自動(dòng)求導(dǎo)和高階函數(shù)(例如梯度下降算法、優(yōu)化器等)。此外,torch還包括了許多已經(jīng)預(yù)訓(xùn)練好的深度學(xué)習(xí)模型,以及用于數(shù)據(jù)處理和可視化的工具。

函數(shù)定義:從網(wǎng)絡(luò)上搜索相關(guān)信息

def search_web(query):

    SESSION.proxies = {
        "http": f"socks5h://localhost:7890",
        "https": f"socks5h://localhost:7890"
    }
    results = ddg(query)
    web_content = ''
    if results:
        for result in results:
            web_content += result['body']
    return web_content

這個(gè)函數(shù)將一個(gè)查詢作為輸入?yún)?shù)。

1)函數(shù)的第一行為SESSION變量指定了代理設(shè)置,該變量其他代碼文件中定義

2)然后,它使用ddg()函數(shù)來(lái)獲取給定查詢的搜索結(jié)果。

3)代碼的下一行初始化了一個(gè)名為web_content的空字符串變量。

4)接下來(lái),它檢查是否有任何來(lái)自上一步驟的結(jié)果。

5)如果有任何結(jié)果,那么它會(huì)遍歷這些結(jié)果,提取每個(gè)結(jié)果的“body”部分并將其添加到web_content變量中。

6)最后,該函數(shù)返回web_content變量的最終值。

這個(gè)函數(shù)是一個(gè)用于獲取指定查詢?cè)?span style="color:#fe2c24;">duckduckgo搜索引擎上的搜索結(jié)果,并將結(jié)果內(nèi)容匯總到一個(gè)字符串中的函數(shù),同時(shí)它使用SESSION變量指定了代理設(shè)置。

其中用到的ddg()函數(shù)為duckduckgo_search中的函數(shù)(路徑:\Python39\Lib\site-packages\duckduckgo_search\ddg.py),是指代duckduckgo搜索引擎的搜索函數(shù)。

用好Python自然語(yǔ)言工具包-- 實(shí)例“基于本地知識(shí)庫(kù)的自動(dòng)問(wèn)答”

????????函數(shù)定義:加載文件

def load_file(filepath):
    if filepath.lower().endswith(".pdf"):
        loader = UnstructuredFileLoader(filepath)
        textsplitter = ChineseTextSplitter(pdf=True)
        docs = loader.load_and_split(textsplitter)
    else:
        loader = UnstructuredFileLoader(filepath, mode="elements")
        textsplitter = ChineseTextSplitter(pdf=False)
        docs = loader.load_and_split(text_splitter=textsplitter)
    return docs

這段代碼定義了一個(gè)名為 load_file 的函數(shù),用于加載指定路徑下的文本文件,并將其拆分為多個(gè)文檔(即文檔分塊)。該函數(shù)接受一個(gè)參數(shù) filepath,表示指定的文本文件路徑。

首先,函數(shù)檢查文件路徑的后綴名是否為 .pdf,如果是,則使用 UnstructuredFileLoader 對(duì)象加載指定的PDF文件,并使用 ChineseTextSplitter 對(duì)象將PDF文檔分割為多個(gè)文檔。如果文件路徑的后綴名不是 .pdf,則使用 UnstructuredFileLoader 對(duì)象以 elements 模式加載文件,并使用 ChineseTextSplitter 對(duì)象將文件拆分為多個(gè)文檔。

最后,函數(shù)返回拆分后的文檔列表。每個(gè)文檔都表示一個(gè)字符串對(duì)象,其中包含原始文本文件中的一部分內(nèi)容。文檔的具體內(nèi)容取決于拆分器(即 ChineseTextSplitter 對(duì)象)的實(shí)現(xiàn)方式。

這里解釋下為何要進(jìn)行“文檔分塊”?

進(jìn)行文檔分塊是為了更好地處理大型文本數(shù)據(jù)。在自然語(yǔ)言處理領(lǐng)域,處理整個(gè)文本文件往往不是最佳選擇,因?yàn)榇笮臀谋疚募赡馨瑪?shù)千甚至數(shù)百萬(wàn)的單詞或字符,而處理這樣大量的文本數(shù)據(jù)可能會(huì)耗費(fèi)大量的計(jì)算資源,而且對(duì)于一些任務(wù)(如語(yǔ)言模型訓(xùn)練)可能會(huì)導(dǎo)致內(nèi)存不足或內(nèi)存泄漏的問(wèn)題。

為了避免這些問(wèn)題,可以將大型文本文件分割成多個(gè)較小的文本塊,即文檔分塊。每個(gè)文檔分塊通常包含文本文件的一部分內(nèi)容,例如一段或幾段文本。通過(guò)將大型文本文件分割成多個(gè)文檔分塊,可以將文本處理任務(wù)分解成多個(gè)較小的子任務(wù),從而降低整個(gè)處理過(guò)程的計(jì)算復(fù)雜度,并且可以更加高效地使用內(nèi)存資源。

文檔分塊還有另一個(gè)優(yōu)點(diǎn),即可以更好地控制訓(xùn)練數(shù)據(jù)的大小。在一些機(jī)器學(xué)習(xí)任務(wù)中,數(shù)據(jù)的大小往往是一個(gè)關(guān)鍵問(wèn)題,因?yàn)檫^(guò)大的訓(xùn)練數(shù)據(jù)可能會(huì)導(dǎo)致過(guò)擬合或訓(xùn)練時(shí)間過(guò)長(zhǎng)。通過(guò)對(duì)文本文件進(jìn)行分塊,可以將訓(xùn)練數(shù)據(jù)的大小控制在合理的范圍內(nèi),從而更好地控制訓(xùn)練過(guò)程的效率和質(zhì)量。

函數(shù)定義:初始化一個(gè)向量存儲(chǔ)器

def init_knowledge_vector_store(embedding_model, filepath):
    embeddings = HuggingFaceEmbeddings(
        model_name=embedding_model_dict[embedding_model], )
    embeddings.client = sentence_transformers.SentenceTransformer(
        embeddings.model_name, device=DEVICE)

    docs = load_file(filepath)

    vector_store = FAISS.from_documents(docs, embeddings)
    return vector_store

這段代碼定義了一個(gè)名為 init_knowledge_vector_store 的函數(shù),用于初始化一個(gè)向量存儲(chǔ)器,用于存儲(chǔ)知識(shí)庫(kù)中文檔的向量表示。該函數(shù)接受兩個(gè)參數(shù):embedding_model 表示要使用的預(yù)訓(xùn)練詞向量模型的名稱(如 "ernie-tiny"),filepath 表示知識(shí)庫(kù)文件的路徑。

首先,該函數(shù)創(chuàng)建一個(gè) HuggingFaceEmbeddings 對(duì)象,使用預(yù)訓(xùn)練的詞向量模型來(lái)生成詞向量。該對(duì)象從 embedding_model_dict 字典中獲取 embedding_model 對(duì)應(yīng)的預(yù)訓(xùn)練詞向量模型地址,并使用它初始化。然后,它創(chuàng)建一個(gè) SentenceTransformer 對(duì)象,使用 HuggingFaceEmbeddings 對(duì)象生成的詞向量模型,并將該對(duì)象的 device 屬性設(shè)置為全局變量 DEVICE,以指定使用CPU或GPU設(shè)備進(jìn)行計(jì)算。SentenceTransformer 對(duì)象用于將文檔轉(zhuǎn)換為向量表示,用于在向量存儲(chǔ)器中進(jìn)行檢索。

接下來(lái),函數(shù)使用 load_file() 函數(shù)加載指定路徑下的文本文件,并將其拆分為多個(gè)文檔。每個(gè)文檔都表示原始文本文件中的一部分內(nèi)容,例如一段或幾段文本。

最后,函數(shù)使用 FAISS 庫(kù)將文檔向量存儲(chǔ)在一個(gè)向量存儲(chǔ)器中,并將該向量存儲(chǔ)器作為函數(shù)的返回值。 FAISS 是一種高效的向量檢索庫(kù),它支持基于余弦相似度和歐幾里得距離等多種相似度度量方式。 from_documents 方法是 FAISS 庫(kù)提供的一種函數(shù),它將文檔向量存儲(chǔ)在一個(gè)向量存儲(chǔ)器中,以便于進(jìn)行相似度匹配和向量檢索。

函數(shù)定義:獲取基于知識(shí)的答案

def get_knowledge_based_answer(query,
                               large_language_model,
                               vector_store,
                               VECTOR_SEARCH_TOP_K,
                               web_content,
                               history_len,
                               temperature,
                               top_p,
                               chat_history=[]):
    if web_content:
        prompt_template = f"""基于以下已知信息,簡(jiǎn)潔和專業(yè)的來(lái)回答用戶的問(wèn)題。
                            如果無(wú)法從中得到答案,請(qǐng)說(shuō) "根據(jù)已知信息無(wú)法回答該問(wèn)題" 或 "沒(méi)有提供足夠的相關(guān)信息",不允許在答案中添加編造成分,答案請(qǐng)使用中文。
                            已知網(wǎng)絡(luò)檢索內(nèi)容:{web_content}""" + """
                            已知內(nèi)容:
                            {context}
                            問(wèn)題:
                            {question}"""
    else:
        prompt_template = """基于以下已知信息,請(qǐng)簡(jiǎn)潔并專業(yè)地回答用戶的問(wèn)題。
            如果無(wú)法從中得到答案,請(qǐng)說(shuō) "根據(jù)已知信息無(wú)法回答該問(wèn)題" 或 "沒(méi)有提供足夠的相關(guān)信息"。不允許在答案中添加編造成分。另外,答案請(qǐng)使用中文。

            已知內(nèi)容:
            {context}

            問(wèn)題:
            {question}"""
    prompt = PromptTemplate(template=prompt_template,
                            input_variables=["context", "question"])
    chatLLM = ChatGLM()
    chatLLM.load_model(model_name_or_path=llm_model_dict[large_language_model])
    chatLLM.history = chat_history[-history_len:] if history_len > 0 else []

    chatLLM.temperature = temperature
    chatLLM.top_p = top_p

    knowledge_chain = RetrievalQA.from_llm(
        llm=chatLLM,
        retriever=vector_store.as_retriever(
            search_kwargs={"k": VECTOR_SEARCH_TOP_K}),
        prompt=prompt)
    knowledge_chain.combine_documents_chain.document_prompt = PromptTemplate(
        input_variables=["page_content"], template="{page_content}")

    knowledge_chain.return_source_documents = True

    result = knowledge_chain({"query": query})
    return result

這段代碼定義了一個(gè)名為 get_knowledge_based_answer 的函數(shù),用于基于預(yù)定義的知識(shí)庫(kù),回答用戶提出的問(wèn)題。該函數(shù)接受多個(gè)參數(shù),包括:

  • query:表示用戶提出的問(wèn)題;
  • large_language_model:表示要使用的大型語(yǔ)言模型的名稱;
  • vector_store:表示存儲(chǔ)文檔向量的向量存儲(chǔ)器;
  • VECTOR_SEARCH_TOP_K:表示要返回的文檔數(shù)量;
  • web_content:表示從網(wǎng)絡(luò)檢索中獲得的已知信息;
  • history_len:表示要考慮的歷史對(duì)話輪數(shù);
  • temperature:表示用于控制生成文本多樣性的溫度參數(shù);
  • top_p:表示用于控制生成文本長(zhǎng)度的 top-p 參數(shù);
  • chat_history:表示當(dāng)前對(duì)話的歷史記錄。

該函數(shù)首先根據(jù) web_content 參數(shù)確定不同的提示文本模板,并將其傳遞給 PromptTemplate 對(duì)象,用于生成提示文本。然后,該函數(shù)使用 ChatGLM 類創(chuàng)建一個(gè)大型語(yǔ)言模型對(duì)象,并使用 load_model 方法從指定的模型名稱或路徑中加載模型。接下來(lái),函數(shù)設(shè)置該模型的 temperaturetop_p 參數(shù)。

然后,函數(shù)使用 RetrievalQA.from_llm 方法創(chuàng)建一個(gè) RetrievalQA 對(duì)象,該對(duì)象將大型語(yǔ)言模型和向量存儲(chǔ)器作為檢索器,并將提示文本作為提示。該對(duì)象使用檢索器在向量存儲(chǔ)器中查找與查詢最相似的文檔,并使用大型語(yǔ)言模型生成答案。查詢結(jié)果包含了最有可能的答案,以及相應(yīng)的文檔信息和相似度分?jǐn)?shù)。

最后,函數(shù)返回 result 變量,其中包含與查詢最相關(guān)的答案、相關(guān)文檔信息和相似度分?jǐn)?shù)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-451859.html

到了這里,關(guān)于用好Python自然語(yǔ)言工具包-- 實(shí)例“基于本地知識(shí)庫(kù)的自動(dòng)問(wèn)答”的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 用了這8個(gè) Python 數(shù)據(jù)挖掘工具包,生產(chǎn)力明顯得到了提升!

    用了這8個(gè) Python 數(shù)據(jù)挖掘工具包,生產(chǎn)力明顯得到了提升!

    在進(jìn)行數(shù)據(jù)科學(xué)時(shí),可能會(huì)浪費(fèi)大量時(shí)間編碼并等待計(jì)算機(jī)運(yùn)行某些東西。所以我選擇了一些 Python 庫(kù),可以幫助你節(jié)省寶貴的時(shí)間。 喜歡記得收藏、關(guān)注、點(diǎn)贊,文末送技術(shù)交流和資料 Optuna 是一個(gè)開源的超參數(shù)優(yōu)化框架,它可以自動(dòng)為機(jī)器學(xué)習(xí)模型找到最佳超參數(shù)。 最基

    2024年02月01日
    瀏覽(20)
  • Python mpl_toolkits.mplot3d工具包繪制三維圖

    Python mpl_toolkits.mplot3d工具包繪制三維圖

    在Python中我們可以導(dǎo)入 mplot3d 工具包來(lái)繪制三維圖。 在 Matplotlib 1.0.0 之前,每個(gè)圖形只能創(chuàng)建一個(gè) Axes3D ,需要被直接定義為 ax = Axes3D 在 Matplotlib 3.2.0 之前,必須導(dǎo)入 mpl_toolkits.mplot3d 模塊將 Projection=\\\'3d\\\' 傳遞給 Figure.add_subplot 3維坐標(biāo)系通過(guò)將 Projection=\\\'3d\\\' 傳遞給

    2024年02月12日
    瀏覽(23)
  • 儀酷LabVIEW AI視覺(jué)工具包及開放神經(jīng)網(wǎng)絡(luò)交互工具包常見問(wèn)題解答

    儀酷LabVIEW AI視覺(jué)工具包及開放神經(jīng)網(wǎng)絡(luò)交互工具包常見問(wèn)題解答

    哈嘍,各位朋友,好久不見~ 之前給大家分享了基于LabVIEW開發(fā)的AI視覺(jué)工具包及開放神經(jīng)網(wǎng)絡(luò)交互工具包,不少朋友私信說(shuō)在安裝和使用過(guò)程中會(huì)遇到一些問(wèn)題,今天我們就集中回復(fù)一下大家問(wèn)到最多的問(wèn)題。如果大家在使用過(guò)程中還有其他問(wèn)題,可以補(bǔ)充到評(píng)論區(qū),我們這

    2024年02月16日
    瀏覽(23)
  • GIS工具包

    GIS工具包,根據(jù)jts工具,結(jié)合實(shí)際使用場(chǎng)景提取出來(lái)的常用工具集合;涵蓋幾何格式轉(zhuǎn)換(WKT,GeoJSON等)與geometry轉(zhuǎn)換、gis距離計(jì)算、度距離單位換算、角度計(jì)算、buffer運(yùn)算、映射截取、幾何穿串等操作 gis-tools源碼庫(kù)地址 1.1 WktTool使用說(shuō)明 wkt格式與geometry互轉(zhuǎn); wkt轉(zhuǎn)geometry操作

    2024年02月06日
    瀏覽(123)
  • 學(xué)習(xí)筆記-JVM-工具包(JVM分析工具)

    學(xué)習(xí)筆記-JVM-工具包(JVM分析工具)

    常用工具 JDK工具 ① jps: JVM Process status tool:JVM進(jìn)程狀態(tài)工具,查看進(jìn)程基本信息 ② jstat: JVM statistics monitoring tool : JVM統(tǒng)計(jì)監(jiān)控工具,查看堆,GC詳細(xì)信息 ③ jinfo:Java Configuration Info :查看配置參數(shù)信息,支持部分參數(shù)運(yùn)行時(shí)修改 ④ jmap:Java Memory Map :分析堆內(nèi)存工具,du

    2024年02月13日
    瀏覽(27)
  • MATLAB添加工具包(詳細(xì))

    MATLAB添加工具包(詳細(xì))

    我這里要添加的文件包為:DeepLearnToolbox-master 我這里的安裝目錄是:D:softwareMATLABtoolbox (1)以中文版為例,在主界面找到“設(shè)置路徑”按鈕 (2)點(diǎn)擊“設(shè)置路徑”,彈出設(shè)置界面 第一步:點(diǎn)“添加文件夾” (注:如果要工具包中有多個(gè)子文件夾,則點(diǎn)“添加并包含子文

    2024年02月02日
    瀏覽(21)
  • 【自然語(yǔ)言處理】3.1NLTK工具集

    NLTK為自然語(yǔ)言處理集 多語(yǔ)料庫(kù)(Corpora) 詞典資源(Lexicon),如WordNet 基本自然語(yǔ)言處理工具集 標(biāo)記解析(Tokenization) 詞干提取(Stemming) 詞性標(biāo)注(POS Tagging) 句法分析(Syntactic Parsing) 安裝(command+R), pip install nltk 下載 nltk.download() 方法 停用詞 因?yàn)檎Z(yǔ)義不重要(如冠詞)

    2024年02月11日
    瀏覽(25)
  • 【Linux】基本開發(fā)工具包使用

    【Linux】基本開發(fā)工具包使用

    目錄 一, yum ——linux軟件包管理器 ?1. 軟件包是啥子? ?2.? yum基本使用? 1. 步驟:? 2. 開發(fā)工具推薦(centos 7.6) 二,vim —— linux文本編輯器 1. Normal mode? ——? 命令模式(記不住沒(méi)關(guān)系,多練就行) 2.? last line? mode——? ?末行模式 (如何進(jìn)入;shift :) 3.?Insert mode ——插

    2024年02月08日
    瀏覽(29)
  • Hardhat工具包1--安裝使用

    Hardhat工具包1--安裝使用

    參考資料: 官方文檔 : https://hardhat.org/getting-started/ https://hardhat.org/hardhat-runner/docs/getting-started#overview 基于Hardhat和Openzeppelin開發(fā)可升級(jí)合約(一) 基于Hardhat和Openzeppelin開發(fā)可升級(jí)合約(一)_灬倪先森_的博客-CSDN博客 ---------------------------------------------------------------------------------

    2023年04月11日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包