【问题标题】:How to build an AI system which learns from corpus and answers to the user whenever they ask anything related to that corpus如何构建一个从语料库中学习的人工智能系统,并在用户询问与该语料库相关的任何内容时回答用户
【发布时间】:2019-08-07 10:14:12
【问题描述】:

计划构建一个从语料库(文本文件)中学习的人工智能系统,需要回答像聊天机器人这样的用户的问题,是没有任何预定义数据的短聊天机器人。

到目前为止,我只是将一些数据网络抓取并存储为文本文件,并使用 TF-IDF(余弦相似度)方法制作系统来回答问题,但准确度水平只是中等

def response(user_response):
robo_response=''
sent_tokens.append(user_response)
TfidfVec = TfidfVectorizer(tokenizer=LemNormalize, stop_words='english')
tfidf = TfidfVec.fit_transform(sent_tokens)
vals = cosine_similarity(tfidf[-1], tfidf)
idx=vals.argsort()[0][-2]
flat = vals.flatten()
flat.sort()
req_tfidf = flat[-2]
if(req_tfidf==0):

    robo_response=robo_response+"cant understand"
    return robo_response
else:
    robo_response = robo_response+sent_tokens[idx]
    return robo_response

我使用的TD-IDF方法

有没有其他方法可以建立一个系统来稍微准确地完成这项工作?

【问题讨论】:

标签: python artificial-intelligence chatbot


【解决方案1】:

你想做的事情的 PFA 链接。

https://demo.allennlp.org/reading-comprehension https://towardsdatascience.com/elmo-contextual-language-embedding-335de2268604

他们已经构建了允许您这样做的系统。

如果你想从头开始构建类似的东西,处理后的文本需要遵循很多过程。

Tfidf 是一种 BoW(词袋)算法,可以帮助您识别意图,但不能帮助您识别这些意图之间的关系。从矢量化 tfidf 获得的矩阵以及标签只会告诉机器,如果对于某些文本,获得了相似的矩阵,这就是标签。这在分类中很方便,但不适用于聊天机器人响应。

要获得聊天机器人的回复: - 将文本分割成句子。 - 使用各种技术来获取文本的上下文,目前 XLNet 提供了最好的结果(https://medium.com/dair-ai/xlnet-outperforms-bert-on-several-nlp-tasks-9ec867bb563b)。这将帮助您制定对可以通过聊天机器人提出的查询的响应。 以上只是一些基本步骤,实际的 AI 系统会涉及更多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-13
    • 2020-07-22
    • 1970-01-01
    相关资源
    最近更新 更多