u++の備忘録

言語処理100本ノック 2020「06. 集合」

問題文

nlp100.github.io

問題の概要

bi-gramの作成には「05. n-gram」のソースコードを流用します。

Pythonでは「set()」を用いることで、集合の概念を扱えます。

def n_gram(target, n):
    return [target[idx:idx + n] for idx in range(len(target) - n + 1)]


X_text = 'paraparaparadise'
Y_text = 'paragraph'
X = n_gram(X_text, 2)
Y = n_gram(Y_text, 2)

print(f'和集合: {set(X) | set(Y)}')
print(f'積集合: {set(X) & set(Y)}')
print(f'差集合: {set(X) - set(Y)}')
print('se' in (set(X) & set(Y)))