我正在写一个文本旋转器,它的工作正常,因为它应该。但由于使用的是从数据库中获取的字典,所以可读句子的准确率很低。它像这样返回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()提前感谢你们,如果你们需要我发布更多代码,请让我知道
发布于 2017-03-21 23:15:09
这可能会被关闭,因为你的问题没有简洁的答案,但你可能想看看nltk wordnet:
发布于 2017-03-21 23:15:43
也许你可以下载谷歌从所有英语书籍中收集的数据集,并使用ngram?https://books.google.com/ngrams生成随机句子。
实现是使用Markov chain,其中下载的数据为您提供选择下一个单词的概率。
https://stackoverflow.com/questions/42930865
复制相似问题