0
votes

Remplacer un mot dans une phrase avec un autre mot

Si j'ai une liste de phrases. J'ai besoin de traverser chaque phrase et de vérifier si deux mots sont les mêmes dans deux phrases. Si oui, remplacez le mot dans la deuxième phrase avec un troisième mot initialisé. Le troisième mot est un mot commun (Var3). Par exemple: Rahul mange une pomme. Rahul boit du lait. Sortie: Rahul mange une pomme. Il boit du lait. XXX

Résumé est la liste des phrases. Maintenant, dans ce cas, il y a trois phrases. Où "Rahul" est la même chose en deux phrases. Donc, le mot dans la deuxième phrase est remplacé.

Quelqu'un peut-il m'aider avec cela?


12 commentaires

Quelles deux phrases? Toute deux phrases? Pour chaque mot de chaque phrase, vous voulez voir s'il apparaît dans une autre phrase? Si oui, vous voulez remplacer ce mot?


Oui. Deux phrases. Donc, si le mot est là, remplacez le deuxième mot avec Var3. Par exemple: Rahul mange une pomme. Rahul boit du lait. Sortie: Rahul mange une pomme. Il boit du lait.


Dans votre exemple, qu'en est-il du mot est ? Si l'exemple de sortie de l'échantillon n'est pas: Rahul mange une pomme. Il buvait du lait ?


Dans votre code, où est la variable i défini?


Oh pardon. Ce sera juste un mot. Dis supposer que Rahul mange une pomme. Rahul boit du lait. Quelque chose comme ça


Donc, il n'y a qu'un seul mot commun à remplacer? Savez-vous ce que le mot commun est auparavant?


Je n'est pas défini. J'essayais d'utiliser deux pour des boucles une pour traverser chaque phrase et l'autre pour traverser chaque mot dans cette phrase.


Oui. Le mot commun sera initialisé en premier et seul le même mot dans la deuxième phrase est remplacé par le mot commun.


Pouvez-vous modifier la question initiale pour clarifier toutes ces choses discutées s'il vous plaît? Et aussi faire une autre tentative de codage en premier. Ce que vous devez faire, c'est itérer chaque phrase et pour chaque phrase, itérale avec un index afin de pouvoir remplacer les mots tout en itération. Une fois que vous avez trouvé la première occurrence du mot à remplacer, vous pouvez commencer à remplacer - ceci peut être accompli avec un booléen .


Je l'ai édité. Je ne sais pas si l'utilisation de I est correcte.


Essayez d'exécuter le code et de résoudre les erreurs en premier. Pourquoi comparez-vous des paires de mots adjacents? En outre, var3 = var1 ne modifiera pas la phrase puisque vous n'abandonnez que la valeur de var3 . Essayez de suivre le pseudocode que je vous ai donné. Veuillez également modifier votre question. Cela ne correspond pas à ce que vous m'avez expliqué ici.


Oh d'accord. Je vais faire les changements


3 Réponses :


0
votes
['Rahul is eating an apple.',
 'He drinks milk.',
 'He also drinks Beer.',
 'He likes Pizza',
 'Seema is going to the market']

9 commentaires

Voici une phrase aura environ 5 à 6 phrases. Donc, j'essaie de comparer deux à la fois pour voir si les mots y sont-ils. @Pramit


Seul Rahul dans la deuxième phrase doit être remplacé à la fois des phrases.


Peut-il être fait sans initialiser remplacer = 'rahul'. Comme traverser et vérifier si les mots sont identiques s'ils sont les mêmes, remplacez-le


La fonction de remplacement le fait déjà. Traverser et vérifier. Pourquoi vous devez le refaire ??


Je voulais dire que vous avez mentionné quoi remplacer. Donc, ici dans ce cas, remplacez = rahul. Mais dynamiquement s'il devait être fait, cela vérifierait chaque mot dans chaque phrase pour voir si elles sont identiques. Lorsqu'une correspondance est trouvée, le mot est remplacé.


Veuillez mettre à jour votre question correctement, cochez la version de la liste si elle aide


Pour que le code sache que la personne est «il» ou «elle», vous devez faire NLP, extraire des noms de la personne d'une liste de phrases. puis continuer avec le remplacement. Ces choses sont déjà là dans la bibliothèque NLP


Vous devez écrire une certaine logique pour identifier les noms (c'est-à-dire des entités) d'une phrase, puis les étiqueter comme un homme (il) ou une femme (elle).


ददव बोबोे |



0
votes

Voici une solution suggérée xxx

sortie: Rahul mange une pomme. Il boit du lait


1 commentaires

Oui quelque chose comme ça. Mais comment traverser de nombreuses phrases et vérifier? @Entrée



1
votes
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 commentaires