сравнить список слов, похожие слова удалены и добавлены в новую строку - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть 2 строки, которые я преобразовал в список слов A и B. Я пытаюсь создать алгоритм, который выбирает слово, начиная слева.Если это слово появляется как слово или часть слова во второй строке, то добавьте это слово в новую общую строку и удалите все первое вхождение слова, где оно было найдено во второй строке.Прописные и строчные буквы считаются разными буквами.Я называю этот алгоритм Diff.

Пример:

List A: " The quick brown fox did jump over a log"
List B: " The brown rabbit quickly did outjump the fox"

Если бы я должен был отразить A к B, я бы получил «Быстрая коричневая лиса прыгнула на»

Если бы я перешел от B к A, я бы получил «коричневый лис»

Код, который у меня есть:

import re

a = 'The quick brown fox did jump over a log'
aa = re.sub("[^\w]", " ",  a).split()
b = 'The brown rabbit quickly did outjump the fox'
bb = re.sub("[^\w]", " ",  b).split()
print (aa)
print (bb)

Код выше - это то, что я использовал для изменениястрока к списку слов.

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Это может сработать

common_str = ""

a =  " The quick brown fox did jump over a log"
b = " The brown rabbit quickly did outjump the fox"
alist = a.split(" ")
blist = b.split(" ")
for item in blist:
    if item in alist:
        #add word to common string
        common_str += item + " "
        #remove from second string
        i = item + " " #item plus trailing space
        a.replace(i, "")
print(common_str)
print(a)
print(b)
0 голосов
/ 07 февраля 2019
a = 'The quick brown fox did jump over a log'
aa = a.split(" ")
b = 'The brown rabbit quickly did outjump the fox'
bb = b.split(" ")
common = []
for i in aa:
    for j in bb:
        if (i == j):
            common.append(j)
            break
print(" ".join(common))

Выход для этого будет "Браун лиса сделал"

a = 'The quick brown fox did jump over a log'
aa = a.split(" ")
b = 'The brown rabbit quickly did outjump the fox'
bb = b.split(" ")
common = []
for i in bb:
    for j in aa:
        if (i == j):
            common.append(j)
            break
print(" ".join(common))

Выход "Браун сделал лиса"

...