【问题标题】:How to approach developing a Chat Bot in C#如何在 C# 中开发聊天机器人
【发布时间】: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。这个想法是它开始时几乎是胡言乱语,然后逐渐变得更有意义。用户输入的质量和种类将决定需要多长时间。

标签: c# chat bots


【解决方案1】:

我知道这个问题已经 4 岁了,你可能已经大学毕业了。

这个主题是自然语言处理,还有一系列来自斯坦福的视频,里面有很多你所追求的理论。

NPL Open Course Online

我确实看过它们,并且有一种方法可以判断一个单词与前一个单词相同的可能性有多大。这就是在手机上打字时建议单词的工作方式。

【讨论】:

    猜你喜欢
    • 2016-08-14
    • 1970-01-01
    • 2018-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多