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

【 文本到上下文 #4】NLP 與 ML

這篇具有很好參考價值的文章主要介紹了【 文本到上下文 #4】NLP 與 ML。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、說明

????????歡迎回到我們的 NLP 博客系列!當我們進入第四部分時,焦點轉(zhuǎn)移到機器學習 (ML) 和自然語言處理 (NLP) 之間的動態(tài)相互作用上。在本章中,我們將深入探討 ML 和 NLP 的迷人協(xié)同作用,解開理論概念和實際應(yīng)用。

????????AI、ML 和 NLP 雖然經(jīng)?;Q使用,但具有特定的作用。人工智能模擬人類智能,而NLP允許機器理解和解釋語言。機器學習在人工智能的保護傘下,實現(xiàn)了自主學習和改進。這種協(xié)同作用使 NLP 任務(wù)自動化,提高了準確性和效率。

????????以下是本章中您可以期待的內(nèi)容:

  1. 了解 NLP 中的監(jiān)督學習和無監(jiān)督學習:?本節(jié)將闡明監(jiān)督學習和無監(jiān)督學習在 NLP 背景下的核心區(qū)別和獨特應(yīng)用。通過了解這些基本的 ML 方法,您將深入了解它們?nèi)绾悟?qū)動各種 NLP 任務(wù)和應(yīng)用程序。
  2. 情感分析:(監(jiān)督)ML在NLP中的實際應(yīng)用:深入研究情感分析的世界,其中監(jiān)督式 ML 技術(shù)用于解釋和分類文本數(shù)據(jù)中的情感。本節(jié)將展示如何訓練和應(yīng)用監(jiān)督學習模型以從文本中提取有意義的見解,強調(diào)它們在 NLP 中的實際效用。
  3. 主題建模:(無監(jiān)督)ML在NLP中的實際應(yīng)用:探索主題建模,這是一種無監(jiān)督 ML 應(yīng)用程序,可發(fā)現(xiàn)大型文本語料庫中隱藏的主題結(jié)構(gòu)。本部分將演示無監(jiān)督學習算法如何檢測模式和主題,為了解大量文本數(shù)據(jù)集中存在的潛在主題提供一個窗口。

二、了解 NLP 中的監(jiān)督學習和無監(jiān)督學習

????????在機器學習領(lǐng)域,有兩種基本范式:監(jiān)督學習和無監(jiān)督學習。?監(jiān)督學習涉及在標記數(shù)據(jù)集上訓練模型,其中算法學習將輸入數(shù)據(jù)映射到相應(yīng)的輸出標簽。另一方面,無監(jiān)督學習處理未標記的數(shù)據(jù),旨在發(fā)現(xiàn)信息中隱藏的模式或分組。

????????對于自然語言處理 (NLP) 來說,機器學習就像語言偵探一樣——幫助我們理解單詞和短語。想象一下,教計算機理解電影評論是在豎起大拇指還是豎起大拇指。這就是我們在NLP中對監(jiān)督學習所做的。另一方面,無監(jiān)督學習就像一個熟練的探索者,幫助我們在一堆沒有任何標簽的文本中找到隱藏的模式??梢园阉胂蟪稍谝欢盐恼轮薪沂局饕黝}。

????????讓我們直接進入有趣的區(qū)域,從情感分析的快感開始,然后進入主題建模的迷人世界。準備好冒險了嗎?讓編碼奇跡開始吧!?

三、情感分析:(監(jiān)督)ML在NLP中的實際應(yīng)用

????????ML 在 NLP 中最普遍和最實際的應(yīng)用之一是情感分析。此任務(wù)涉及確定一段文本中表達的情緒,無論是積極的、消極的還是中性的。想象一下,當大規(guī)模自動分析情緒時,可以從客戶評論、社交媒體帖子或產(chǎn)品反饋中收集到豐富的見解。

????????IMDB評論:使用代碼進行情感分析

【 文本到上下文 #4】NLP 與 ML,NLP高級和ChatGPT,人工智能,自然語言處理,人工智能

????????為了將這些概念變?yōu)楝F(xiàn)實,讓我們開始一個現(xiàn)實世界的項目——為 IMDB 評論構(gòu)建情感分析模型。在此示例中,我們將使用流行的 ML 框架和庫(例如 sci-kit learn、pandas)來指導您完成該過程的每個步驟。

# Import necessary libraries
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score, classification_report

# Function to load IMDb dataset
def load_data():
    df = pd.read_csv('data/movie.csv')
    return df['text'], df['label']

# Function to preprocess data (split into training and testing sets)
def preprocess_data(text, label):
    X_train, X_test, y_train, y_test = train_test_split(text, label, test_size=0.2, random_state=42)
    return X_train, X_test, y_train, y_test

# Function to vectorize text data using CountVectorizer
def vectorize_text(X_train, X_test):
    vectorizer = CountVectorizer()
    X_train_vec = vectorizer.fit_transform(X_train)
    X_test_vec = vectorizer.transform(X_test)
    return X_train_vec, X_test_vec, vectorizer  # Return the vectorizer as well to test random text 

# Function to train a Naive Bayes classifier
def train_model(X_train_vec, y_train):
    classifier = MultinomialNB()
    classifier.fit(X_train_vec, y_train)
    return classifier

# Function to evaluate the trained model
def evaluate_model(classifier, X_test_vec, y_test):
    y_pred = classifier.predict(X_test_vec)
    accuracy = accuracy_score(y_test, y_pred)
    report = classification_report(y_test, y_pred)
    return accuracy, report

# Main function
def main():
    # Step 1: Load data
    text, label = load_data()

    # Step 2: Preprocess data
    X_train, X_test, y_train, y_test = preprocess_data(text, label)

    # Step 3: Vectorize text data
    X_train_vec, X_test_vec, vectorizer = vectorize_text(X_train, X_test)  # Capture the vectorizer

    # Step 4: Train the model
    classifier = train_model(X_train_vec, y_train)

    # Step 5: Evaluate the model
    accuracy, report = evaluate_model(classifier, X_test_vec, y_test)

    # Display results
    print(f"Accuracy: {accuracy:.2f}")
    print("Classification Report:\n", report)

    # Test random text with the trained model
    test_text = ["This movie was fantastic!", "I didn't like the plot."]
    test_text_vec = vectorizer.transform(test_text)
    predictions = classifier.predict(test_text_vec)
    print("\nTest Text Predictions:", predictions)

if __name__ == "__main__":
    main()
Accuracy: 0.85
Classification Report:
               precision    recall  f1-score   support

           0       0.83      0.89      0.86      3966
           1       0.88      0.82      0.85      4034

    accuracy                           0.85      8000
   macro avg       0.85      0.85      0.85      8000
weighted avg       0.85      0.85      0.85      8000


Test Text Predictions: [1 0]

????????項目步驟:

  1. 加載 IMDb 數(shù)據(jù)集:我們首先加載我們的 IMDb 數(shù)據(jù)集,該數(shù)據(jù)集由電影評論和相應(yīng)的情感標簽(正面或負面)組成。
  2. 數(shù)據(jù)預處理:?然后,通過使用 scikit-learn 庫將數(shù)據(jù)拆分為訓練集和測試集,對數(shù)據(jù)進行預處理。這一步對于訓練和評估模型的性能至關(guān)重要。
  3. 文本矢量化:使用 scikit-learn 的 CountVectorizer 將電影評論文本轉(zhuǎn)換為數(shù)字特征。此過程將原始文本數(shù)據(jù)轉(zhuǎn)換為適合機器學習算法的格式。
  4. 訓練模型:我們使用 scikit-learn 中的 MultinomialNB 類訓練樸素貝葉斯分類器,這是文本分類任務(wù)的常用選擇。此步驟涉及教導模型識別矢量化文本數(shù)據(jù)中的模式。
  5. 模型評估:在測試集上對經(jīng)過訓練的模型進行評估,以評估其準確性和性能。我們使用準確性分數(shù)和分類報告等指標來衡量模型對看不見的數(shù)據(jù)的泛化程度。
  6. 使用隨機文本進行測試:為了證明該模型在現(xiàn)實世界中的適用性,我們用隨機的電影評論文本對其進行了測試。這展示了我們的情感分析模型在訓練數(shù)據(jù)之外進行預測的靈活性。

????????建立IMDB情感分析模型不僅可以深入了解電影評論中表達的情感,還可以作為NLP和文本分類的極好介紹。該項目演示了準備數(shù)據(jù)、訓練模型和評估其性能的分步過程,為那些涉足令人興奮的自然語言處理領(lǐng)域的人們提供了一個實際示例。

四、主題建模:(無監(jiān)督)ML在NLP中的實際應(yīng)用

????????在自然語言處理 (NLP) 中的無監(jiān)督學習領(lǐng)域,主題建模仍然是一個迷人的應(yīng)用程序。這種技術(shù)使我們能夠在文本文檔集合中挖掘潛在的主題,在不依賴預定義標簽的情況下揭示潛在的主題。

????????使用代碼對研究文章進行主題建模

????????現(xiàn)在,讓我們深入研究我們的第二個 NLP 項目——為研究文章制作主題建模工作。在本例中,我們將采用無監(jiān)督學習技術(shù)來提取非結(jié)構(gòu)化文本中的隱藏對話,重點關(guān)注“TITLE”和“ABSTRACT”列。

# Import necessary libraries
from sklearn.decomposition import LatentDirichletAllocation
from sklearn.feature_extraction.text import TfidfVectorizer
import pandas as pd

# Function to load research articles dataset
def load_data():
    df = pd.read_csv('data/research_articles.csv')
    return df['TITLE'] + ' ' + df['ABSTRACT']
    
# Function to vectorize text data using TfidfVectorizer
def vectorize_text_tfidf(text):
    vectorizer = TfidfVectorizer(max_df=0.95, min_df=2, stop_words='english')
    X_vec = vectorizer.fit_transform(text)
    return X_vec, vectorizer
    
# Function to train a Latent Dirichlet Allocation (LDA) model
def train_lda_model(X_vec, num_topics):
    lda_model = LatentDirichletAllocation(n_components=num_topics, random_state=42)
    lda_model.fit(X_vec)
    return lda_model
    
# Function to display the top words for each topic
def display_topics(model, feature_names, num_top_words):
    topics = {}
    for topic_idx, topic in enumerate(model.components_):
        topics[f"Topic {topic_idx+1}"] = [feature_names[i] for i in topic.argsort()[:-num_top_words - 1:-1]]
    return topics
    
# Main function for Topic Modeling
def main_topic_modeling(text, num_topics=5, num_top_words=10):
    # Step 1: Vectorize text data using TfidfVectorizer
    X_vec, vectorizer = vectorize_text_tfidf(text)
    
    # Step 2: Train a Latent Dirichlet Allocation (LDA) model
    lda_model = train_lda_model(X_vec, num_topics)
    
    # Step 3: Display the top words for each topic
    feature_names = vectorizer.get_feature_names_out()
    topics = display_topics(lda_model, feature_names, num_top_words)
    
    # Display the topics
    print(f"\nTop {num_top_words} words for each topic:")
    for topic, words in topics.items():
        print(f"{topic}: {', '.join(words)}")

if __name__ == "__main__":
    text_data = load_data()
    main_topic_modeling(text_data, num_topics=5, num_top_words=10)
Top 10 words for each topic:
Topic 1: quantum, energy, spin, model, magnetic, phase, field, time, temperature, wave
Topic 2: learning, data, model, network, networks, based, algorithm, models, neural, problem
Topic 3: mn, doping, floquet, fese, t_c, soc, kitaev, semimetals, mos2, verma
Topic 4: qa, nmf, hedging, opioid, password, gerrymandering, hashtags, triad, fuzzing, sequent
Topic 5: mathbb, prove, group, mathcal, finite, groups, theorem, spaces, algebra, space

????????項目步驟:

  1. 加載研究文章數(shù)據(jù)集:首先加載包含研究文章的數(shù)據(jù)集,重點關(guān)注“TITLE”和“ABSTRACT”列。
  2. 使用 TfidfVectorizer 進行文本矢量化:使用 TfidfVectorizer 將研究文章文本轉(zhuǎn)換為數(shù)字特征,同時考慮每個文檔中單詞的重要性。
  3. 訓練潛在狄利克雷分配 (LDA) 模型:使用 LDA 算法來揭示研究文章中隱藏的主題。LDA 假定每個文檔都是主題的混合體,并且每個主題都是單詞的混合體(有關(guān)更多信息,請訪問鏈接)。
  4. 顯示每個主題的熱門詞:通過展示與每個發(fā)現(xiàn)的主題相關(guān)的熱門詞來可視化結(jié)果。

????????冒險進行研究文章的主題建模項目不僅可以增強我們對文章內(nèi)容的理解,還可以強調(diào)NLP中無監(jiān)督學習的靈活性。該項目提供了從文本矢量化到揭示潛在主題的順序過程的實際探索,為進入自然語言處理這一有趣領(lǐng)域的愛好者提供了寶貴的見解。

五、結(jié)論

????????總之,我們對機器學習(ML)和自然語言處理(NLP)的探索已經(jīng)闡明了它們的不同作用。ML 作為更廣泛的 AI 的一個子集,為自主學習提供動力,而 NLP 則解釋和理解語言。

????????通過監(jiān)督學習,我們解開了情感分析,從IMDB評論中提取情感。過渡到無監(jiān)督學習,主題建模揭示了研究文章中隱藏的主題。

????????最后,我們的旅程延伸到 NLP 的深度學習基礎(chǔ)。請繼續(xù)關(guān)注我們對神經(jīng)網(wǎng)絡(luò)、遞歸神經(jīng)網(wǎng)絡(luò) (RNN) 和長短期記憶 (LSTM) 網(wǎng)絡(luò)的探索——這是我們正在進行的 NLP 與 ML 探索的激動人心的篇章。文章來源地址http://www.zghlxwxcb.cn/news/detail-807047.html

到了這里,關(guān)于【 文本到上下文 #4】NLP 與 ML的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 調(diào)用Chatgpt API,并實現(xiàn)聯(lián)系上下文

    調(diào)用Chatgpt API,并實現(xiàn)聯(lián)系上下文

    相信很多人在調(diào)用的時候出現(xiàn)了一些問題,直接進行調(diào)用好像不行了。得需要點懂得都懂的東西。但使用懂得都懂的東西調(diào)用openai這個庫的時候會報一個這樣的錯誤:SSLEOFError 因此直接使用 requests 來訪問端口,并向其添加代理的方式實現(xiàn)訪問。效果如下: 實現(xiàn)代碼如下: 通

    2024年02月11日
    瀏覽(34)
  • 大語言模型之十六-基于LongLoRA的長文本上下文微調(diào)Llama-2

    大語言模型之十六-基于LongLoRA的長文本上下文微調(diào)Llama-2

    增加LLM上下文長度可以提升大語言模型在一些任務(wù)上的表現(xiàn),這包括多輪長對話、長文本摘要、視覺-語言Transformer模型的高分辨4k模型的理解力以及代碼生成、圖像以及音頻生成等。 對長上下文場景,在解碼階段,緩存先前token的Key和Value(KV)需要巨大的內(nèi)存開銷,其次主流

    2024年02月06日
    瀏覽(42)
  • 如何使用API來向ChatGPT提交上下文數(shù)據(jù)

    使用API向ChatGPT提交上下文數(shù)據(jù),這可能需要一些開發(fā)工作。以下是一些可以幫助您開始的建議: 確定API端點和請求方法:您需要確定向ChatGPT提交上下文數(shù)據(jù)的API端點和請求方法。通常,這些信息可以在API文檔中找到。 確定需要提供的上下文數(shù)據(jù):在向ChatGPT提交上下文數(shù)據(jù)

    2023年04月23日
    瀏覽(26)
  • ChatGPT 和 Elasticsearch:分面、過濾和更多上下文

    ChatGPT 和 Elasticsearch:分面、過濾和更多上下文

    作者:Luca Wintergerst 在最近的一篇博客文章中,我們討論了 ChatGPT 和 Elasticsearch? 如何協(xié)同工作以幫助更有效地管理專有數(shù)據(jù)。 通過利用 Elasticsearch 的搜索功能和 ChatGPT 的上下文理解,我們演示了如何改進結(jié)果。 在這篇文章中,我們討論如何通過添加分面(facets)、過濾和附

    2024年02月12日
    瀏覽(28)
  • 【人工智能】LLM大模型中的詞嵌入和上下文理解技術(shù)實例講解,附具體的代碼例子

    詞嵌入(Word Embeddings)可以將高維的文本數(shù)據(jù)轉(zhuǎn)換成低維的稠密向量表示,在進行自然語言處理任務(wù)時,這樣的表示方式可以幫助算法理解詞語之間的相似性以及上下文關(guān)系。以下是一個使用 TensorFlow 和 Keras 實現(xiàn) Word2Vec 詞嵌入模型的代碼實例。 使用 TensorFlow 和 Keras 的 Word

    2024年02月07日
    瀏覽(44)
  • 在word的文本框內(nèi)使用Endnote引用文獻,如何保證引文編號按照上下文排序

    在word的文本框內(nèi)使用Endnote引用文獻,如何保證引文編號按照上下文排序

    如下圖所示,我在word中插入了一個文本框(為了插圖),然后文本框內(nèi)有引用,結(jié)果endnote自動將文本框內(nèi)的引用優(yōu)先排序,變成文獻[1]了,而事實上應(yīng)該是[31]。請問如何能讓文本框內(nèi)的排序也自動按照整個文章從上到下的順序來呢?[引用自這里] 文本框中不支持尾注(和腳

    2024年02月13日
    瀏覽(84)
  • 現(xiàn)有大語言模型(ChatGPT)的上下文理解能力還是假象嗎?

    現(xiàn)有大語言模型(ChatGPT)的上下文理解能力還是假象嗎?

    人工智能的一個重要方面是人機交互智能,人機交互智能的核心在于機器對自然語言的理解,而機器翻譯是衡量這種理解的有效方式。 按照目前LLM的技術(shù)路線,僅僅靠計算語言形式的概率能否產(chǎn)生人類式理解還是未知,但我們知道人類式理解是能夠反語言形式概率的,這可以

    2023年04月15日
    瀏覽(29)
  • 三分鐘4行命令構(gòu)建chatgpt webapp,支持高并發(fā)以及上下文對話功能

    三分鐘4行命令構(gòu)建chatgpt webapp,支持高并發(fā)以及上下文對話功能

    個人主頁:https://yang1he.gitee.io 干貨會越來越多的,歡迎來玩 純純不是標題黨,昨天找了一下午,有用flask框架的,有還得qtdesinger框架的,這不純純騙小白嗎,最近比較常用streamlit,所以萌發(fā)了能不能用這個做個簡單的app.說干就干 你的chatgpt秘鑰,說多了我這篇問這個那就發(fā)不

    2023年04月16日
    瀏覽(23)
  • 神經(jīng)數(shù)據(jù)庫:用于使用 ChatGPT 構(gòu)建專用 AI 代理的下一代上下文檢索系統(tǒng) — (第 2/3 部分)

    神經(jīng)數(shù)據(jù)庫:用于使用 ChatGPT 構(gòu)建專用 AI 代理的下一代上下文檢索系統(tǒng) — (第 2/3 部分)

    書接上回理解構(gòu)建LLM驅(qū)動的聊天機器人時的向量數(shù)據(jù)庫檢索的局限性 - (第1/3部分)_阿爾法旺旺的博客-CSDN博客 其中我們強調(diào)了( 1 )嵌入生成,然后( 2 )使用近似近鄰( ANN )搜索進行矢量搜索的解耦架構(gòu)的缺點。我們討論了生成式 AI 模型生成的向量嵌入之間的余弦相似

    2024年02月15日
    瀏覽(16)
  • 【python】flask執(zhí)行上下文context,請求上下文和應(yīng)用上下文原理解析

    【python】flask執(zhí)行上下文context,請求上下文和應(yīng)用上下文原理解析

    ?? 歡迎大家來到景天科技苑?? ???? 養(yǎng)成好習慣,先贊后看哦~???? ?? 作者簡介:景天科技苑 ??《頭銜》:大廠架構(gòu)師,華為云開發(fā)者社區(qū)專家博主,阿里云開發(fā)者社區(qū)專家博主,CSDN新星創(chuàng)作者,掘金優(yōu)秀博主,51CTO博客專家等。 ??《博客》:Python全棧,前后端開

    2024年03月26日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包