我正在为一个uni项目在C#中创建一个聊天机器人,目前我还不确定如何最好地实现它。我对OO编程和C#很陌生。
聊天机器人如何工作的基础是,它是为了学习,它与用户的互动越多。它通过解析所有用户输入的句子来实现这一点,并计算某个单词跟随每个单词的次数。
该程序从句子中获取一个随机单词,并使用单词图生成一个答复。
因此,例如,可以将下列引用分为:
我孤零零地漂泊着,像一朵漂浮在高高的矿坑和山丘上的云朵,突然我看见一群金色的水仙花
I:漫游(1)锯子(1)
漂泊:孤独(1)
孤独: as(1)
as: a(1)
a:云(1)人群(1)主机(1)
云:(1)
等等。
到目前为止,我的想法是使用一个followingWord类,它包含一个下面的单词,并计算在主单词之后的次数。
MainWord类保存单词和FollowingWord类型的列表,该列表包含以下单词及其计数。
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.
}我在这里走得对吗?因为我想不出其他方法来解决这个问题。
发布于 2017-11-22 11:53:16
我知道这个问题已经4岁了,你可能已经大学毕业了。
这个主题是自然语言处理,有一系列来自斯坦福的视频,其中有很多你所追求的理论。
我确实看过它们,有一种方法可以判断出一个词给出前一个单词的可能性。这就是在手机上打字时建议的单词的工作原理。
https://stackoverflow.com/questions/20107198
复制相似问题