用 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的極限:他對理解表格訊息的理解,是一個大罩門。原因我大概想了幾點,之後有機會再繼續!
關於這個讓人渾身難受的任務,現在已經看見希望的曙光了。

avatar-img
14會員
14內容數
大數據意味著什麼?數據科學背後有怎樣的mind set和技術?數據科學家又做些什麼?這些科技/技術,帶給我們什麼生活上和人文上的省思?這個專題會橫跨這些彼此相關的面向,避開生澀的專業詞彙,探索這些事情背後的樣貌。應該會是有趣的知識和想法分享﹝笑﹞
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Darren的沙龍 的其他內容
在英國與老師對嗆?! 先說個故事吧,以前在英國讀書的時候,去選修了一堂數學系的課。 那位老師嚴格要求,選修的學生必須是數學系的學生。如果不是,那學生必須說明自己擁有夠強的數學能力。 我不是數學系的學生,可我終究是吃硬柿子的人。因為我知道,若想加強數學的底子,就必須到這裡來──後來還是去上課了。 上了
這篇文放草稿太久了,放到連GPT4都生出來了。不過沒差,內容通用。 在系列文第一篇,就提到了GPT框架中有對人類語意回饋的學習機制。這機制有個專有名詞,叫強化學習 (Reinforcement Learning)。這讓機器不純粹依著既有資料模式,優化並生成預測;反而讓機器有更強的能力,去因應不同環境
現在這個充滿GPT開箱的年代,做什麼實測都感覺落伍。不過我覺得本文這兩個實測,即便不是最新穎,也算是方便好用且有益於生產力。 工作中,對我來說最困難的事情,就是快速量產。這裡寫兩個使用ChatGPT的案例,一個是寫作,一個是寫程式。後者是我的工作,我讓GPT融入我日常工作。 而下面二個實例,純展示結
ChatGPT剛推出時,我們辦公室討論紛紛,我馬上去玩了一下。當時心態很惡搞,詢問GPT什麼是蜥蜴人、女王是不是蜥蜴人 ﹝註:蜥蜴人是在都市傳說中常被提到的外星生物﹞。他的回答都說蜥蜴人只是一種虛構生物。好吧,我想這大抵符合人類的認知! 隔了幾天,我又去問GPT,什麼是蜥蜴人,他竟然告訴我,他不知道
在英國與老師對嗆?! 先說個故事吧,以前在英國讀書的時候,去選修了一堂數學系的課。 那位老師嚴格要求,選修的學生必須是數學系的學生。如果不是,那學生必須說明自己擁有夠強的數學能力。 我不是數學系的學生,可我終究是吃硬柿子的人。因為我知道,若想加強數學的底子,就必須到這裡來──後來還是去上課了。 上了
這篇文放草稿太久了,放到連GPT4都生出來了。不過沒差,內容通用。 在系列文第一篇,就提到了GPT框架中有對人類語意回饋的學習機制。這機制有個專有名詞,叫強化學習 (Reinforcement Learning)。這讓機器不純粹依著既有資料模式,優化並生成預測;反而讓機器有更強的能力,去因應不同環境
現在這個充滿GPT開箱的年代,做什麼實測都感覺落伍。不過我覺得本文這兩個實測,即便不是最新穎,也算是方便好用且有益於生產力。 工作中,對我來說最困難的事情,就是快速量產。這裡寫兩個使用ChatGPT的案例,一個是寫作,一個是寫程式。後者是我的工作,我讓GPT融入我日常工作。 而下面二個實例,純展示結
ChatGPT剛推出時,我們辦公室討論紛紛,我馬上去玩了一下。當時心態很惡搞,詢問GPT什麼是蜥蜴人、女王是不是蜥蜴人 ﹝註:蜥蜴人是在都市傳說中常被提到的外星生物﹞。他的回答都說蜥蜴人只是一種虛構生物。好吧,我想這大抵符合人類的認知! 隔了幾天,我又去問GPT,什麼是蜥蜴人,他竟然告訴我,他不知道
你可能也想看
Google News 追蹤
Thumbnail
我很鼓勵投資人不要只投資台股,對股市有一點熟悉度後,建議範圍擴況大到美股,甚至是投資全球。因為台股僅是單一國家/市場,如果能將資產投資到其他國家,風險會更分散,機會也更多,特別是美國股市。 美股會很難懂嗎?我相信你認識的美國企業可能會比台灣企業多,我從標普500成分股前15大企業裡隨便抓十
Thumbnail
美股因多家熱門話題與龍頭企業市值快速增長受到關注,本文介紹如何透過國泰世華CUBE App 開設台股及美股複委託帳戶、定期理財的便利性。 定期投資適合單筆資金有限、經驗不多的理財小白、上班族,或者忙碌、沒時間研究基本面的朋友,國泰世華CUBE App美股定額投資功能,操作便利性幾乎完勝海外券商。
Thumbnail
這是張老師的第三本書,我想前二本應該也有很多朋友們都有讀過,我想絕對是受益良多,而這次在書名上就直接點出,著重在從投資的角度來切入
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
我很鼓勵投資人不要只投資台股,對股市有一點熟悉度後,建議範圍擴況大到美股,甚至是投資全球。因為台股僅是單一國家/市場,如果能將資產投資到其他國家,風險會更分散,機會也更多,特別是美國股市。 美股會很難懂嗎?我相信你認識的美國企業可能會比台灣企業多,我從標普500成分股前15大企業裡隨便抓十
Thumbnail
美股因多家熱門話題與龍頭企業市值快速增長受到關注,本文介紹如何透過國泰世華CUBE App 開設台股及美股複委託帳戶、定期理財的便利性。 定期投資適合單筆資金有限、經驗不多的理財小白、上班族,或者忙碌、沒時間研究基本面的朋友,國泰世華CUBE App美股定額投資功能,操作便利性幾乎完勝海外券商。
Thumbnail
這是張老師的第三本書,我想前二本應該也有很多朋友們都有讀過,我想絕對是受益良多,而這次在書名上就直接點出,著重在從投資的角度來切入
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能夠迎頭趕上人類的能力,畢竟價值和意義是人賦予的,抽象的意志、選擇機器是無法透過資料學習的。