Как избежать стриптизерши, считающей слова «Нет» или «Да» булевыми? - PullRequest
0 голосов
/ 18 апреля 2020

При преобразовании JSON в YAML-файлы я обнаружил, что функция, интерпретирующая созданные YAML-файлы, выдаст ошибку при отображении слова «Нет»

Traceback (most recent call last):
  File "C:\projects\chattertestlocal\chatbot.py", line 29, in <module>
    trainer.train("chatterbot.corpus.custom") #issues with formatting, probably
  File "C:\Users\me\AppData\Roaming\Python\Python37\site-packages\chatterbot\trainers.py", line 157, in train
    statement_search_text = self.chatbot.storage.tagger.get_bigram_pair_string(text)
  File "C:\Users\me\AppData\Roaming\Python\Python37\site-packages\chatterbot\tagging.py", line 159, in get_bigram_pair_string
    for sentence in self.tokenize_sentence(text.strip()):
AttributeError: 'bool' object has no attribute 'strip'

Я исправил его, заменив любое вхождение слов «Нет», «Да», «Ложь» или «Правда», как то же слово, но с дополнительной буквой, но это не удовлетворяет. Я также попытался .format () перед записью строки

final = "".format(stringex) #in case of encountering boolean or list, format as string
boo = final.isspace() #checks if string is only spaces
if final.strip() and (boo != True) and ("http" not in final): #checks if string is NOT null and that there is no link in the response
# if boo != True:
    # need to end every file with - hh
    final = " - " + final +"\n "
    fo.write(final)

, однако, в результате ничего не было записано в файл. Я также попытался

final = str(stringex)

без удачи.

Интересно, есть ли какие-нибудь простые решения этой проблемы.

...