Próbuję znaleźć jakąś funkcję w Pythonie, która może mi pomóc w znalezieniu dopasowań słów z dwóch różnych ciągów.

Na przykład mamy 2 ciągi:

  1. „Gram codziennie w koszykówkę”
  2. „koszykówka to najgorsza gra w historii”

Chcę, aby ta funkcja zwróciła wartość true, jeśli w obu łańcuchach znaleziono słowo „koszykówka”.

-1
Pablo 19 grudzień 2019, 18:29
4
Więc jaki jest w tym problem? Czy możemy zobaczyć twój kod?
 – 
trincot
19 grudzień 2019, 18:31
Zawsze możesz użyć in. Na przykład "basketball" in "I love basketball" zwraca True
 – 
Riccardo Bucco
19 grudzień 2019, 18:33
"basketball" in string_1 and "basketball" in string_2
 – 
Brian Joseph
19 grudzień 2019, 18:33
Innym podejściem byłoby użycie list(set(string_1.split()) i set(string_2.split())), które zwrócą wszystkie słowa znalezione w obu ciągach
 – 
DanStu
19 grudzień 2019, 18:35

3 odpowiedzi

Typowe słowa można znaleźć w dwóch zdaniach:

common_words = set(phrase1.split()).intersection(phrase2.split())

Możesz sprawdzić, czy słowo występuje w obu frazach, po prostu sprawdzając, czy jest w zestawie common_words (przykład: if word in common_words: ...).

Możesz również sprawdzić, ile elementów ma ten zestaw. Jeśli len(common_words) == 0 to phrase1 i phrase2 nie zawierają wspólnych słów.

2
Riccardo Bucco 19 grudzień 2019, 18:42
l = ["I am playing basketball everyday", "basketball is the worst game ever"]

for x in l:
  print (x)
  if "basketball" in x.lower():
    print (True)
0
Yatish Kadam 19 grudzień 2019, 18:36
str1 = "I am playing basketball everyday"
str2 = "basketball is the worst game ever"

if "basketball" in str1 and "basketball" in str2:
    print "basketball is in both strings!"

Zobacz: Python — Sprawdź, czy słowo jest w ciągu

0
Neobraf 19 grudzień 2019, 18:38