马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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写的 |