如何制作随机文本 python
How to make a random text python
我需要帮助来输出随机文本。
我得到了一个包含 25k 个单词的文本,从这个 text_file
我一直在计算单个字母的概率,以及单个单词以查看哪个 letters/words 被使用最多。
现在我需要再写一个500个字母的文本,但是这个文本应该包括我计算的概率,并且应该是我从第一个文本中 "found" 的字母写的。
就像:
Text1 -> 对使用的字母进行概率计算,哪些字母出现最多。
生成 text2 -> 使用你从 text1 中找到的概率。
希望你能帮助我,我是 Python 的新人。
你可以这样做:
import string
import random
def get_random_letter():
# depends how you want to randomize getting your letter
return random.choice(string.letters)
random_letters = []
for i in range(500):
random_letter = get_random_letter()
random_letters.append(random_letter)
with open("text.txt", 'w') as f:
f.write("".join(random_letters))
您可以根据您的概率模型和 return 那个字符更改 "get_random_letter" 定义(在这种情况下,您不需要导入 random 或 string,这些只是用作示例) .
编辑:要根据特定重量获取字母,您可以使用此:
import random
inputs = ['e', 'f', 'g', 'h']
weights = [10, 30, 50, 10]
def get_random_letter(inputs, weights):
r = random.uniform(0, sum(weights))
current_cutoff = 0
for index in range(len(weights)):
current_cutoff = current_cutoff + weights[index]
if r < current_cutoff:
return inputs[index]
print get_random_letter(inputs, weights)
这是从这里的post派生出来的:Returning a value at random based on a probability weights
最简单的就是随机select个25k文件的字母。那么结果与原来的概率相同。
import random
print(''.join(random.choice(original_text) for _ in range(500)))
我现在有这个:
def random_text():
return(''.join(random.choice(text) for _ in range(500)))
random_letters = []
for i in range(1):
random_letter = random_text()
random_letters.append(random_letter)
print random_letters
现在只运行一次。
但是我不知道如何将输出文本编码成utf-8?
我需要帮助来输出随机文本。
我得到了一个包含 25k 个单词的文本,从这个 text_file
我一直在计算单个字母的概率,以及单个单词以查看哪个 letters/words 被使用最多。
现在我需要再写一个500个字母的文本,但是这个文本应该包括我计算的概率,并且应该是我从第一个文本中 "found" 的字母写的。
就像: Text1 -> 对使用的字母进行概率计算,哪些字母出现最多。 生成 text2 -> 使用你从 text1 中找到的概率。
希望你能帮助我,我是 Python 的新人。
你可以这样做:
import string
import random
def get_random_letter():
# depends how you want to randomize getting your letter
return random.choice(string.letters)
random_letters = []
for i in range(500):
random_letter = get_random_letter()
random_letters.append(random_letter)
with open("text.txt", 'w') as f:
f.write("".join(random_letters))
您可以根据您的概率模型和 return 那个字符更改 "get_random_letter" 定义(在这种情况下,您不需要导入 random 或 string,这些只是用作示例) .
编辑:要根据特定重量获取字母,您可以使用此:
import random
inputs = ['e', 'f', 'g', 'h']
weights = [10, 30, 50, 10]
def get_random_letter(inputs, weights):
r = random.uniform(0, sum(weights))
current_cutoff = 0
for index in range(len(weights)):
current_cutoff = current_cutoff + weights[index]
if r < current_cutoff:
return inputs[index]
print get_random_letter(inputs, weights)
这是从这里的post派生出来的:Returning a value at random based on a probability weights
最简单的就是随机select个25k文件的字母。那么结果与原来的概率相同。
import random
print(''.join(random.choice(original_text) for _ in range(500)))
我现在有这个:
def random_text():
return(''.join(random.choice(text) for _ in range(500)))
random_letters = []
for i in range(1):
random_letter = random_text()
random_letters.append(random_letter)
print random_letters
现在只运行一次。 但是我不知道如何将输出文本编码成utf-8?