У меня есть несколько предложений, которые я хотел бы разделить на определенные c слова (например, и). Однако при разделении предложений иногда есть две или более комбинаций слова, на которые я хотел бы разделить предложение.
Примеры предложений:
['i', 'am', 'just', 'hoping', 'for', 'strength', 'and', 'guidance', 'because', 'i', 'have', 'no', 'idea', 'why']
['maybe', 'that', 'is', 'why', 'he', 'does', 'not', 'come', 'home', 'and', 'tell', 'you', 'how', 'good', 'his', 'day', 'at', 'work', 'was', 'because', 'he', 'is', 'been', 'told', 'not', 'to', 'talk']
, поэтому я написал некоторый код для разбиения предложения:
split_on_word = []
no_splitting = []
indexPosList = [ i for i in range(len(kth)) if kth[i] == 'and'] # check if word is in sentence
for e in example:
kth = e.split() # split strings into list so it looks like example sentence
for n in indexPosList:
if n > 4: # only split when the word's position is 4 or more
h = e.split("and")
for i in h:
split_on_word.append(i)# append split sentences
else:
no_splitting.append(kth) #append sentences that don't need to be split
Однако вы можете видеть, что при использовании этого кода более однажды (например: заменить слово, на которое нужно разделить другое), я создам дубликаты или частично дублирую предложения, которые добавляю в новый список.
Есть ли способ проверить наличие нескольких условий, чтобы, если предложение содержало обе или другие комбинации, я разбил предложение на одну go?
Результат из примеров должен выглядеть следующим образом:
['i', 'am', 'just', 'hoping', 'for', 'strength']
['guidance', 'because']
['i', 'have', 'no', 'idea', 'why']
['maybe', 'that', 'is', 'why', 'he', 'does', 'not', 'come', 'home']
[ 'tell', 'you', 'how', 'good', 'his', 'day', 'at', 'work', 'was']
['he', 'is', 'been', 'told', 'not', 'to', 'talk']