#python
Вопрос:
Это моя функция-обнаруживать повторение букв в предложении. Например: Hiiiiii -gt; Привет
import re from nltk.corpus import wordnet class Rep_word_removal(object): def __init__(self): self.repeat_regexp = re.compile(r'(w*)(w)2(w*)') self.repl = r'123' def replace(self, word): if wordnet.synsets(word): return word repl_word = self.repeat_regexp.sub(self.repl, word) if repl_word != word: return self.replace(repl_word) else: return repl_word
У меня есть еще одна функция, чтобы сделать текст формальным, например: Я не могу этого сделать -gt; Я не могу этого сделать.
import re from nltk.corpus import wordnet R_patterns = [ (r'won't', 'will not'), (r'can't', 'cannot'), (r'i'm', 'i am'), (r'(w )'ll', 'glt;1gt; will'), (r'(w )n't', 'glt;1gt; not'), (r'(w )'ve', 'glt;1gt; have'), (r'(w )'s', 'glt;1gt; is'), (r'(w )'re', 'glt;1gt; are'), ] class REReplacer(object): def __init__(self, patterns=R_patterns): self.patterns = [(re.compile(regex), repl) for (regex, repl) in patterns] def replace(self, text): s = text for (pattern, repl) in self.patterns: s = re.sub(pattern, repl, s) return s
Это мой основной код:
import re from nltk.corpus import wordnet from Formal import REReplacer from Repeat import Rep_word_removal print ("Construct a sentence: n") sentence = input(": ") rep_word_formal = REReplacer() rep_word_fi = Rep_word_removal() formal_sentence = rep_word_formal.replace(sentence) print("Formal text: ", formal_sentence) #I only have code to output Formal sentence, but not detecting the repetition of characters.
Могу ли я каким-либо образом объединить эти 2 функции для вывода формального предложения и обнаружения повторения символов?
Например, мое предложение: Черт возьми. Я не могу этого понять. Я новичок в Python
Ожидаемый результат: Здравствуйте. Я не могу этого понять. Я новичок в Python.