【发布时间】:2013-12-05 02:38:38
【问题描述】:
我正在用 C# 为一个 uni 项目创建一个聊天机器人,但我目前不确定如何最好地进行。我是 OO 编程和 C# 的新手。
聊天机器人必须如何工作的基础是它旨在学习,它与用户的互动越多。它通过解析所有用户输入的句子并计算某个单词跟随每个单词的次数来实现这一点。
程序从句子中随机抽取一个词,并使用词图生成回复。
因此,例如,以下引用可以拆分为:
“我孤独地游荡,就像一朵云飘在高处的山谷和山丘上,当我突然看到一群金黄的水仙花”
我:徘徊(1)看到(1)
徘徊:孤独(1)
孤独: as(1)
如: a(1)
a:云(1)人群(1)主机(1)
云:那个(1)
等等……
到目前为止,我的想法是使用一个 followingWord 类,该类包含一个后续单词以及跟随主要单词的次数。
MainWord 类包含单词和一个 FollowWord 类型的列表,该列表包含以下单词及其计数。
class FollowingWord
{
string word; //the following word
int count; //the amount of times word has followed the main word.
}
class MainWord
{
string word; //the main word
List<FollowWord> following = new List<FollowWord>(); //a list of type FollowWord which holds all the following words and their counts.
}
我在正确的轨道上吗?因为我还没有想到任何其他方法来解决这个问题。
【问题讨论】:
-
你需要运行多少次才能生成一个正确构造的简单句子?
-
@p.s.w.g 他在开场白中声明了
for a uni project。 -
@bland Ahh,我没看到。
-
@Bob。这个想法是它开始时几乎是胡言乱语,然后逐渐变得更有意义。用户输入的质量和种类将决定需要多长时间。