У меня есть этот список списков:
groups = [['|FOOD|','shrimps','chicken wok','bowl of rice'],['|DRINK|','water','cranberry juice','tea']]
Я пытаюсь получить вывод:
[['|FOOD|',
'[lemma="shrimps"]',
'[lemma="chicken"][lemma="wok"]',
'[lemma="bowl"][lemma="of"][lemma="rice"]'],
['|DRINK|',
'[lemma="water"]',
'[lemma="cranberry"][lemma="juice"]',
'[lemma="tea"]']]
Так что, в принципе, мне нужно каждое слово, лемматизированное для корпуса поиск. Однако некоторые слова - это не слова, а фразы . Я только что выяснил код для отдельных слов , вот он:
import re
groups = [[f'[lemma="{word}"]' if not ' ' in word and not re.search(r'\|.*\|', word) else word for word in group] for group in groups]
Это возвращает группы как:
[['|FOOD|',
'[lemma="shrimps"]',
'chicken wok',
'bowl of rice'],
['|DRINK|',
'[lemma="water"]',
'cranberry juice',
'[lemma="tea"]']]
Так что я сделал так, чтобы в него не входили слова, содержащие пробел ( фразы ), а также слова topi c. Каков тогда код для работы с этими фразами и чтобы они выглядели так, как я напечатал выше?
Я новичок, поэтому, если вы знаете лучший способ упорядочить все эти данные, дайте мне знать.