文本微调器使用朴素贝叶斯

时间:2017-03-21 15:04:56

标签: python python-2.7 text spinner

我正在编写一个文本微调器,它正常工作。但是可读句子的准确性非常低,因为它只是使用我从数据库中获取的字典。哪个返回像这样的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()

如果你们需要我发布更多代码,请提前告知我们

2 个答案:

答案 0 :(得分:1)

这可能会因为您的问题没有简明的答案而被关闭,但您可能想查看nltk wordnet:

https://pythonprogramming.net/wordnet-nltk-tutorial/

答案 1 :(得分:1)

也许您可以下载Google从所有英文书籍中收集的数据集,并使用ngrams生成随机句子? https://books.google.com/ngrams

实现是使用Markov chain,其中下载的数据为您提供下一个选择单词的概率。