feat: allow wildcard file to use the adjusted probabilities feature (#891)

This commit is contained in:
Dijkstra
2025-01-28 12:16:10 +09:00
committed by GitHub
parent a89e9e01a6
commit cb168d64ab
+17 -1
View File
@@ -237,7 +237,23 @@ def process(text, seed=None):
keyword = match.lower()
keyword = wildcard_normalize(keyword)
if keyword in local_wildcard_dict:
replacement = random_gen.choice(local_wildcard_dict[keyword])
# look for adjusted probability
adjusted_probabilities = []
total_prob = 0
options=local_wildcard_dict[keyword]
for option in options:
parts = option.split('::', 1)
if len(parts) == 2 and is_numeric_string(parts[0].strip()):
config_value = float(parts[0].strip())
else:
config_value = 1 # Default value if no configuration is provided
adjusted_probabilities.append(config_value)
total_prob += config_value
normalized_probabilities = [prob / total_prob for prob in adjusted_probabilities]
selected_item = random_gen.choice(options, p=normalized_probabilities, replace=False)
replacement = re.sub(r'^\s*[0-9.]+::', '', selected_item, 1)
replacements_found = True
string = string.replace(f"__{match}__", replacement, 1)
elif '*' in keyword: