首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Chatterbot "Errno 22“

Python Chatterbot "Errno 22“
EN

Stack Overflow用户
提问于 2017-11-28 04:34:20
回答 1查看 107关注 0票数 0

我试着训练一个聊天机器人,大部分数据都在文本文件中。

我拉:

代码语言:javascript
复制
Matt said you have a "shit load" of dining dollars. I have almost none so if you're willing to sell, I'm willing to buy.

在文本文件中,但是当聊天机器人语料库试图训练机器人时,它将上面的内容读为:

代码语言:javascript
复制
'Matt said you have a "shit load" of dining dollars\\ I have almost none so if you\'re willing to sell, I\'m willing to buy\\\n'

我怎么才能解决这个问题?

这是我的密码:

代码语言:javascript
复制
def train_from_text():
    #chatbot.set_trainer(ListTrainer)
    directory = basedir + "Text Trainers"
    files = find_files_in_directory(directory)
    for file in files:
        conversation = []
        file_name = directory+"/"+file
        with open(file_name, 'r') as to_read:
            for line in to_read:
                conversation.append(line)
        chatbot.train(conversation)

请原谅我说脏话,这是我得到的数据。

编辑:全错误

代码语言:javascript
复制
Traceback (most recent call last):
  File "E:/Jason Chatterbot/Jason Chat.py", line 102, in <module>
control()
  File "E:/Jason Chatterbot/Jason Chat.py", line 96, in control
train_from_text()
  File "E:/Jason Chatterbot/Jason Chat.py", line 58, in train_from_text
chatbot.train(conversation)
  File "C:\Python27\lib\site-packages\chatterbot\trainers.py", line 119, in train
corpora = self.corpus.load_corpus(corpus_path)
  File "C:\Python27\lib\site-packages\chatterbot_corpus\corpus.py", line 98, in load_corpus
corpus_data = self.read_corpus(file_path)
  File "C:\Python27\lib\site-packages\chatterbot_corpus\corpus.py", line 63, in read_corpus
with io.open(file_name, encoding='utf-8') as data_file:
IOError: [Errno 22] Invalid argument: 'Matt said you have a "shit load" of dining dollars\\ I have almost none so if you\'re willing to sell, I\'m willing to buy\\\r\n'
EN

回答 1

Stack Overflow用户

发布于 2017-11-28 04:44:44

如果不查看更大的数据子集,似乎它正在用转义单引号(\')替换单引号('),用转义换行符(\n)替换实际换行符,用双反斜杠()替换句点()。

一个简单的字符串替换可能会为您修复它,这取决于数据被处理得有多糟糕。试着改变

代码语言:javascript
复制
conversation.append(line)

代码语言:javascript
复制
conversation.append(line.replace("\\'","'").replace('\\\\','.').replace("\\n","\n"))

我们基本上是在试图逆转那些被自动替换的产品。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47524090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档