How to Use ChatGPT for Data cleaning and Analysis
影片介紹:
這段影片由 Cobalt Intelligence 的 Jordan Hansen 主持,主要討論如何使用 ChatGPT 來進行資料清理和分析。Hansen 認為這是 ChatGPT 最實用的應用之一,尤其適合從事資料分析的專業人員,因為它能夠有效地處理和清理大量數據,省去傳統手動處理數據的繁瑣工作。
主要內容:
介紹 ChatGPT 的應用場景:
示範如何使用 ChatGPT 生成和處理數據:
處理重複數據的案例:
進一步的數據分析和互動:
建立圖表:
總結:
影片總結了使用 ChatGPT 作為資料分析工具的幾個優勢。Hansen 認為,ChatGPT 可以有效處理和清理數據,快速執行傳統上需要大量手動操作的工作。雖然圖表生成功能還不完全成熟,但 ChatGPT 已經能夠擔任數據分析師的角色,透過簡單的互動即可完成資料處理和分析的任務。
這段教學對於那些希望提升數據處理效率和使用 AI 進行自動化分析的企業來說,提供了實際的操作指南和應用場景。
以使用Kaggle 數據集為例
前往 Kaggle 數據集 下載 nlp-with-disaster-tweets-cleaning-data
數據集。
瀏覽數據集的描述,了解數據集的特徵(如文本、標籤、ID 等)以及數據清理的目標。
準備一個 Python 環境,建議使用 Jupyter Notebook 進行數據清理的實驗。
安裝所需的庫,如 Pandas、NumPy、NLTK、Scikit-learn 等,用於數據處理和分析。
pip install pandas numpy nltk scikit-learn openai
import pandas as pd
# 讀取數據集
data = pd.read_csv('disaster_tweets_clean.csv')
print(data.head())
# 檢查缺失值
print(data.isnull().sum())
# 查看數據統計信息
print(data.describe())
import re
from nltk.corpus import stopwords
from nltk.stem import WordNetLemmatizer
# 初始化
lemmatizer = WordNetLemmatizer()
stop_words = set(stopwords.words('english'))
def clean_text(text):
# 去除URL
text = re.sub(r'http\S+', '', text)
# 去除@標記
text = re.sub(r'@\w+', '', text)
# 去除非字母字符
text = re.sub(r'[^a-zA-Z\s]', '', text)
# 轉換為小寫
text = text.lower()
# 去除停用詞和詞形還原
text = ' '.join([lemmatizer.lemmatize(word) for word in text.split() if word not in stop_words])
return text
# 應用到整個數據集中
data['cleaned_text'] = data['text'].apply(clean_text)
print(data['cleaned_text'].head())
import openai
openai.api_key = 'your_openai_api_key'
def get_cleaning_suggestions(text):
response = openai.Completion.create(
engine="text-davinci-003",
prompt=f"清理以下文本數據:'{text}' 並提供建議。",
max_tokens=100
)
return response.choices[0].text.strip()
# 示例:對單個文本進行清理建議
example_text = data['text'][0]
suggestions = get_cleaning_suggestions(example_text)
print(f"原始文本: {example_text}")
print(f"清理建議: {suggestions}")
程式碼上code 跟寫test case 或相關的流程也有一部分是可以使用LLM 輔助的,應該吧?
另外關於在資料預處理或調用 LLM API 導致的公司資料外洩這一點,可能再傳給chat bot 或調用LLM API時,就要使用一些方法去除或加密一些敏感或重要的資料就是了,這個我目前就沒啥想法。