pythonの質問です
"paraparaparadise"と"paragraph"に含まれる文字bi-gramの集合を,それぞれ, XとYとして求め,XとYの和集合,積集合,差集合を求めよ.さらに,'se'というbi-gramがXおよびYに含まれるかどうかを調べよ.
という問題に対して自分はまずN-gramを取得する関数を作成し,文字列をbi-gramにしたのですがなぜか実行結果が「和集合: set()」という形になってしまい集合が表示されません.
このコードをどう修正すればよいですか?
どなたか添削してほしいです.
ちなみにこの問題は言語処理100本ノックの第1章-06の問題です.
python
1def get_n_gram(n, str): 2 words = str.split() 3 result = [] 4 for i, j in enumerate(words): 5 if i + n > len(words): 6 return result 7 result.append(words[i:i+n]) 8 9str1 = "paraparaparadise" 10str2 = "paragrah" 11X = get_n_gram(2, str1) 12Y = get_n_gram(2, str2) 13 14print(f'和集合: {set(X) | set(Y)}') 15print(f'積集合: {set(X) & set(Y)}') 16print(f'差集合: {set(X) - set(Y)}') 17print("se" in (set(X) & set(Y))) 18
和集合: set() 積集合: set() 差集合: set() False
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/15 12:20