По какой-то причине "" .join () в моем коде добавляет дополнительные пробелы там, где их не должно быть. Извините, если это очень нубский вопрос, но я понятия не имею, несмотря на то, что обычно могу разобраться с подобными вещами.
Код, о котором идет речь (просто фрагмент, но остальные не должны быть релевантными)
def translate(stringinput):
if all(c in string.printable for c in stringinput):
output = ""
sent_detector = nltk.data.load('tokenizers/punkt/english.pickle')
sentences = sent_detector.tokenize(stringinput.strip())
for sentence in sentences:
sentence = shuffle(sentence)
output = output + " " + sentence_translate(sentence)
print(output.split())
" ".join(output.split())
return output.strip()
else:
print("Input does not entirely consist of ASCII Characters. Offending characters were:")
print([c for c in stringinput if c not in string.printable])
stringinput = "Ulysses, Ulysses - Soaring through all the galaxies. In search of Earth, flying in to the night. Ulysses, Ulysses - Fighting evil and tyranny, with all his power, and with all of his might. Ulysses - no-one else can do the things you do. Ulysses - like a bolt of thunder from the blue. Ulysses - always fighting all the evil forces bringing peace and justice to all."
print(translate(stringinput))
writer(folder / "final.json", dict)
Рассматриваемые строки:
print(output.split())
" ".join(output.split())
return output.strip() -> which is then printed out via print(translate(stringinput))
Распечатки из этих двух:
['kwmuo', 'kwmuo', 'jhhdd', 'zzazyayb', 'ptictte', 'igbo', 'tkaty', 'puiq.', 'xpaiuc', 'ftucqtze', 'ossjjh', 'ywwuh', 'rpauuqqz', 'fddu', 'pfhqys', 'igbo', 'kwmuo', 'qpousq,', 'zaapyuwq,', 'zqaoys,', 'histje', 'kwmuo', 'uzzaa', 'ptictte', 'eczt', 'rkmwy', 'uzzaa,', 'zaapyuwq,', 'ptictte,', 'xpaiuc,', 'eczt,', 'rssjj', 'kwmuo', 'hydymw', 'mfusq', 'gotsejz', 'igbo', 'mkpwhu', 'mkpwhu', 'os', 'gooss', 'teezc', 'kwmuo', 'dyyww', 'gtokb.', 'xpaiuc', 'cxxppu,', 'uqqzzan', 'igbo', 'gooss', 'kwmuo', 'hdyyyy', 'itfe.', 'uqqlos', 'ptictte', 'igbo', 'zqaoys', 'ywwhuyq', 'zaapyuwq', 'hdyyyy', 'osgjhhy', 'ptictte', 'rpauuqqz']
и
kwmuo kwmuo jhhdd zzazyayb ptictte igbo tkaty puiq. xpaiuc ftucqtze ossjjh ywwuh rpauuqqz fddu pfhqys igbo kwmuo qpousq, zaapyuwq, zqaoys, histje kwmuo uzzaa ptictte eczt rkmwy uzzaa, zaapyuwq, ptictte, xpaiuc, eczt, rssjj kwmuo hydymw mfusq gotsejz igbo mkpwhu mkpwhu os gooss teezc kwmuo dyyww gtokb. xpaiuc cxxppu, uqqzzan igbo gooss kwmuo hdyyyy itfe. uqqlos ptictte igbo zqaoys ywwhuyq zaapyuwq hdyyyy osgjhhy ptictte rpauuqqz
Например, если вы посмотрите между tkaty и puiq , оба элемента массива явно не имеют конечного или начального пробела, так почему объединенная версия явно имеет два пробела между ?? Это продолжается время от времени по всему выходу без очевидной картины. Это воспроизводимо, я несколько раз запускал код с точно таким же результатом.
Есть идеи?