方格精選

AI工具怎麼幫助我們學習程式-ChatGPT的實踐與範例

閱讀時間約 13 分鐘
raw-image

在生成式AI與大型語言模型(Large Language Model, LLM)蓬勃發展下,有許多工具可以幫助我們學習與撰寫程式,例如ChatGPTCopilot,ChatGPT有免費的GPT-3.5可以使用,或付費使用GPT-4;Copilot則是有30天試用期,試用完可選擇付月費或年費。以下列舉兩個我使用ChatGPT學習程式語言的情境,這邊使用的都是免費的GPT-3.5,因此不能用GPT-4 Code Interpreter 的功能,以下將提出一些範例與使用上的建議。

在開始之前,先說明一下LLM常用的術語,首先是「指令」、「提示」或「詠唱詞」,其實就是用戶的請求和問題,英文為Prompt;模型根據給定的Prompt生成的回應,英文則是Completion

一、諮詢學習方向/路徑

因為程式語言充滿各種模組及套件,要實現同一個功能,可能有好幾種方式,因此,在學習或想要實現某種功能時,先詢問ChatGPT有哪些方法/模組可以完成,能夠省去探索的時間,並讓ChatGPT給出範例程式碼,更是可以事半功倍。

以下提供一個指令(Prompt)的範例,如果我想要學自然語言處理的內容,並且想做情緒分析,我可以這樣詢問:如何用python作文本情緒分析,請給我作業流程與範例程式碼

raw-image

結果發現,他的確給出了流程與範例程式碼,但我們想用不同方法實現,因此,換一個問法:如何用python作文本情緒分析,請給我至少三種不同的作業流程與範例程式碼。給出的結果如下:

1.基於情感詞典的情緒分析:這種方法使用情感詞典來對文本進行情感分析,如VADER情感詞典。這是一種快速且容易實現的方法。
2.使用機器學習模型進行情緒分析:這種方法使用機器學習模型,如支持向量機(SVM)或隨機森林(Random Forest)等,將文本分類為正面、負面或中性。
3.使用深度學習模型進行情緒分析:這種方法使用深度學習模型,如循環神經網絡(RNN)或轉former,通常需要更大的數據集來獲得更好的效果。

可以看到,ChatGPT給出了深度學習以外的另外兩種方法,如此一來,對於用Python進行文本情緒分析便有基礎的概念,可以進一步追問或者去google相關領域的知識,並用其提供的範例程式碼進行操作,以此來加快學習的步伐。

總之,用ChatGPT諮詢學習方向/路徑,可以歸結成以下問法:

如何用 [某個程式語言] 作 [某個任務] , [詳細說明或者針對資料的敘述] ,請給我 [__種] 不同的作業流程與範例程式碼。

二、直接叫AI幫忙寫程式

第二個我最常用的情境,就是直接叫AI幫忙寫程式了,只要跟ChatGPT講程式語言、具體任務、預期結果,通常都能夠得到很不錯的結果,以下為兩個例子的呈現。

範例一:機器學習建模

我下的Prompt是我想要用python跑decision tree和random forest兩個模型,做的是分類的任務,並畫圖呈現訓練集跟測試集的學習曲線,X軸使用epoch

結果呈現如下,的確給了我用scikit-learn實現的程式碼,也能夠運行。

尚未套用自己資料的completion

尚未套用自己資料的completion

上面給出的程式碼,是生成一個範例的資料集,接著,我試圖敘述自己的資料集,請ChatGPT生成code:我有三個資料,avg_df、knn_df、linear_df,分別是用平均數、knn、linear三種方式填補空缺值處理完的資料。 想要用'pm2.5', 'o3'當作X,'status'當作Y,Y是一個類別變數,有0、1、2、3四種類別。 我要訓練一個分類模型,分別套用以下五個模型:Decision Tree、Random Forest、SVC、Logistic Regression、K-Nearest Neighbors 最終的結果是想畫圖,每張圖代表一個模型,X軸為不同參數,並且有三條線分別表示套用三個資料下的預測準確率。 超參數的部分,Decision Tree用ccp_alpha,Random Forest用min_df,SVC用kernel,Logistic Regression用C,K-Nearest Neighbors用n_neighbors。 請給我python的code,註解請用繁體中文。

raw-image

這樣的問法,的確成功生成了我想要的結果,而且完全沒有錯誤,非常厲害!

範例二:即時爬取公司財報資訊

第二個範例,是想做一個查詢財報資訊的程式,用到的技術是網路爬蟲。網路爬蟲本來就是GPT比較難實踐的一個任務,因此,我試圖用各種方式不斷修正,最終成功獲得可以運行的程式碼。

首先,我的任務是,有一些券商的網站可以找到上市櫃公司的年報/季報,因此我想要把有興趣的財務指標抓下來,作為投資決策參考。

此時,我下的prompt為:
元大證券網站中,台積電(2330)的各年財務報表,網址為http://jdata.yuanta.com.tw/z/zc/zcr/zcr0.djhtm?b=Y&a=2330 我想要抓取每年的「每股盈餘」、「營業毛利率」,抓取的時候用「科目名稱」進行抓取,撰寫環境是Google colab,請給我程式碼

ChatGPT給了我一段程式與說明,說明如下:

這個程式碼使用requests模組從元大證券網站獲取台積電的財務報表網頁資料。然後,使用BeautifulSoup模組對網頁資料進行解析,找到表格並抓取每年的每股盈餘和營業毛利率資料。根據表格標題的科目名稱進行索引,找到對應的欄位資料。最後,使用pandas模組將資料轉換成DataFrame,並印出結果。
請注意,網站的結構可能會有所更改,導致程式碼無法正確運行。如果發生這種情況,您可能需要根據網站的新結構調整程式碼。

結果貼到Python環境運行,發現無法運行。於是我把網頁原始碼(程式中變數soup)的內容貼給他看,裡面包括我要抓的財報資訊,目的是讓模型知道要抓的資訊在網頁結構中的哪個位置,並打上prompt如下:
請依據以上原始碼,抓取每年的「每股盈餘」、「營業毛利率」,抓取的時候用「科目名稱」進行抓取,撰寫環境是Google colab,請給我程式碼

prompt中給了部分原始碼的內容(裡面包括我要抓的財報資訊)

prompt中給了部分原始碼的內容(裡面包括我要抓的財報資訊)

給了原始碼內容,果然就有成功生成表格了,但抓到的內容只有兩年,網頁中卻有八年,因此仍不完整。

prompt提供原始碼後,程式跑出的結果

prompt提供原始碼後,程式跑出的結果

因此,我給了ChatGPT更明確的修正指令:
抓到資料了,但資料有點錯誤,
1. 「每股盈餘」、「營業毛利率」,應該是出現在最左邊的column,因此要用最左邊的column進行篩選
2. 原始資料的每個row代表期別,這邊只抓了期別為2022、2021,我要完整的資料共9個row,欄位名稱應該包括['期別','2022','2021','2020','2019','2018','2017','2016','2015'],以上,請幫我修正

修正結果果然成功了,接著,再用修正好的程式碼,請ChatGPT幫我寫一個查詢功能。我下的prompt,是把修正好的程式碼貼給他,並且也給他看輸出的資料框(Data Frame)格式,這邊要將表格轉成ChatGPT看得懂的格式,在GPT-3.5不能傳檔案的情況下也是可以達成的,只要把Table轉成Markdown就可以,因此,我下的Prompt如下:
以下是我目前的程式碼:.........。
抓下來的dataframe(df)前幾行如下:.........。
其中,抓取的網站只要更改公司代碼,就可以查詢其他公司,例如,想抓取台積電(2330),網址為http://jdata.yuanta.com.tw/z/zc/zcr/zcr0.djhtm?b=Y&a=2330;想抓取鴻海(2317),網址為http://jdata.yuanta.com.tw/z/zc/zcr/zcr0.djhtm?b=Y&a=2317
抓下來的dataframe中,第一個欄位是科目名稱,請幫我改寫上面程式碼,改寫成我可以輸入多個我想要查詢的公司代碼、科目名稱,並呈現結果。

最終,也成功得到結果了,結果如下所示。

最終成功得到的結果

最終成功得到的結果

最後,分享給大家這個完全由ChatGPT(GPT-3.5)寫出來的爬蟲程式,可以丟到Google Colab上面玩玩喔。

# 輸入多個公司代碼和科目名稱
companies = {'台積電': '2330', '鴻海': '2317'}
subjects = ['每股盈餘', '營業毛利率']

# 載入必要模組​
import requests
import pandas as pd
from bs4 import BeautifulSoup

# 定義取得財報的函式​
def get_financial_data(company_code, subject_names):
url = f'http://jdata.yuanta.com.tw/z/zc/zcr/zcr0.djhtm?b=Y&a={company_code}'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
table = soup.find('table', id='oMainTable')
headers = ['期別','2022','2021','2020','2019','2018','2017','2016','2015']
data = []
rows = table.select('div.table-row')
for row in rows:
cells = row.select('span.table-cell')
subject = cells[0].text.strip()
if subject in subject_names:
values = [cell.text.strip() for cell in cells[1:]]
data.append([subject] + values)
df = pd.DataFrame(data, columns=headers)
return df

# 取得不同公司的資料並合併
dfs = []
for company_name, company_code in companies.items():
df_company = get_financial_data(company_code, subjects)
dfs.append(df_company)

result_df = pd.concat(dfs, keys=companies.keys(), names=['公司名稱'])

# 印出結果
result_df

結論

目前的LLM真的日新月異,除了付費版GPT-4提供了可以上傳檔案,甚至用Python導出結果的功能外,還有優勢在於完全免費的最大競爭者Claude 2,未來必定還會推出更多免費與開源的AI工具,我們再拭目以待。

另外,使用這些工具時,我發現其實怎麼下指令(prompt)是最重要的,盡量說清楚情境、關鍵字,並且給範例、線索,最後明確表明想要的結果、成品的樣態。基本上都可以達到不錯的效果,在網路上也找得到許多指令的下達方式,例如這篇,提供了許多用ChatGPT寫程式的指令,可以參考。

最後,在現在工具如此發達的時代,正是所有人踏入資料科學、程式設計、流程自動化領域的最佳時機,因此,快握緊手把,一起飛快學習吧!

善用AI,可以跳過很多學習程式的障礙,用對方法,從入門到寫一個可用的功能,其實只需要不到一個禮拜的時間!




63會員
6內容數
公務員是我的第一份正職,從高考榜首到離開公務員,跨領域轉職到資料科學家,公務員的經歷、所學、轉職的心路歷程等,在「關於公務員,我想說的是」專題中,一一跟大家分享
留言0
查看全部
發表第一個留言支持創作者!
Fann的沙龍 的其他內容
資料分析工具百百種,有容易操作資料、視覺化的BI工具、常用於各領域的分析模型套裝軟體等等,但對於想做資料分析、資料科學的人,「程式語言」可以說是現今不可或缺的能力,而R與Python則可以稱為資料科學領域最熱門的兩個程式語言,這篇文章主要想分享R與Python的使用情境,以及分享網路上一些資源。
  在之前的文章中,分享了我從公務員轉職到資料科學家的歷程,其中大大增加我履歷亮點的,就是大量的專案經驗,也就是大家稱的Side Project。這篇文章,想要分享Side Project為何、規模應該多大、方向怎麼找、在職期間怎麼找時間規劃完成自己的專案......等,希望可以給讀者一些更具體的想
大學讀會計系,雙主修社會系,研究所讀農業經濟,課餘時經營程式接案工作,畢業後,踏上了將近1年半的公務員生活,之後毅然辭職,離開公務界,即將成為一名資料科學家 (Data Scientest)。這篇文章想簡短分享跨領域之路,主要著重在這段旅程是怎麼開始的,當中經歷了什麼,而我又學到了什麼。
資料分析工具百百種,有容易操作資料、視覺化的BI工具、常用於各領域的分析模型套裝軟體等等,但對於想做資料分析、資料科學的人,「程式語言」可以說是現今不可或缺的能力,而R與Python則可以稱為資料科學領域最熱門的兩個程式語言,這篇文章主要想分享R與Python的使用情境,以及分享網路上一些資源。
  在之前的文章中,分享了我從公務員轉職到資料科學家的歷程,其中大大增加我履歷亮點的,就是大量的專案經驗,也就是大家稱的Side Project。這篇文章,想要分享Side Project為何、規模應該多大、方向怎麼找、在職期間怎麼找時間規劃完成自己的專案......等,希望可以給讀者一些更具體的想
大學讀會計系,雙主修社會系,研究所讀農業經濟,課餘時經營程式接案工作,畢業後,踏上了將近1年半的公務員生活,之後毅然辭職,離開公務界,即將成為一名資料科學家 (Data Scientest)。這篇文章想簡短分享跨領域之路,主要著重在這段旅程是怎麼開始的,當中經歷了什麼,而我又學到了什麼。
本篇參與的主題策展
在生成式AI與大型語言模型(Large Language Model, LLM)蓬勃發展下,有許多工具可以幫助我們學習與撰寫程式,這篇文章提供了實作範例與一些經驗,分享如何使用ChatGPT(免費的GPT-3.5)協助程式語言的學習,並且完成屬於自己的程式。
前幾個禮拜,AWS 舉行 Startup Day Taiwan。想當然爾,最熱門的主題非生成式 AI (Generative AI) 莫屬。既然 AWS 有現成的工具,身為一名工程師,自然看看無妨,這篇文章算是新手開箱文,會說明如何部署一套基礎模型,並使用 AWS SDK 與其互動。
前言 我在工作中沒有什麼機會接觸到機器學習,學生時期也沒有學習過相關知識。 作為一個業餘小白,我對機器學習非常感興趣。在自學的過程中,我逐漸意識到利用機器學習可以做很多有趣的事情。 因此,我決定嘗試使用 AWS SageMaker JumpStart 來實驗文字生成式繪圖 AI ,以了解機
最近玩到了一個我覺得很新奇有趣的軟體,叫做SillyTavern。 SillyTavern是專用於創建虛擬角色的AI聊天軟體,SillyTavern是TavernAI的分支,但SillyTavern走上了自己的路,加進了許多額外功能,並且仍在積極的持續更新中。 然後,可以色色!
「Prompt」這個詞是提示的意思,但為什麼需要提示呢? 當AI不理解我們的時候,勢必給出的回應並非準確的為我們解答,因此一個好的提示是非常重要的,就如同我們人與人之間的溝通一樣,如何將自己心裡的疑惑轉化成好的問題來提問對方,讓對方理解,進而給出一個明確的答案,這就是提示(Prompt)的重要性,對
在生成式AI與大型語言模型(Large Language Model, LLM)蓬勃發展下,有許多工具可以幫助我們學習與撰寫程式,這篇文章提供了實作範例與一些經驗,分享如何使用ChatGPT(免費的GPT-3.5)協助程式語言的學習,並且完成屬於自己的程式。
前幾個禮拜,AWS 舉行 Startup Day Taiwan。想當然爾,最熱門的主題非生成式 AI (Generative AI) 莫屬。既然 AWS 有現成的工具,身為一名工程師,自然看看無妨,這篇文章算是新手開箱文,會說明如何部署一套基礎模型,並使用 AWS SDK 與其互動。
前言 我在工作中沒有什麼機會接觸到機器學習,學生時期也沒有學習過相關知識。 作為一個業餘小白,我對機器學習非常感興趣。在自學的過程中,我逐漸意識到利用機器學習可以做很多有趣的事情。 因此,我決定嘗試使用 AWS SageMaker JumpStart 來實驗文字生成式繪圖 AI ,以了解機
最近玩到了一個我覺得很新奇有趣的軟體,叫做SillyTavern。 SillyTavern是專用於創建虛擬角色的AI聊天軟體,SillyTavern是TavernAI的分支,但SillyTavern走上了自己的路,加進了許多額外功能,並且仍在積極的持續更新中。 然後,可以色色!
「Prompt」這個詞是提示的意思,但為什麼需要提示呢? 當AI不理解我們的時候,勢必給出的回應並非準確的為我們解答,因此一個好的提示是非常重要的,就如同我們人與人之間的溝通一樣,如何將自己心裡的疑惑轉化成好的問題來提問對方,讓對方理解,進而給出一個明確的答案,這就是提示(Prompt)的重要性,對
你可能也想看
Google News 追蹤
Thumbnail
🎉週年慶限定優惠,10/24 前加入年訂閱再送 1 個月權限! 本專欄將提供給您最新的市場資訊、產業研究、交易心法、潛力股介紹,以上內容並非個股分析,還請各位依據自身狀況作出交易決策。歡迎訂閱支持我,獲得相關內容,也祝您的投資之路順遂! 每年 $990 訂閱方案👉 https://reurl.
Thumbnail
在數位時代,影片成為了許多人分享和傳達訊息的有力工具。影片擁有強大的傳達能力,結合了文字、圖片、音效和動態元素,比閱讀純文字和圖片更有吸引力。 但現在,借助人工智慧(AI)工具的幫助,除了可以根據使用者輸入的提示(Prompt)來生成文字,圖片,音樂等等,甚至還可以生成影片!
Thumbnail
你有沒有想過一個機器可以像人類一樣學習和做出決定的世界?隨著人工智慧(AI)的出現,這不再是一個遙遠的夢想。人工智慧工具是指可以複製人類智慧並執行各種任務的智能機器。
Thumbnail
今年是AI元年,各行各業不管想要不想要都「被迫」與AI同行。到底是同行還是反行?有的人擔心工作被取代,有的人樂見其成讓AI成為生活或工作上的輔助,無論你想不想,不可否認的是AI已經改變我們的生活了。每天AI都有新玩法誕生,社群網路上也有許多應用AI的祕笈或社團,看很多人在文字上的玩法,不如實際自己走
Thumbnail
ChatGPT增加學習效率,該怎麼輸入能產生好的效果呢? 本篇實作範例教大家輸入合適的Prompt來產生好的結果
Thumbnail
這兩週我帶領高中生進行AI輔助設計思考的觀察,國高中生使用ChatGPT,有三大門檻影響他們對於AI工具的掌控能力: 語意表達力 為了完成老師的作業,想使用ChatGDP提供資訊素材,首先他們得先知道作業的目標與其學習的目的,才有辦法用自己的與會請AI提供有用的資訊。 而這個部分也充分考驗老師出題的
Thumbnail
AI的實用工具玲瑯滿目,我現在打算看到有趣和實用的,都直接去試用並介紹給大家。現在一些AI工具是真的能夠大幅提升生產力,讓你一天可以多出好幾個小時,舉例來說,特斯拉的投資者日全長有4個小時,要怎麼樣最快抓到重點呢?
Thumbnail
跟大家說件事情,那就是AI,一定要去理解,才不會被世界淘汰。 現在工具真的太多元。 好比以下這部影片,看的出來是我嘗試製作影片僅一週,而這僅是我一個晚上就產出的實驗性作品嗎? AI腳本、AI剪輯、AI配音、AI字幕AI配樂。 我要做的只是素材的選用、更換、加入音效、配樂、特效的調整。 而我使
Thumbnail
本篇文章在分享親身體驗使用AI輔助創作的過程。文章中可以看到作者第一手的經驗與描述,如何運用ChatGPT、Midjourney、Speech to Text、Autotag等眾多工具來進行輔助,以及最終的成果
Thumbnail
🎉週年慶限定優惠,10/24 前加入年訂閱再送 1 個月權限! 本專欄將提供給您最新的市場資訊、產業研究、交易心法、潛力股介紹,以上內容並非個股分析,還請各位依據自身狀況作出交易決策。歡迎訂閱支持我,獲得相關內容,也祝您的投資之路順遂! 每年 $990 訂閱方案👉 https://reurl.
Thumbnail
在數位時代,影片成為了許多人分享和傳達訊息的有力工具。影片擁有強大的傳達能力,結合了文字、圖片、音效和動態元素,比閱讀純文字和圖片更有吸引力。 但現在,借助人工智慧(AI)工具的幫助,除了可以根據使用者輸入的提示(Prompt)來生成文字,圖片,音樂等等,甚至還可以生成影片!
Thumbnail
你有沒有想過一個機器可以像人類一樣學習和做出決定的世界?隨著人工智慧(AI)的出現,這不再是一個遙遠的夢想。人工智慧工具是指可以複製人類智慧並執行各種任務的智能機器。
Thumbnail
今年是AI元年,各行各業不管想要不想要都「被迫」與AI同行。到底是同行還是反行?有的人擔心工作被取代,有的人樂見其成讓AI成為生活或工作上的輔助,無論你想不想,不可否認的是AI已經改變我們的生活了。每天AI都有新玩法誕生,社群網路上也有許多應用AI的祕笈或社團,看很多人在文字上的玩法,不如實際自己走
Thumbnail
ChatGPT增加學習效率,該怎麼輸入能產生好的效果呢? 本篇實作範例教大家輸入合適的Prompt來產生好的結果
Thumbnail
這兩週我帶領高中生進行AI輔助設計思考的觀察,國高中生使用ChatGPT,有三大門檻影響他們對於AI工具的掌控能力: 語意表達力 為了完成老師的作業,想使用ChatGDP提供資訊素材,首先他們得先知道作業的目標與其學習的目的,才有辦法用自己的與會請AI提供有用的資訊。 而這個部分也充分考驗老師出題的
Thumbnail
AI的實用工具玲瑯滿目,我現在打算看到有趣和實用的,都直接去試用並介紹給大家。現在一些AI工具是真的能夠大幅提升生產力,讓你一天可以多出好幾個小時,舉例來說,特斯拉的投資者日全長有4個小時,要怎麼樣最快抓到重點呢?
Thumbnail
跟大家說件事情,那就是AI,一定要去理解,才不會被世界淘汰。 現在工具真的太多元。 好比以下這部影片,看的出來是我嘗試製作影片僅一週,而這僅是我一個晚上就產出的實驗性作品嗎? AI腳本、AI剪輯、AI配音、AI字幕AI配樂。 我要做的只是素材的選用、更換、加入音效、配樂、特效的調整。 而我使
Thumbnail
本篇文章在分享親身體驗使用AI輔助創作的過程。文章中可以看到作者第一手的經驗與描述,如何運用ChatGPT、Midjourney、Speech to Text、Autotag等眾多工具來進行輔助,以及最終的成果