ChatGPT 的 18 種高階玩法,驚到我了!!

人工智慧洞察站發表於2023-05-18

作者:ㄣ知冷煖★ 

連結:blog.csdn.net/weixin_42475060/article/details/129399125

你確定,你會使用 ChatGPT 了嗎?

今天給大家整理了 18 種 ChatGPT 的用法,看看有哪些方法是你能得上的。


  • 語法更正
  • 文字翻譯
  • 語言轉換
  • 程式碼解釋
  • 修復程式碼錯誤
  • 作為百科全書
  • 資訊提取
  • 好友聊天
  • 創意生成器
  • 採訪問題
  • 論文大綱
  • 故事創作
  • 問題類比
  • 建立 SQL 需求
  • 情感分析
  • 將產品描述轉變為廣告
  • 關鍵字提取
  • 閒聊機器人

語法更正

用途:文章、論文等潤色。

ChatGPT 的 18 種高階玩法,驚到我了!!

文字翻譯

用途:日常學習、商務翻譯等。

ChatGPT 的 18 種高階玩法,驚到我了!!

語言轉換

另外,如果你近期準備面試跳槽,建議在Java面試庫小程式線上刷題,涵蓋 2000+ 道 Java 面試題,幾乎覆蓋了所有主流技術面試題。

Python–>JAVA

用途:工作用途,不同語言工程師之間的合作,更加方便。

import numpy as np
import plotly.express as px

def thresholding_algo(y, lag, threshold):
    """
    :param y: 輸入列表
    :param lag: 滑動視窗大小
    :param threshold: 調節係數,用於調節容忍範圍的大小。
    :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),
                )
ChatGPT 的 18 種高階玩法,驚到我了!!
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;
}

程式碼解釋-1

用途:當我們來到一家新的公司,發現前任工程師留下了一攤誰都看不懂的程式碼,這時候,如果有個人能幫我們解釋一下這些程式碼是什麼意思,那簡直不要太開心。

ChatGPT 的 18 種高階玩法,驚到我了!!
def Fusion_algorithm(y_list):
    """
    最終的融合演算法
    1、第一次遍歷列表: 處理掉小於上一個值的點,使其等於上一個值。
    2、第二次使用z-score來處理異常點:一種基於統計方法的時序異常檢測演算法借鑑了一些經典的統計方法,比如Z-score和移動平均線
    該演算法將時間序列中的每個資料點都看作是來自一個正態分佈,透過計算每個資料點與其臨接資料點的平均值和標準差,可以獲得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
ChatGPT 的 18 種高階玩法,驚到我了!!

程式碼解釋-2

備註:上一個程式碼解釋,我們可以看到,答案或許受到了程式碼中註釋的影響,我們刪掉註釋,再來一次。對於解釋中一些不懂的點,我們可以連續追問!

ChatGPT 的 18 種高階玩法,驚到我了!!
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
ChatGPT 的 18 種高階玩法,驚到我了!!
ChatGPT 的 18 種高階玩法,驚到我了!!

修復程式碼錯誤

用途:寫完一段程式碼後發現有錯誤?讓chatGPT來幫你!

ChatGPT 的 18 種高階玩法,驚到我了!!
### 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.")
ChatGPT 的 18 種高階玩法,驚到我了!!

作為百科全書

用途:chatGPT可以解釋你所有的問題!但是列出小說這個功能有些拉跨,經過測試只有科幻小說列的還可以,其他型別不太行,可能chatgpt訓練工程師是個科幻迷!

ChatGPT 的 18 種高階玩法,驚到我了!!

資訊提取

用途:作為自然語言處理界的大模型,怎麼能少得了資訊提取呢?

ChatGPT 的 18 種高階玩法,驚到我了!!

好友聊天

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

ChatGPT 的 18 種高階玩法,驚到我了!!
ChatGPT 的 18 種高階玩法,驚到我了!!

創意生成器

用途:是不是常常會在創新上遇到思維瓶頸不知道怎麼做?不要擔心,讓chatGPT幫你生成創意!

VR和密室結合

ChatGPT 的 18 種高階玩法,驚到我了!!

再結合AR

ChatGPT 的 18 種高階玩法,驚到我了!!

採訪問題

用途:可能您是一個媒體工作者,採訪問題不知道怎麼寫?chatGPT可以幫您解決。

採訪問題清單

ChatGPT 的 18 種高階玩法,驚到我了!!

採訪問題清單並給出相應答案

ChatGPT 的 18 種高階玩法,驚到我了!!

論文大綱

用途:這個功能對於研究生簡直不要太爽了,一直在鬱悶大綱怎麼寫,直接列出來大綱簡直幫了我天大的忙!對於大綱中不理解的點,直接要求chatGPT給出進一步解釋。程式碼也可以有!那一章的內容不太會寫,直接讓chatGPT安排,這樣,一篇論文很快就寫出來啦!

建立論文大綱

ChatGPT 的 18 種高階玩法,驚到我了!!

解釋大綱內容

ChatGPT 的 18 種高階玩法,驚到我了!!
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

故事創作

用途:這個功能真的太太太棒了,以後我自己列提綱出來就可以寫小說啦!

愛情故事

ChatGPT 的 18 種高階玩法,驚到我了!!

恐怖故事

ChatGPT 的 18 種高階玩法,驚到我了!!
ChatGPT 的 18 種高階玩法,驚到我了!!

問題類比

用途:當你想要做一個比喻時,這是一個很棒的功能。

ChatGPT 的 18 種高階玩法,驚到我了!!

建立SQL需求

另外,如果你近期準備面試跳槽,建議在Java面試庫小程式線上刷題,涵蓋 2000+ 道 Java 面試題,幾乎覆蓋了所有主流技術面試題。

用途:寫SQL有時候挺頭疼的,想好久想不起來。

ChatGPT 的 18 種高階玩法,驚到我了!!

情感分析

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

ChatGPT 的 18 種高階玩法,驚到我了!!

將產品描述轉變為廣告

用途:這個功能對於商家來說太棒了。

ChatGPT 的 18 種高階玩法,驚到我了!!

關鍵字提取

用途:NLP任務的重要作用,關鍵字提取!

ChatGPT 的 18 種高階玩法,驚到我了!!

閒聊機器人

用途:這個不多說了,用來閒聊體驗感真的很不錯。

ChatGPT 的 18 種高階玩法,驚到我了!!
ChatGPT 的 18 種高階玩法,驚到我了!!

總結

我覺得角色扮演挺有意思的,對話前加一句:假如你是 xxx。

現在有一些小程式,讓AI扮演一些角色對話,就是用這種方法實現的。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70027828/viewspace-2953008/,如需轉載,請註明出處,否則將追究法律責任。

相關文章