陶远航 发表于 2023-7-10 13:31:23

GPT给我写了一个语言模型......

代码在下面,注意我在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)
      next_word = words
      ngram_model += 1

    return ngram_model

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

    for _ in range(num_words):
      next_word_candidates = ngram_model

      # 如果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

      next_word = random.choices(list(next_word_candidates.keys()), weights=list(next_word_candidates.values()))
      generated_text += "" + next_word
      current_ngram = (*current_ngram, 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写的

陶远航 发表于 2023-7-10 13:32:19

@不二如是 @歌者文明清理员 @sfqxx_小 @sfqxx @isdkz @zhangjinxuan

歌者文明清理员 发表于 2023-7-10 13:37:04

?

sfqxx 发表于 2023-7-10 13:37:54

seed = "从前有个"###############随便写##################
    num_words = 200###############别太多,最好50-500##############

陶远航 发表于 2023-7-10 13:39:15

歌者文明清理员 发表于 2023-7-10 13:37
?

额...small语言模型

如果你的训练文本多一些的话,生成的文本会比较自然,通顺一点,

陶远航 发表于 2023-7-10 13:39:57

sfqxx 发表于 2023-7-10 13:37


对,打注释这里可以改

sfqxx 发表于 2023-7-10 13:40:38

陶远航 发表于 2023-7-10 13:39
对,打注释这里可以改

{:10_254:}牛

sfqxx 发表于 2023-7-10 13:44:53

gpt4 吗

陶远航 发表于 2023-7-10 13:45:24

sfqxx 发表于 2023-7-10 13:44
gpt4 吗

......白解释了,你运行试试

sfqxx 发表于 2023-7-10 13:45:58

陶远航 发表于 2023-7-10 13:45
......白解释了,你运行试试

?为什么要运行

isdkz 发表于 2023-7-10 21:23:30

{:5_106:}

boanch 发表于 2023-7-11 15:10:19

有意思
页: [1]
查看完整版本: GPT给我写了一个语言模型......