我用 ChatGPT 干的 18 件事!
大廠技術(shù) 高級前端 Node進(jìn)階
點(diǎn)擊上方 程序員成長指北,關(guān)注公眾號
回復(fù)1,加入高級Node交流群
你確定,你會(huì)使用 ChatGPT 了嗎?
今天給大家整理了 18 種 ChatGPT 的用法,看看有哪些方法是你能得上的。
語法更正
文本翻譯
語言轉(zhuǎn)換
代碼解釋
修復(fù)代碼錯(cuò)誤
作為百科全書
信息提取
好友聊天
創(chuàng)意生成器
采訪問題
論文大綱
故事創(chuàng)作
問題類比
創(chuàng)建 SQL 需求
情感分析
將產(chǎn)品描述轉(zhuǎn)變?yōu)閺V告
關(guān)鍵字提取
閑聊機(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: 滑動(dòng)窗口大小
: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)前任工程師留下了一攤誰都看不懂的代碼,這時(shí)候,如果有個(gè)人能幫我們解釋一下這些代碼是什么意思,那簡直不要太開心。

def Fusion_algorithm(y_list):
"""
最終的融合算法
1、第一次遍歷列表: 處理掉小于上一個(gè)值的點(diǎn),使其等于上一個(gè)值。
2、第二次使用z-score來處理異常點(diǎn):一種基于統(tǒng)計(jì)方法的時(shí)序異常檢測算法借鑒了一些經(jīng)典的統(tǒng)計(jì)方法,比如Z-score和移動(dòng)平均線
該算法將時(shí)間序列中的每個(gè)數(shù)據(jù)點(diǎn)都看作是來自一個(gè)正態(tài)分布,通過計(jì)算每個(gè)數(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: 傳入需要處理的時(shí)間序列
: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]
# 基于突變檢測的方法:如果一個(gè)數(shù)據(jù)點(diǎn)的值與前一個(gè)數(shù)據(jù)點(diǎn)的值之間的差異超過某個(gè)閾值,
# 則該數(shù)據(jù)點(diǎn)可能是一個(gè)突變的異常點(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ì)算每個(gè)點(diǎn)的移動(dòng)平均值和標(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

備注:上一個(gè)代碼解釋,我們可以看到,答案或許受到了代碼中注釋的影響,我們刪掉注釋,再來一次。對于解釋中一些不懂的點(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ù)代碼錯(cuò)誤
用途:寫完一段代碼后發(fā)現(xiàn)有錯(cuò)誤?讓 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 可以解釋你所有的問題!但是列出小說這個(gè)功能有些拉胯,經(jīng)過測試只有科幻小說列得還可以,其他類型不太行,可能 ChatGPT 訓(xùn)練工程師是個(gè)科幻迷!

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

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


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

再結(jié) AR

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

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

11. 論文大綱
用途:這個(gè)功能對于研究生簡直不要太爽了,一直在郁悶大綱怎么寫,直接列出來大綱簡直幫了我天大的忙!對于大綱中不理解的點(diǎn),直接要求 ChatGPT 給出進(jìn)一步解釋。代碼也可以有!哪一章的內(nèi)容不太會(huì)寫,直接讓 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)作
用途:這個(gè)功能真的太太太棒了,以后我自己列提綱出來就可以寫小說啦!
愛情故事

恐怖故事


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

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

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

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

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

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


總結(jié)
我覺得角色扮演挺有意思的,對話前加一句:假如你是 xxx。
現(xiàn)在有一些小程序,讓 AI 扮演一些角色對話,就是用這種方法實(shí)現(xiàn)的。
版權(quán)聲明:本文為 CSDN 博主「ㄣ知冷煖★」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。
原文鏈接:
https://blog.csdn.net/weixin_42475060/article/details/129399125
Node 社群
我組建了一個(gè)氛圍特別好的 Node.js 社群,里面有很多 Node.js小伙伴,如果你對Node.js學(xué)習(xí)感興趣的話(后續(xù)有計(jì)劃也可以),我們可以一起進(jìn)行Node.js相關(guān)的交流、學(xué)習(xí)、共建。下方加 考拉 好友回復(fù)「Node」即可。
“分享、點(diǎn)贊、在看” 支持一下
