鱼C论坛

 找回密码
 立即注册
查看: 965|回复: 11

[技术交流] GPT给我写了一个语言模型......

[复制链接]
发表于 2023-7-10 13:31:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码在下面,注意我在main()函数加的注释
记得在your_chinese_text_file.txt加入中文语料
我加的是:
从前有个聪明的年轻人,他住在一个美丽的村庄。这个村子里的人们生活得很幸福。有一天,年轻人决定去旅行,看看外面的世界。他告别了家人和朋友,踏上了漫长的旅程。沿途,他遇到了各种各样的人和事。有时候,他会遇到困难,但他总是能够克服艰难险阻,继续前行。这段旅程教会了他很多关于生活的智慧。当他回到家乡时,他成了一个更加成熟、睿智的人。他用自己学到的知识帮助村子里的人们,让他们的生活变得更好。从那以后,他过上了幸福快乐的生活,成为了村子里受人尊敬的智者。

从前有个村子里,住着一位聪明的老人,他名叫孙老头。他总是乐于助人,用他的智慧帮助村子里的人解决各种难题。有一天,村子附近发现了一座神秘的山洞,里面传说有一种神奇的力量。许多探险家都想要获取这种力量,但没有人能成功地进入山洞深处。

村子里的人们都想知道这个神秘的山洞究竟有什么秘密,于是,他们求助于孙老头。孙老头思考了一下,决定带领村子里的一些年轻人,一起探寻这个山洞的秘密。他们带着充足的粮食和水,开始了漫长的旅程。

在探险过程中,孙老头发挥着他的智慧,成功解决了许多问题。他们遇到了险恶的动物,孙老头敏锐地捕捉到了它们的弱点,帮助众人安全度过危机。他们还遇到了一片迷雾密布的森林,孙老头指引着大家走出了这片森林。

经过长时间的艰苦探险,他们终于到达了山洞深处。在那里,他们发现了一个神奇的宝藏,里面有各种珍贵的矿石和宝石。村子里的人们高兴极了,感谢孙老头带领他们找到了这个宝藏。

从此,孙老头的名声传遍了世界,他成为了人们心中的英雄。他继续用他的智慧帮助别人,为世界带来了无尽的祝福。

你想让它生成什么方面的内容,就加关于什么的,生成内容不一定准确!!!
代码:
import random
from collections import defaultdict, Counter
import jieba

# 读取文本数据
def read_data(file_path):
    with open(file_path, "r", encoding="utf-8") as f:
        data = f.read()
    return data

# 创建n-gram模型
def create_ngram_model(data, n):
    ngram_model = defaultdict(Counter)
    words = list(jieba.cut(data))

    for i in range(len(words) - n):
        ngram = tuple(words[i:i + n - 1])
        next_word = words[i + n - 1]
        ngram_model[ngram][next_word] += 1

    return ngram_model

# 生成新的文本
def generate_text(ngram_model, seed, num_words):
    current_ngram = tuple(seed.split()[-(len(list(ngram_model.keys())[0])):])
    generated_text = seed

    for _ in range(num_words):
        next_word_candidates = ngram_model[current_ngram]

        # 如果next_word_candidates为空,则从ngram_model中随机选择一个n-gram
        while not next_word_candidates:
            current_ngram = random.choice(list(ngram_model.keys()))
            next_word_candidates = ngram_model[current_ngram]

        next_word = random.choices(list(next_word_candidates.keys()), weights=list(next_word_candidates.values()))[0]
        generated_text += "" + next_word
        current_ngram = (*current_ngram[1:], next_word)

    return generated_text

# 主函数
def main():
    # 读取文本数据
    data = read_data("your_chinese_text_file.txt")
    
    # 设置n-gram参数
    n = 5#################3到5#############
    
    # 创建n-gram模型
    ngram_model = create_ngram_model(data, n)
    
    # 设置种子文本和生成的单词数
    seed = "从前有个"###############随便写##################
    num_words = 200###############别太多,最好50-500##############
    
    # 生成新文本
    generated_text = generate_text(ngram_model, seed, num_words)
    
    print(generated_text)

if __name__ == "__main__":
    main()

注:如题,代码GPT写的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-7-10 13:32:19 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-10 13:37:04 | 显示全部楼层
?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-10 13:37:54 | 显示全部楼层
seed = "从前有个"###############随便写##################
    num_words = 200###############别太多,最好50-500##############
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-10 13:39:15 | 显示全部楼层

额...small语言模型

如果你的训练文本多一些的话,生成的文本会比较自然,通顺一点,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-10 13:39:57 | 显示全部楼层

对,打注释这里可以改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-10 13:40:38 | 显示全部楼层
陶远航 发表于 2023-7-10 13:39
对,打注释这里可以改

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-10 13:44:53 | 显示全部楼层
gpt4 吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-10 13:45:24 | 显示全部楼层


......白解释了,你运行试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-10 13:45:58 | 显示全部楼层
陶远航 发表于 2023-7-10 13:45
......白解释了,你运行试试

?为什么要运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-10 21:23:30 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-11 15:10:19 | 显示全部楼层
有意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 18:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表