Я пытаюсь преобразовать истории / предложения / слова / et c из первого лица в грамматику второго лица, но пытаюсь не преобразовывать текст в кавычки "" или "".
Это выполняется в гугл колабе, python 3 блокнота. Код читает файл в моем googledrive, читает файл .txt, преобразует слова из файла через «forms =» от первого лица ко второму. Существует также проблема, заключающаяся в том, что после преобразования происходит вставка пробелов до и после кавычек ("и").
import nltk
from google.colab import drive
drive.mount('/content/drive')
sent = open('/content/drive/My Drive/storyuno.txt', 'r')
forms = {"am" : "are", "are" : "am", 'i' : 'you', 'my' : 'yours', 'me' : 'you', 'mine' : 'yours', 'you' : 'I', 'your' : 'my', 'yours' : 'mine'} # More?
def translate(word):
if word.lower() in forms: return forms[word.lower()]
return word
translated = []
quote_mode = False
for word in nltk.wordpunct_tokenize(sent.read()):
if quote_mode:
translated.append(word)
if word == '"': quote_mode = False;
if not quote_mode:
translated.append(translate(word))
if word == '"': quote_mode = True;
result = ' '.join(translated)
print(result)
sent.close()
Вводимая мной история:
Внизу Суть в том, что если я собираюсь рассказать кому-нибудь о лягушке, то это будет Сой. Я решил, что наш путь домой будет самым подходящим временем. «Вы видели что-нибудь снаружи сегодня во время математики?» Я спросил Сою, когда мы начали идти: «Что ты имеешь в виду? Как в небе?» - спросил он, перепрыгивая через трещины на тротуаре: «Я имею в виду прямо за окном. Как будто прямо против него», - ответил я. «Как человек?» - спросил он, все еще прыгая. Сой сидел в ряду, наиболее удаленном от окна, так что было возможно, но вряд ли, чтобы кто-то прошел мимо, не заметив его.
Он преобразуется в:
Суть в том, что если вы собираетесь кому-нибудь рассказать о лягушке, это будет Сой. Вы решили, что наш путь домой будет наиболее подходящим временем. «Я видел что-нибудь снаружи сегодня во время математики?» - спросили вы Соя, когда мы пошли. - Что я имею в виду? Как в небе? - спросил он, перепрыгивая через трещины на тротуаре. - Ты имеешь в виду прямо за окном. Как будто прямо против него, - ответил ты. - Как человек? - спросил он, все еще прыгая. Сой сидел в ряду, наиболее удаленном от окна, так что было возможно, но маловероятно, чтобы кто-то прошел мимо, не заметив его.
Проблема в том, что текст в кавычках НЕ ДОЛЖЕН быть преобразован. Например: я говорю ей: «Ты скучный». ---> Вы говорите ей: «Вы скучный».
Игнорируйте любые ошибки грамматики, кроме проблемы с цитатой, я исправлю ее позже.