我正在编写一个文本微调器,它正常工作。但是可读句子的准确性非常低,因为它只是使用我从数据库中获取的字典。哪个返回像这样的spintax
{Your} {home| house| residence| property} {is} {your} {castle| mansion| fortress| palace}
并传递给一个函数,该函数根据用户的原始输入选择随机同义词和输出句子。例如输入:
Your home is your castle.
将返回
Your property is your mansion.
现在我想要包含人工智能,因为它会使我的输出句子更具可读性。我想知道如何使用朴素贝叶斯做出更好的选择。我知道我可能需要训练才能获得更好的效果。
这是我目前选择单词的方法,现在非常简单。
def spin(spintax):
while True:
word, n = re.subn('{([^{}]*)}',lambda m: random.choice(m.group(1).split("|")),spintax)
if n == 0: break
return word.strip()
如果你们需要我发布更多代码,请提前告知我们
答案 0 :(得分:1)
这可能会因为您的问题没有简明的答案而被关闭,但您可能想查看nltk wordnet:
答案 1 :(得分:1)
也许您可以下载Google从所有英文书籍中收集的数据集,并使用ngrams生成随机句子? https://books.google.com/ngrams
实现是使用Markov chain,其中下载的数据为您提供下一个选择单词的概率。