用 AI 實際解決工作問題!這種讓人痛苦的工作,還是讓AI來吧

閱讀時間約 11 分鐘
示範程式碼:作者提供
這篇來寫,嘗試用GPT4解決工作中,一個讓我渾身難受的問題。

任務說明

我要做的事情是,把word檔中表格的部分資訊擷取出來。下圖的示範表格即是一例。
表1. 真實世界中要處理的表格範例 (擷取)
我需要存取表格中特定元素資訊,例如 Net Calorific Value,我得存下Min. 4,750這個訊息,同理可知,Total Sulfur的話,我需要記下他是 Max. 0.6。

背景 (涉及一點技術上的名詞)

先前的作法是,我用python的docx讀取word檔案,並且識別文件中可能存在的「表格」。第二步用正則表達式──如果不知道這是啥,就把它當作是一個找尋規則的方法──根據表格型態不同,擷取出目標元素的對應數值。
然而,這個方法令人痛苦......。因為這些word表格是人手去填的,規則不一。例如,可能有人會把Net Calorific Value寫在第三個列,有些人把他寫去第四列;有人的4,750有加逗號,有的沒有加(4750)。
這就導致了我所寫的規則,永遠都有例外,以至於這個工作長期停滯不前。執行上竟然花了兩周,才完成了20%的資料整理。

來點 AI !

仔細想想,應該讓AI來幫忙才對,因為AI適合在不規則中歸納訊息。怎麼做?
展示一下測試用的程式碼。
'''
1 接續前面步驟,讀取word檔並偵測出表格
2 回傳結果tables
'''
print(tables[3]) # 查看眾多tables中的第4個table,即本文的表1
這是一個二維的列表如下。
[['Item', 'Unit ', 'Limit of Range'],  
 ['Total Moisture (TM) \n(As received basis)', '% WT', 'Max. 28'],  
 ['Volatile Matter (Air dried basis)\nFixed Carbon (Air dried basis)\nAsh (Air dried basis)',   '% WT\n% WT\n% WT',   'Min. 22∼Max. 45\nMax. 60\nMax. 17'],  
 ['Total Sulfur (As received basis)', '% WT', 'Max. 0.6'],  
 ['Grindability (HGI)', '', 'Min. 45~Max. 65'],  
 ['(As Received Basis)\nGross Calorific Value\nNet Calorific Value *',   '\nkcal/kg\nkcal/kg',   '\n\nMin. 4,750'],  
 ['Nitrogen (Dry ash free basis)', '% WT', 'Max. 2.2'],  
 ['Ash Fusion Temperature (IDT) \n(Reducing Atmosphere)  ',   'oC',   'Min. 1,150'],  
 ['CSN(Crucible Swelling Number)', '', 'Less than 2\n(0≤CSN<2)'],  
 ['Mercury(HG)', '㎍/g', ''],  
 ['Ash Analysis\nSiO₂\nFe₂O₃\nNa₂O\nK₂O',   '\n% WT\n% WT\n% WT\n% WT',   '\nMax. 70\nMax. 16\nMax. 2\nMax. 3'],  
 ['Size Distribution\nAbove  50mm\nUnder  2mm \nUnder  0.25mm',   '\n%\n%\n%',   '\nMax. 5\nMax. 40\nMax. 17']
]
這個表格,就是本文表例1的完整長相,現在變成python列表。
我要讓AI理解這個列表,並且摘要出我需要的元素數值。
下面做的事情很簡單,就是把前面python 列表所有元素,全部都融合為一段文字,很長的文字。
import openai
openai.api_key = TOKEN # 輸入你的API KEY
tb_specs = tables[3] # 本文的表1
output_txt = ""
for sub_lst in tb_specs:
  for ele in sub_lst:
    output_txt += " " + ele.strip("\n")
print(output_txt)
產出如下,所有的列/欄位名稱與數值,通通都混在一起,變成一串很長的文字。
' Item Unit  Limit of Range Total Moisture (TM) \n(As received basis) % WT Max. 28 Volatile Matter (Air dried basis)\nFixed Carbon (Air dried basis)\nAsh (Air dried basis) % WT\n% WT\n% WT Min. 22∼Max. 45\nMax. 60\nMax. 17 Total Sulfur (As received basis) % WT Max. 0.6 Grindability (HGI)  Min. 45~Max. 65 (As Received Basis)\nGross Calorific Value\nNet Calorific Value * kcal/kg\nkcal/kg Min. 4,750 Nitrogen (Dry ash free basis) % WT Max. 2.2 Ash Fusion Temperature (IDT) \n(Reducing Atmosphere)   oC Min. 1,150 CSN(Crucible Swelling Number)  Less than 2\n(0≤CSN<2) Mercury(HG) ㎍/g  Ash Analysis\nSiO₂\nFe₂O₃\nNa₂O\nK₂O % WT\n% WT\n% WT\n% WT Max. 70\nMax. 16\nMax. 2\nMax. 3 Size Distribution\nAbove  50mm\nUnder  2mm \nUnder  0.25mm %\n%\n% Max. 5\nMax. 40\nMax. 17'
再來如下,把那串長字丟到ChatGPT裡面,讓他閱讀與回答。
選用模型 (model) 為GPT4。在message參數中,輸入你要他做的事情 (input),餵給他剛才那個很長很長的文字串(output_txt)。
input = "請將內容整理成表格, 並告訴我 Net Calorific Value的數值, 回傳數字(要包含Min, Max)但不要回傳出表格"
completion = openai.ChatCompletion.create(
  model="gpt-4",
  messages=[
    {"role": "system", "content": input},
    {"role": "user", "content": output_txt},
  ]
)
然後察看結果
print(completion.choices[0].message.content)
'Net Calorific Value 的數值範圍是:最小值 4,750 kcal/kg,最大值未提供。'
回應內容非常正確,Net Calorific Value的數值範圍,就是Min. 4,750,你可以回去看一下表1。
如果我想看Total Sulfur,不知道能否做到?如法炮製前面的步驟,只是換一個問題。
input = "請將內容整理成表格, 並告訴我 Total Sulfur (As received basis) 的數值, 回傳數字(要包含Min, Max, 如果有的話)但不要回傳出表格"
completion = openai.ChatCompletion.create(
model="gpt-4",
messages=[
  {"role": "system", "content": input},
  {"role": "user", "content": output_txt},
 ]
)
print(completion.choices[0].message.content)
'Total Sulfur (As received basis) 的數值為 % WT Max. 0.6。'
結果還是對的!

兩種後續嘗試

1. 我會繼續用上述方式,找尋其他更多我要的資訊,如果都能成功,我就可以減輕寫複雜程式的痛苦。
2. 嘗試下出更好的input,也就是讓GPT4直接吐給出我想要的數值。目前他的回答都是一串完整的句子,其實我不用,我比較需要這樣形式:
Net Calorific Value: Min. 4,750
這樣資料整理起來就更輕鬆。

三個心得

1. 我覺得GPT4非常強大,我們給他讀的是一串混亂的文字,他竟然能理解出哪個數字對應哪個名稱。他的理解力確實不一般,我還有其他領域的嘗試,也發現了這點──之後有機會繼續分享!
2. 問問題的能力很重要。
我是經過反覆試驗,了解到怎麼樣的問法才是合適的問法,並讓GPT明白如何回答。請看我上面程式碼,我是先叫 GPT 把輸入那串複雜文字,整理成「表格」,再讓他回傳 Net Calorific Value 的數字。如果沒有整表格這一步,他回傳任何數字都是錯的。
3. 也因此,我們注意到ChatGPT的極限:他對理解表格訊息的理解,是一個大罩門。原因我大概想了幾點,之後有機會再繼續!
關於這個讓人渾身難受的任務,現在已經看見希望的曙光了。

14會員
14內容數
大數據意味著什麼?數據科學背後有怎樣的mind set和技術?數據科學家又做些什麼?這些科技/技術,帶給我們什麼生活上和人文上的省思?這個專題會橫跨這些彼此相關的面向,避開生澀的專業詞彙,探索這些事情背後的樣貌。應該會是有趣的知識和想法分享﹝笑﹞
留言0
查看全部
發表第一個留言支持創作者!
Darren的沙龍 的其他內容
在英國與老師對嗆?! 先說個故事吧,以前在英國讀書的時候,去選修了一堂數學系的課。 那位老師嚴格要求,選修的學生必須是數學系的學生。如果不是,那學生必須說明自己擁有夠強的數學能力。 我不是數學系的學生,可我終究是吃硬柿子的人。因為我知道,若想加強數學的底子,就必須到這裡來──後來還是去上課了。 上了
這篇文放草稿太久了,放到連GPT4都生出來了。不過沒差,內容通用。 在系列文第一篇,就提到了GPT框架中有對人類語意回饋的學習機制。這機制有個專有名詞,叫強化學習 (Reinforcement Learning)。這讓機器不純粹依著既有資料模式,優化並生成預測;反而讓機器有更強的能力,去因應不同環境
現在這個充滿GPT開箱的年代,做什麼實測都感覺落伍。不過我覺得本文這兩個實測,即便不是最新穎,也算是方便好用且有益於生產力。 工作中,對我來說最困難的事情,就是快速量產。這裡寫兩個使用ChatGPT的案例,一個是寫作,一個是寫程式。後者是我的工作,我讓GPT融入我日常工作。 而下面二個實例,純展示結
ChatGPT剛推出時,我們辦公室討論紛紛,我馬上去玩了一下。當時心態很惡搞,詢問GPT什麼是蜥蜴人、女王是不是蜥蜴人 ﹝註:蜥蜴人是在都市傳說中常被提到的外星生物﹞。他的回答都說蜥蜴人只是一種虛構生物。好吧,我想這大抵符合人類的認知! 隔了幾天,我又去問GPT,什麼是蜥蜴人,他竟然告訴我,他不知道
在英國與老師對嗆?! 先說個故事吧,以前在英國讀書的時候,去選修了一堂數學系的課。 那位老師嚴格要求,選修的學生必須是數學系的學生。如果不是,那學生必須說明自己擁有夠強的數學能力。 我不是數學系的學生,可我終究是吃硬柿子的人。因為我知道,若想加強數學的底子,就必須到這裡來──後來還是去上課了。 上了
這篇文放草稿太久了,放到連GPT4都生出來了。不過沒差,內容通用。 在系列文第一篇,就提到了GPT框架中有對人類語意回饋的學習機制。這機制有個專有名詞,叫強化學習 (Reinforcement Learning)。這讓機器不純粹依著既有資料模式,優化並生成預測;反而讓機器有更強的能力,去因應不同環境
現在這個充滿GPT開箱的年代,做什麼實測都感覺落伍。不過我覺得本文這兩個實測,即便不是最新穎,也算是方便好用且有益於生產力。 工作中,對我來說最困難的事情,就是快速量產。這裡寫兩個使用ChatGPT的案例,一個是寫作,一個是寫程式。後者是我的工作,我讓GPT融入我日常工作。 而下面二個實例,純展示結
ChatGPT剛推出時,我們辦公室討論紛紛,我馬上去玩了一下。當時心態很惡搞,詢問GPT什麼是蜥蜴人、女王是不是蜥蜴人 ﹝註:蜥蜴人是在都市傳說中常被提到的外星生物﹞。他的回答都說蜥蜴人只是一種虛構生物。好吧,我想這大抵符合人類的認知! 隔了幾天,我又去問GPT,什麼是蜥蜴人,他竟然告訴我,他不知道
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
本文介紹瞭如何使用 Excel VBA 解決規劃求解問題的實際案例,並展示了「回溯算法」(Backtracking) 的應用。通過此案例,專業人士可以更好地理解並利用數據,進而在商業環境中做出更精確的決策。
Thumbnail
在這堂課程中,您將學會如何輕鬆地註冊和登入Midjourney的專業平台,了解如何運用AI繪圖技術來創造和生成設計概念;您可以選擇多種設計風格和主題,加入自己的創意思維,Midjourney將迅速為您產出獨特的設計概念圖,當然除了Midjourney,用其他AI生成式設計平台也能完成類似的功能!
Thumbnail
在現代商業世界中,產品照片是吸引客戶的關鍵。然而,當檔期越來越近,而你的產品照片卻還遙遙無期時,你可能會開始感到緊張。除了一般常見的3D建模和實物拍攝之外,現在還有一個更快速的方法可以打造出令人印象深刻的產品照片,那就是使用Photoshop(PS)和Midjourney。本文將為您介紹如何使用這兩
運用最尖端的AI技術來迭代你的思考和創作中,你的心態將是成功的關鍵。
Thumbnail
每次找圖片時翻遍了整個網站都找不到一張適合的圖,倒不如自己做……等等,這不就是AI能辦到的嗎?沒錯,本篇文章就是要與大家分享,如何利用 AI 生成圖片,打造自己的圖片素材庫!
Thumbnail
感謝AI和線上免費軟體的幫忙,讓我完成了第一本英文繪本童書並且在Amazon上架。這篇文章要手把手地把我的經驗分享給大家,讓大家一起加入創作者的行列。 這篇介紹了我使用的線上AI軟體以及需要使用到的網站,準備工作做好就可以開始創作囉!
Thumbnail
在OpenAI ChatGPT 橫空出世以來,AI 產業正處於蓬勃高速發展的階段,一種FOMO的氛圍在資本市場和科技圈熱炒,有填不完的排隊名單讓大家試用最新的AI 產品,由於步伐真的迭代太快,一個又一個衝擊未來的產品也讓更多人產生焦慮。這篇和大家梳理一下過程,以及目前有發現實用的AI工具。
Thumbnail
AI的實用工具玲瑯滿目,我現在打算看到有趣和實用的,都直接去試用並介紹給大家。現在一些AI工具是真的能夠大幅提升生產力,讓你一天可以多出好幾個小時,舉例來說,特斯拉的投資者日全長有4個小時,要怎麼樣最快抓到重點呢?
Thumbnail
用AI繪圖實戰詳細分析,如何將AI運用到工作中,高速產出想要的設計。
Thumbnail
創作之所以有魅力,還有那些隱藏在作品背後的故事,而故事要能感動人、啟發人,還是要能真正懂人,至少這點不會是短期內AI能夠迎頭趕上人類的能力,畢竟價值和意義是人賦予的,抽象的意志、選擇機器是無法透過資料學習的。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
本文介紹瞭如何使用 Excel VBA 解決規劃求解問題的實際案例,並展示了「回溯算法」(Backtracking) 的應用。通過此案例,專業人士可以更好地理解並利用數據,進而在商業環境中做出更精確的決策。
Thumbnail
在這堂課程中,您將學會如何輕鬆地註冊和登入Midjourney的專業平台,了解如何運用AI繪圖技術來創造和生成設計概念;您可以選擇多種設計風格和主題,加入自己的創意思維,Midjourney將迅速為您產出獨特的設計概念圖,當然除了Midjourney,用其他AI生成式設計平台也能完成類似的功能!
Thumbnail
在現代商業世界中,產品照片是吸引客戶的關鍵。然而,當檔期越來越近,而你的產品照片卻還遙遙無期時,你可能會開始感到緊張。除了一般常見的3D建模和實物拍攝之外,現在還有一個更快速的方法可以打造出令人印象深刻的產品照片,那就是使用Photoshop(PS)和Midjourney。本文將為您介紹如何使用這兩
運用最尖端的AI技術來迭代你的思考和創作中,你的心態將是成功的關鍵。
Thumbnail
每次找圖片時翻遍了整個網站都找不到一張適合的圖,倒不如自己做……等等,這不就是AI能辦到的嗎?沒錯,本篇文章就是要與大家分享,如何利用 AI 生成圖片,打造自己的圖片素材庫!
Thumbnail
感謝AI和線上免費軟體的幫忙,讓我完成了第一本英文繪本童書並且在Amazon上架。這篇文章要手把手地把我的經驗分享給大家,讓大家一起加入創作者的行列。 這篇介紹了我使用的線上AI軟體以及需要使用到的網站,準備工作做好就可以開始創作囉!
Thumbnail
在OpenAI ChatGPT 橫空出世以來,AI 產業正處於蓬勃高速發展的階段,一種FOMO的氛圍在資本市場和科技圈熱炒,有填不完的排隊名單讓大家試用最新的AI 產品,由於步伐真的迭代太快,一個又一個衝擊未來的產品也讓更多人產生焦慮。這篇和大家梳理一下過程,以及目前有發現實用的AI工具。
Thumbnail
AI的實用工具玲瑯滿目,我現在打算看到有趣和實用的,都直接去試用並介紹給大家。現在一些AI工具是真的能夠大幅提升生產力,讓你一天可以多出好幾個小時,舉例來說,特斯拉的投資者日全長有4個小時,要怎麼樣最快抓到重點呢?
Thumbnail
用AI繪圖實戰詳細分析,如何將AI運用到工作中,高速產出想要的設計。
Thumbnail
創作之所以有魅力,還有那些隱藏在作品背後的故事,而故事要能感動人、啟發人,還是要能真正懂人,至少這點不會是短期內AI能夠迎頭趕上人類的能力,畢竟價值和意義是人賦予的,抽象的意志、選擇機器是無法透過資料學習的。