Замена слова в предложении другим словом - PullRequest
0 голосов
/ 07 мая 2019

Если у меня есть список предложений.Мне нужно пройтись по каждому предложению и проверить, совпадают ли два любых слова в любых двух предложениях.Если да, то замените слово во втором предложении на третье слово, которое инициализируется.Третье слово - обычное слово (var3).Например: Рахул ест яблоко.Рахул пьет молоко.Выход: Рахул ест яблоко.Он пьет молоко.

var3='तो' #word to replace if words are same 

summary=['Rahul drinks milk', 'Rahul eats rice', Seema is going to the market']
for sent in summary:
  occurences = [index for index, value in enumerate(summary) if value == sent]
  if len(occurences) > 1
for i in range(len(summary)):
    for word in i:
        var1=sent[i]
        var2=sent[i+1]
        if(var1==var2):
            var3=var1  



Резюме - список предложений.Теперь в этом случае есть три предложения.Где «Рахул» одинаков в двух предложениях.Таким образом, слово во втором предложении заменяется.

Может кто-нибудь помочь мне с этим?

Ответы [ 3 ]

1 голос
/ 07 мая 2019
class People():
    def __init__(self,name,replace_with):
        self.name = name
        self.replace_with = replace_with
        self.first_encountered = False
    def __str__(self):
        return self.name+"  -- "+str(self.first_encountered)

sentences = ["Rahul is eating an apple.",
             "Rahul drinks milk.",
             "Rahul also drinks Beer.",
             "Rahul likes Pizza",
             "Seema is going to the market",
             "Seema also drinks beer",
             "and i am going to hell"
             ]

names= ["Rahul", "Seema"]
replaces = ["He","She"]

people = [ People(n,r) for n,r in zip(names,replaces) ]

new_sentence = []
found_in_any = [False,False]
for sentence in sentences:
    for index,person in enumerate(people):
        if(sentence.find(person.name)!=-1):
            found_in_any[index] = True           
            if(not person.first_encountered):
                person.first_encountered = True
                new_sentence.append(sentence)
                continue
            if(person.first_encountered):
                new_sentence.append(sentence.replace(person.name,person.replace_with)) 
        else:
            found_in_any[index] = False

        if len(list(set(found_in_any))) == 1 and list(set(found_in_any))[0] == False:
            new_sentence.append(sentence) 

print(new_sentence)

output : ['Rahul is eating an apple.',
 'He drinks milk.',
 'He also drinks Beer.',
 'He likes Pizza',
 'Seema is going to the market',
 'Seema is going to the market',
 'She also drinks beer',
 'and i am going to hell']
0 голосов
/ 07 мая 2019

Вот предлагаемое решение

sen1 = "Rahul is eating an apple"
sen2 = "Rahul drinks milk"
var = "He"

for i in sen1.split(" "):
    if i in sen2.split(" "):
        sen2 = sen2.replace(i, var)

print(sen1)
print(sen2)

Выход: Рахул ест яблоко. Он пьет молоко

0 голосов
/ 07 мая 2019
sentences = ["Rahul is eating an apple.","Rahul drinks milk.","Rahul also drinks Beer.","Rahul likes Pizza","Seema is going to the market"]

new_sentence = [] first_encountered = False for sentence in sentences:
    if(sentence.find(replace)!=-1):
        if(not first_encountered):
            first_encountered = True
            new_sentence.append(sentence)
            continue
        if(first_encountered):
            new_sentence.append(sentence.replace(replace,replace_with)) 
    else:
        new_sentence.append(sentence) new_sentence

Выход:

['Rahul is eating an apple.',
 'He drinks milk.',
 'He also drinks Beer.',
 'He likes Pizza',
 'Seema is going to the market']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...