Пересечь биграмную триграмму в python - PullRequest
0 голосов
/ 24 марта 2020

У меня есть биграмма, и у меня есть триграмма, как мне сопоставить биграмму, которая есть в триграмме в python?

Я пробовал примеры, но я не понимаю, потому что я новичок ie, большое спасибо.

Bigram = [('red', 'car'), ('new', 'york'), ('table', 'window')]
Trigram = [('red', 'car','expensive,), ('new', 'york','city')]

Результат: [('red', 'car'),('new', 'york')]

1 Ответ

3 голосов
/ 24 марта 2020

Вы можете использовать наборы, чтобы получить пересечение, преобразовав свои триграммы в биграммы в понимании списка:

Bigram = [('red', 'car'), ('new', 'york'), ('table', 'window')]
Trigram = [('red', 'car','expensive'), ('new', 'york','city')]

set(Bigram).intersection( (a,b) for x,y,z in Trigram for a,b in ([x,y],[y,z]) )

# {('new', 'york'), ('red', 'car')}
...