Допустим, у меня есть список n-грамм, и я хочу избавиться от любых униграмм, только если они уже содержатся в биграмме или триграмме в списке.
Например:
ngram_list = ["apple cider", "apple", "cat man", "cat", "batman", "bat"]
В итоге я хотел бы получить:
ngram_list = ["apple cider", "cat man", "batman", "bat"]
В результате «яблоко» удаляется, потому что оно содержится в биграммы «яблочный сидр» и «кот» удаляются, потому что они содержатся в биграмме «человек-кошка», но «летучая мышь» остается, потому что даже если «летучая мышь» находится в «бэтмен», «бэтмен» не является биграммой или триграммой *. 1009 *
Способ, которым я думал подойти к этому, заключался в том, чтобы выделить только униграммы, l oop через них, и выполнить поиск каждой униграммы в отдельном списке, содержащем только биграммы и триграммы ... Но я Мне просто интересно, как это сделать наиболее эффективно?