gpt4 book ai didi

c# - 是否有可能将马尔可夫链引导至某些关键字?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:52:28 25 4
gpt4 key购买 nike

我正在用 C# 为软件工程类(class)编写聊天机器人。

我使用马尔可夫链生成文本,使用维基百科文章作为语料库。我希望它根据用户的输入以(至少是稍微)智能的方式响应用户输入,但我不确定该怎么做。

我目前的想法是尝试从用户的输入中提取关键字,然后使用这些关键字来指导句子生成。但是由于马尔可夫特性,关键字必须是句子中的第一个词,这可能看起来很傻。同样,对于 n 订单链,我每次都必须从用户那里提取恰好 n 个关键字。

生成器的数据是字典,其中键是单词列表,值是单词列表和权重的组合,权重取决于单词出现在键中单词之后的频率。就像:

{[word1, word2, ..., wordn]: [(word, weight), (word, weight), ...]}

它在命令行测试程序中工作,但我只是为它生成的每一位文本提供一个 n 单词种子。

我希望有一些方法可以让链更喜欢用户使用的邻近词的词,而不是用输入中的第一个/最后一个 n 词作为种子,或者 n 关键字,或其他。有办法吗?

最佳答案

让您的聊天更智能的一种方法是根据用户的输入确定主题。假设您的马尔可夫大脑也以不同的主题为条件。然后要构建你的答案,请引用下面的词典:

{([word1, word2, ..., wordn], topic): [(word, weight), (word, weight), ...]}

要查找主题,您可以从 WikipediaMiner 开始.例如,下面是 wikify api 针对句子找到的主题及其对应的权重:

Statistics is so hard. Do you have some good tutorial of probability theory for a beginner?

[{'id': 23542, 'title': 'Probability theory', 'weight': 0.9257584778725553},
{'id': 30746, 'title': 'Theory', 'weight': 0.7408577501980528},
{'id': 22934, 'title': 'Probability', 'weight': 0.7089442931022307},
{'id': 26685, 'title': 'Statistics', 'weight': 0.7024251356953044}]

可能那些已识别的关键字也可以作为种子处理。然而,答题并不是那么简单。这种基于马尔可夫的句子生成根本没有理解问题的能力。它最多只能提供相关内容。只是我的 2 美分。

关于c# - 是否有可能将马尔可夫链引导至某些关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13216357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com