ChatGPT 干的 18 件事!
來源:
奇酷教育 發(fā)表于:
ChatGPT 干的 18 件事!
18 種 ChatGPT 的用法,看看有哪些方法是你能得上的:
1. 語法更正
2. 文本翻譯
3. 語言轉換
4. 代碼解釋
5. 修復代碼錯誤
6. 作為百科全書
7. 信息提取
8. 好友聊天
9. 創(chuàng)意生成器
10. 采訪問題
11. 論文大綱
12. 故事創(chuàng)作
13. 問題類比
14. 創(chuàng)建 SQL 需求
15. 情感分析
16. 將產品描述轉變?yōu)閺V告
17. 關鍵字提取
18. 閑聊機器人
1. 語法更正
用途:文章、論文等潤色。
2. 文本翻譯
用途:日常學習、商務翻譯等。
3. 語言轉換
Python–>JAVA
用途:工作用途,不同語言工程師之間的合作,更加方便。
import numpy as np
import plotly.express as px
def thresholding_algo(y, lag, threshold):
:param y: 輸入列表
:param lag: 滑動窗口大小
:param threshold: 調節(jié)系數,用于調節(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]
# 前后均值差值計算
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 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 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. 代碼解釋
用途:當我們來到一家新的公司,發(fā)現(xiàn)前任工程師留下了一攤誰都看不懂的代碼,這時候,如果有個人能幫我們解釋一下這些代碼是什么意思,那簡直不要太開心。
def Fusion_algorithm(y_list):
最終的融合算法
1、第一次遍歷列表: 處理掉小于上一個值的點,使其等于上一個值。
2、第二次使用z-score來處理異常點:一種基于統(tǒng)計方法的時序異常檢測算法借鑒了一些經典的統(tǒng)計方法,比如Z-score和移動平均線
該算法將時間序列中的每個數據點都看作是來自一個正態(tài)分布,通過計算每個數據點與其臨接數據點的平均值和標準差,可以獲得Z-score
并將其用于檢測異常值,將z-score大于3的數據點視為異常值,缺點:如果異常點太多,則該算法的準確性較差。
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]
# 基于突變檢測的方法:如果一個數據點的值與前一個數據點的值之間的差異超過某個閾值,
# 則該數據點可能是一個突變的異常點。這種方法需要使用一些突變檢測算法,如Z-score突變檢測、CUSUM(Cumulative Sum)
# 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(np.array(y_list))
std = np.std(y_list)
# 計算Z-score
z_score = [(x - ma) / std for x in y_list]
# 檢測異常值
for i in range(len(y_list)):
# 如果z-score大于3,則為異常點,去除
if z_score[i] > 3:
print(y_list[i])
y_list[i] = y_list[i - 1]
return y_list
備注:上一個代碼解釋,我們可以看到,答案或許受到了代碼中注釋的影響,我們刪掉注釋,再來一次。對于解釋中一些不懂的點,我們可以連續(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ā)現(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 可以解釋你所有的問題!但是列出小說這個功能有些拉胯,經過測試只有科幻小說列得還可以,其他類型不太行,可能 ChatGPT 訓練工程師是個科幻迷!
7. 信息提取
用途:作為自然語言處理界的大模型,怎么能少得了信息提取呢?
8. 好友聊天
用途:輸入對方性格模擬聊天,這方面功能不太完善,可能有新鮮玩法我還沒有挖掘出來。
9. 創(chuàng)意生成器
用途:是不是常常會在創(chuàng)新上遇到思維瓶頸不知道怎么做?不要擔心,讓 ChatGPT 幫你生成創(chuàng)意!
再結合 AR
10. 采訪問題
用途:可能您是一個媒體工作者,采訪問題不知道怎么寫?ChatGPT 可以幫您解決。
采訪問題清單
采訪問題清單并給出相應答案
11. 論文大綱
用途:這個功能對于研究生簡直不要太爽了,一直在郁悶大綱怎么寫,直接列出來大綱簡直幫了我天大的忙!對于大綱中不理解的點,直接要求 ChatGPT 給出進一步解釋。代碼也可以有!哪一章的內容不太會寫,直接讓 ChatGPT 安排,這樣,一篇論文很快就寫出來啦!
創(chuàng)建論文大綱
解釋大綱內容
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):
# 計算注意力分數
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)
# 將性能分數映射到注意力權重
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))
# 縮放注意力權重到指定范圍
attention_weights = attention_weights * (self.AttentionWeightRange[1] - self.AttentionWeightRange[0]) + self.AttentionWeightRange[0]
# 計算加權輸入
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. 問題類比
用途:當你想要做一個比喻時,這是一個很棒的功能。
14. 創(chuàng)建 SQL 需求
用途:寫 SQL 有時候挺頭疼的,想好久想不起來。
15. 情感分析
用途:這個功能讓我想起來在之前公司做的情感分析任務了。
16. 將產品描述轉變?yōu)閺V告
用途:這個功能對于商家來說太棒了。
17. 關鍵字提取
用途:NLP 任務的重要作用,關鍵字提?。?/div>
18. 閑聊機器人
用途:這個不多說了,用來閑聊體驗感真的很不錯。