【5.12】我用 ChatGPT 干的 18 件事!
你確定,你會使用 ChatGPT 了嗎?來自:CSDN,作者:ㄣ知冷煖★
鏈接:https://blog.csdn.net/weixin_42475060/article/details/129399125
今天給大家整理了 18 種 ChatGPT 的用法,看看有哪些方法是你能得上的。
- 1. 語法更正
- 2. 文本翻譯
- 3. 語言轉(zhuǎn)換
- 4. 代碼解釋
- 5. 修復(fù)代碼錯誤
- 6. 作為百科全書
- 7. 信息提取
- 8. 好友聊天
- 9. 創(chuàng)意生成器
- 10. 采訪問題
- 11. 論文大綱
- 12. 故事創(chuàng)作
- 13. 問題類比
- 14. 創(chuàng)建 SQL 需求
- 15. 情感分析
- 16. 將產(chǎn)品描述轉(zhuǎn)變?yōu)閺V告
- 17. 關(guān)鍵字提取
- 18. 閑聊機(jī)器人
1. 語法更正
用途:文章、論文等潤色。

2. 文本翻譯
用途:日常學(xué)習(xí)、商務(wù)翻譯等。

3. 語言轉(zhuǎn)換
Python–>JAVA
用途:工作用途,不同語言工程師之間的合作,更加方便。
import?numpy?as?np
import?plotly.express?as?px
def?thresholding_algo(y,?lag,?threshold):
????"""
????:param?y:?輸入列表
????:param?lag:?滑動窗口大小
????:param threshold:?調(diào)節(jié)系數(shù),用于調(diào)節(jié)容忍范圍的大小。
????:return:
????"""
????# signals:信號列表
????signals?=?np.zeros(len(y))
????avgFilter?=?np.zeros(len(y))
????#?初始化平均值列表、差值列表
????avgFilter[lag?-?1]?=?np.mean(y[0:lag])
????dif_li?=?[0]?*?len(y)
????for?i?in?range(lag,?len(y)):
????????if?i?<?len(y)?-?lag?-?30:
????????????for?j?in?range(i?+?11,?len(y)):
????????????????if?y[j]?>=?y[i?-?1]:
????????????????????break
????????????if?j?>=?len(y)?-?30:
????????????????back?=?y[i?-?1]
????????????else:
????????????????back?=?np.mean(y[j?+?11:j?+?20?+?lag])
????????else:
????????????back?=?y[i?-?1]
????????#?前后均值差值計(jì)算
????????tmp?=?abs(back?-?avgFilter[i?-?1])
????????dif?=?(tmp?if?tmp?>?1?else?1)
????????if?abs(y[i]?-?avgFilter[i?-?1])?>?dif?*?threshold:
????????????signals[i]?=?(1?if?y[i]?>?avgFilter[i?-?1]?else?-1)
????????????avgFilter[i]?=?np.mean(y[(i?-?lag):i])
????????????y[i]?=?avgFilter[i?-?1]
????????else:
????????????signals[i]?=?0
????????????avgFilter[i]?=?np.mean(y[(i?-?lag):i])
????????dif_li[i]?=?dif
????return?dict(signals=np.asarray(signals),
????????????????avgFilter=np.asarray(avgFilter),
????????????????y=np.asarray(y),
????????????????dif=np.asarray(dif_li),
????????????????)

public?static?Map<String,?double[]>?thresholding_algo(double[]?y,?int?lag,?double?threshold)?{
????double[]?signals?=?new?double[y.length];
????double[]?avgFilter?=?new?double[y.length];
????Arrays.fill(avgFilter,?0.0);
????avgFilter[lag?-?1]?=?mean(Arrays.copyOfRange(y,?0,?lag));
????double[]?dif_li?=?new?double[y.length];
????Arrays.fill(dif_li,?0.0);
????for?(int?i?=?lag;?i?<?y.length;?i++)?{
????????int?j;
????????if?(i?<?y.length?-?lag?-?30)?{
????????????for?(j?=?i?+?11;?j?<?y.length;?j++)?{
????????????????if?(y[j]?>=?y[i?-?1])?{
????????????????????break;
????????????????}
????????????}
????????????double?back;
????????????if?(j?>=?y.length?-?30)?{
????????????????back?=?y[i?-?1];
????????????}?else?{
????????????????back?=?mean(Arrays.copyOfRange(y,?j?+?11,?j?+?20?+?lag));
????????????}
????????}?else?{
????????????back?=?y[i?-?1];
????????}
????????double?tmp?=?Math.abs(back?-?avgFilter[i?-?1]);
????????double?dif?=?tmp?>?1???tmp?:?1;
????????if?(Math.abs(y[i]?-?avgFilter[i?-?1])?>?dif?*?threshold)?{
????????????signals[i]?=?y[i]?>?avgFilter[i?-?1]???1?:?-1;
????????????avgFilter[i]?=?mean(Arrays.copyOfRange(y,?i?-?lag,?i));
????????????y[i]?=?avgFilter[i?-?1];
????????}?else?{
????????????signals[i]?=?0;
????????????avgFilter[i]?=?mean(Arrays.copyOfRange(y,?i?-?lag,?i));
????????}
????????dif_li[i]?=?dif;
????}
????Map<String,?double[]>?result?=?new?HashMap<>();
????result.put("signals",?signals);
????result.put("avgFilter",?avgFilter);
????result.put("y",?y);
????result.put("dif",?dif_li);
????return?result;
}
private?static?double?mean(double[]?array)?{
????double?sum?=?0.0;
????for?(double?d?:?array)?{
????????sum?+=?d;
????}
????return?sum?/?array.length;
}
4. 代碼解釋
用途:當(dāng)我們來到一家新的公司,發(fā)現(xiàn)前任工程師留下了一攤誰都看不懂的代碼,這時候,如果有個人能幫我們解釋一下這些代碼是什么意思,那簡直不要太開心。

def?Fusion_algorithm(y_list):
????"""
????最終的融合算法
??? 1、第一次遍歷列表:?處理掉小于上一個值的點(diǎn),使其等于上一個值。
??? 2、第二次使用z-score來處理異常點(diǎn):一種基于統(tǒng)計(jì)方法的時序異常檢測算法借鑒了一些經(jīng)典的統(tǒng)計(jì)方法,比如Z-score和移動平均線
????該算法將時間序列中的每個數(shù)據(jù)點(diǎn)都看作是來自一個正態(tài)分布,通過計(jì)算每個數(shù)據(jù)點(diǎn)與其臨接數(shù)據(jù)點(diǎn)的平均值和標(biāo)準(zhǔn)差,可以獲得Z-score
????并將其用于檢測異常值,將z-score大于3的數(shù)據(jù)點(diǎn)視為異常值,缺點(diǎn):如果異常點(diǎn)太多,則該算法的準(zhǔn)確性較差。
????3、
????:param?y_list:?傳入需要處理的時間序列
????:return:
????"""
????#?第一次處理
????for?i?in?range(1,?len(y_list)):
????????difference?=?y_list[i]?-?y_list[i?-?1]
????????if?difference?<=?0:
????????????y_list[i]?=?y_list[i?-?1]
????????#?基于突變檢測的方法:如果一個數(shù)據(jù)點(diǎn)的值與前一個數(shù)據(jù)點(diǎn)的值之間的差異超過某個閾值,
????????#?則該數(shù)據(jù)點(diǎn)可能是一個突變的異常點(diǎn)。這種方法需要使用一些突變檢測算法,如Z-score突變檢測、CUSUM(Cumulative Sum)
????????#?else:
????????#?????if?abs(difference)?>?2?*?np.mean(y_list[:i]):
????????#?????????y_list[i]?=?y_list[i?-?1]
????#?第二次處理
????#?計(jì)算每個點(diǎn)的移動平均值和標(biāo)準(zhǔn)差
????ma?=?np.mean(y_list)
????#?std?=?np.std(np.array(y_list))
????std?=?np.std(y_list)
????#?計(jì)算Z-score
????z_score?=?[(x?-?ma)?/?std?for?x?in?y_list]
????#?檢測異常值
????for?i?in?range(len(y_list)):
????????#?如果z-score大于3,則為異常點(diǎn),去除
????????if?z_score[i]?>?3:
????????????print(y_list[i])
????????????y_list[i]?=?y_list[i?-?1]
????return?y_list

備注:上一個代碼解釋,我們可以看到,答案或許受到了代碼中注釋的影響,我們刪掉注釋,再來一次。對于解釋中一些不懂的點(diǎn),我們可以連續(xù)追問!

import?numpy?as?np
from?sklearn.ensemble?import?IsolationForest
import?plotly.express?as?px
import?matplotlib.pyplot?as?plt
from?sklearn.cluster?import?KMeans
import?json
def?Fusion_algorithm(y_list):
????for?i?in?range(1,?len(y_list)):
????????difference?=?y_list[i]?-?y_list[i?-?1]
????????if?difference?<=?0:
????????????y_list[i]?=?y_list[i?-?1]
????
????????#?else:
????????#?????if?abs(difference)?>?2?*?np.mean(y_list[:i]):
????????#?????????y_list[i]?=?y_list[i?-?1]
????ma?=?np.mean(y_list)
????std?=?np.std(y_list)
????z_score?=?[(x?-?ma)?/?std?for?x?in?y_list]
????for?i?in?range(len(y_list)):
????????if?z_score[i]?>?3:
????????????print(y_list[i])
????????????y_list[i]?=?y_list[i?-?1]
????return?y_list


5. 修復(fù)代碼錯誤
用途:寫完一段代碼后發(fā)現(xiàn)有錯誤?讓 ChatGPT 來幫你!

###?Buggy?Python
import?Random
a?=?random.randint(1,12)
b?=?random.randint(1,12)
for?i?in?range(10):
????question?=?"What?is?"+a+"?x?"+b+"??"
????answer?=?input(question)
????if?answer?=?a*b
????????print?(Well?done!)
????else:
????????print("No.")

6. 作為百科全書
用途:ChatGPT 可以解釋你所有的問題!但是列出小說這個功能有些拉胯,經(jīng)過測試只有科幻小說列得還可以,其他類型不太行,可能 ChatGPT 訓(xùn)練工程師是個科幻迷!

7. 信息提取
用途:作為自然語言處理界的大模型,怎么能少得了信息提取呢?

8. 好友聊天
用途:輸入對方性格模擬聊天,這方面功能不太完善,可能有新鮮玩法我還沒有挖掘出來。


9. 創(chuàng)意生成器
用途:是不是常常會在創(chuàng)新上遇到思維瓶頸不知道怎么做?不要擔(dān)心,讓 ChatGPT 幫你生成創(chuàng)意!
VR 和密室結(jié)合

再結(jié)合 AR

10. 采訪問題
用途:可能您是一個媒體工作者,采訪問題不知道怎么寫?ChatGPT 可以幫您解決。
采訪問題清單

采訪問題清單并給出相應(yīng)答案

11. 論文大綱
用途:這個功能對于研究生簡直不要太爽了,一直在郁悶大綱怎么寫,直接列出來大綱簡直幫了我天大的忙!對于大綱中不理解的點(diǎn),直接要求 ChatGPT 給出進(jìn)一步解釋。代碼也可以有!哪一章的內(nèi)容不太會寫,直接讓 ChatGPT 安排,這樣,一篇論文很快就寫出來啦!
創(chuàng)建論文大綱

解釋大綱內(nèi)容

class?PBA(nn.Module):
????def?__init__(self,?PerformanceThreshold,?DistributionType,?AttentionWeightRange):
????????super(PBA,?self).__init__()
????????self.PerformanceThreshold?=?PerformanceThreshold
????????self.DistributionType?=?DistributionType
????????self.AttentionWeightRange?=?AttentionWeightRange
????????
????def?forward(self,?input,?performance_scores):
????????#?計(jì)算注意力分?jǐn)?shù)
????????attention_scores?=?[]
????????for?i?in?range(len(input)):
????????????if?performance_scores[i]?>?self.PerformanceThreshold:
????????????????attention_scores.append(performance_scores[i])
????????????else:
????????????????attention_scores.append(0.0)
????????????????
????????#?將性能分?jǐn)?shù)映射到注意力權(quán)重
????????if?self.DistributionType?==?"softmax":
????????????attention_weights?=?F.softmax(torch.tensor(attention_scores),?dim=0)
????????elif?self.DistributionType?==?"sigmoid":
????????????attention_weights?=?torch.sigmoid(torch.tensor(attention_scores))
????????else:
????????????raise?ValueError("Unknown?distribution?type:?{}".format(self.DistributionType))
????????
????????#?縮放注意力權(quán)重到指定范圍
????????attention_weights?=?attention_weights?*?(self.AttentionWeightRange[1]?-?self.AttentionWeightRange[0])?+?self.AttentionWeightRange[0]
????????
????????#?計(jì)算加權(quán)輸入
????????weighted_input?=?torch.mul(input,?attention_weights.unsqueeze(1).expand_as(input))
????????output?=?torch.sum(weighted_input,?dim=0)
????????
????????return?output
12. 故事創(chuàng)作
用途:這個功能真的太太太棒了,以后我自己列提綱出來就可以寫小說啦!
愛情故事

恐怖故事


13. 問題類比
用途:當(dāng)你想要做一個比喻時,這是一個很棒的功能。

14. 創(chuàng)建 SQL 需求
用途:寫 SQL 有時候挺頭疼的,想好久想不起來。

15. 情感分析
用途:這個功能讓我想起來在之前公司做的情感分析任務(wù)了。

16. 將產(chǎn)品描述轉(zhuǎn)變?yōu)閺V告
用途:這個功能對于商家來說太棒了。

17. 關(guān)鍵字提取
用途:NLP 任務(wù)的重要作用,關(guān)鍵字提取!

18. 閑聊機(jī)器人
用途:這個不多說了,用來閑聊體驗(yàn)感真的很不錯。


總結(jié)
我覺得角色扮演挺有意思的,對話前加一句:假如你是 xxx。
現(xiàn)在有一些小程序,讓 AI 扮演一些角色對話,就是用這種方法實(shí)現(xiàn)的。
---END---
