Ejemplo n.º 1
0
def main():
    text = "paraparaparadise"
    x = get_n_gram.n_gram(list(text))
    print(x)
    difx = dif(x)
    print(difx)

    text = "paragraph"
    y = get_n_gram.n_gram(list(text))
    print(y)
    dify = dif(y)
    print(dify)

    union = (difx | dify)
    intersection = (difx & dify)
    difference = (difx - dify)

    print(union)
    print(intersection)
    print(difference)

    if "se" in difx:
        print(u"found_se_in_x")
    if "se" in dify:
        print(u"found_se_in_y")
Ejemplo n.º 2
0
def main():
    text = "paraparaparadise"
    x = get_n_gram.n_gram(list(text))
    print(x)
    difx = dif(x)
    print(difx)

    text = "paragraph"
    y = get_n_gram.n_gram(list(text))
    print(y)
    dify = dif(y)
    print(dify)

    union = (difx | dify)
    intersection = (difx & dify)
    difference = (difx - dify)

    print(union)
    print(intersection)
    print(difference)

    if "se" in difx:
        print (u"found_se_in_x")
    if "se" in dify:
        print (u"found_se_in_y")
Ejemplo n.º 3
0
# -*- encoding: utf-8 -*-
from knock05 import n_gram

X = set(n_gram("paraparaparadise", 2))
Y = set(n_gram("paragraph", 2))

print("X " + str(X))
print("Y " + str(Y))
print("和集合 " + str(X.union(Y)))
print("積集合 " + str(X.intersection(Y)))
print("X - Y " + str(X.difference(Y)))
print("Y - X " + str(Y.difference(X)))
print("seがXに含まれるか?" + str("se" in X))
print("seがYに含まれるか?" + str("se" in Y))
Ejemplo n.º 4
0
"""
import os
import sys

from knock05 import n_gram

sys.path.append(os.path.join(os.path.dirname(__file__), "../../"))
from kiyuna.utils.message import Renderer, message  # noqa: E402 isort:skip

if __name__ == "__main__":

    w1 = "paraparaparadise"
    w2 = "paragraph"
    n = 2

    X = set(n_gram(w1, n))
    Y = set(n_gram(w2, n))
    tgt = n_gram("se", n).pop()

    print("X =", X)
    print("Y =", Y)

    print("X ∪ Y = {}".format(X | Y))  # X.union(Y)
    print("X ∩ Y = {}".format(X & Y))  # X.intersection(Y)
    print("X \\ Y = {}".format(X - Y))  # X.difference(Y)
    print("Y \\ X = {}".format(Y - X))  # Y.difference(X)

    print(f"X includes 'se': {tgt in X}")
    print(f"Y includes 'se': {tgt in Y}")

    with Renderer("MEMO") as out:
Ejemplo n.º 5
0
'''
06. 集合
"paraparaparadise" と "paragraph" に含まれる文字 bi-gram の集合を,
それぞれ, X と Y として求め,X と Y の和集合,積集合,差集合を求めよ.
さらに,'se' という bi-gram が X および Y に含まれるかどうかを調べよ.
'''
from knock05 import n_gram  # -B をつけるとキャッシュが出ない

if __name__ == '__main__':
    w1 = "paraparaparadise"
    w2 = "paragraph"
    tgt = n_gram('se', n=2).pop()

    X = set(n_gram(w1, n=2))
    Y = set(n_gram(w2, n=2))

    print('X =', X)
    print('Y =', Y)

    print('X ∪ Y = {}'.format(X | Y))  # X.union(Y)
    print('X ∩ Y = {}'.format(X & Y))  # X.intersection(Y)
    print('X \ Y = {}'.format(X - Y))  # X.difference(Y)
    print('Y \ X = {}'.format(Y - X))  # Y.difference(X)

    print(f"X includes 'se': {tgt in X}")
    print(f"Y includes 'se': {tgt in Y}")
Ejemplo n.º 6
0
from knock05 import n_gram

str1 = "paraparaparadise"
str2 = "paragraph"
n = 2

X = set(n_gram(str1, n))
Y = set(n_gram(str2, n))

print(f"{X | Y}")
print(f"{X & Y}")
print(f"{X - Y}")

if "se" in X:
    print("Xに含まれる")
else:
    print("Xに含まれない")

if "se" in Y:
    print("Yに含まれる")
else:
    print("Yに含まれない")
Ejemplo n.º 7
0
# 06. 集合
# “paraparaparadise”と”paragraph”に含まれる文字bi-gramの集合を,それぞれ, XとYとして求め,XとYの和集合,積集合,差集合を求めよ.
# さらに,’se’というbi-gramがXおよびYに含まれるかどうかを調べよ.

from knock05 import n_gram

if __name__ == "__main__":
    str1 = "paraparaparadise"
    str2 = "paragraph"
    str3 = "se"
    X = n_gram(str1, t="char")
    X = set(X)
    Y = n_gram(str2, t="char")
    Y = set(Y)
    union = X | Y
    intersec = X & Y
    # 差集合演算は可換でないので、「XとYの差集合」という表現はよくない。
    diff1 = X - Y
    diff2 = Y - X
    print(f"{X=}")
    print(f"{Y=}")
    print(f"{union=}")
    print(f"{intersec=}")
    print(f"{diff1=}")
    print(f"{diff2=}")
    # 「XおよびYに含まれるかどうかを調べよ」は、「XとYのそれぞれに対して別々に調べる」という意味だとは思うが、「XとYの両方に含まれるかどうかを調べる」という意味にも解釈できる?
    # 「および」は、文脈によって、「かつ」にも「または」にも言い換えられる?
    ans1 = str3 in X
    ans2 = str3 in Y
    ans3 = str3 in intersec
    print(f"{str3}はXに含まれるか:{ans1}")
Ejemplo n.º 8
0
from knock05 import n_gram

s1 = "paraparaparadise"
s2 = "paragraph"

bg1 = n_gram(2, s1)
bg2 = n_gram(2, s2)
se = n_gram(2, "se")[0]

print("Union:", set(bg1) or set(bg2))
print("Intersection:", set(bg1) and set(bg2))
print("minus:", set(bg1) - set(bg2))
print(se, "in bigram(", s1, "):", se in bg1)
print(se, "in bigram(", s2, "):", se in bg2)
Ejemplo n.º 9
0
from knock05 import n_gram

s1 = "paraparaparadise"
s2 = "paragraph"
X = set(n_gram(s1, 2)[0])
Y = set(n_gram(s2, 2)[0])

print(f"和集合 : {X | Y}")
print(f"積集合 : {X & Y}")
print(f"差集合 : {X - Y}")

if "se" in X:
    print("'se' is in X.")
else:
    print("'se' is not in X.")

if "se" in Y:
    print("'se' is in Y.")
else:
    print("'se' is not in Y.")
Ejemplo n.º 10
0
import knock05

s1 = 'paraparaparadise'
s2 = 'paragraph'
X = set(knock05.n_gram(2, s1, knock05.CHAR))
Y = set(knock05.n_gram(2, s2, knock05.CHAR))

print(f'{"X":<15}: {X}')
print(f'{"Y":<15}: {Y}')
print(f'{"Union":<15}: {X | Y}')
print(f'{"Intersection":<15}: {X & Y}')
print(f'{"Difference(X-Y)":<15}: {X - Y}')
print(f'{"Difference(Y-X)":<15}: {Y - X}')
print(f"Is 'se' belong to X? -> {'se' in X}")
print(f"Is 'se' belong to Y? -> {'se' in Y}")

# 06. 集合
# "paraparaparadise"と"paragraph"に含まれる文字bi - gramの集合を,それぞれ, XとYとして求め,XとYの和集合,積集合,差集合を求めよ.
# さらに,'se'というbi - gramがXおよびYに含まれるかどうかを調べよ.

# 実行結果
# X              : {'is', 'pa', 'ra', 'ad', 'ar', 'se', 'ap', 'di'}
# Y              : {'gr', 'ag', 'ph', 'pa', 'ra', 'ar', 'ap'}
# Union          : {'gr', 'ag', 'ph', 'is', 'pa', 'ra', 'ad', 'ar', 'se', 'ap', 'di'}
# Intersection   : {'ra', 'ar', 'ap', 'pa'}
# Difference(X-Y): {'ad', 'is', 'di', 'se'}
# Difference(Y-X): {'ag', 'gr', 'ph'}
# Is 'se' belong to X? -> True
# Is 'se' belong to Y? -> False
Ejemplo n.º 11
0
# 06. 集合
# "paraparaparadise"と"paragraph"に含まれる文字bi-gramの集合を,
# それぞれ, XとYとして求め,XとYの和集合,積集合,差集合を求めよ.
# さらに,'se'というbi-gramがXおよびYに含まれるかどうかを調べよ.

from knock05 import n_gram

if __name__ == "__main__":
    target1 = "paraparaparadise"
    target2 = "paragraph"

    # n_gram 関数はリストで返されるので、集合演算を行うために set 型にキャスト
    x = set(n_gram(target1, 2))
    y = set(n_gram(target2, 2))

    print(f"X : {x}")
    print(f"Y : {y}")

    print(f"union           : {x | y}")
    print(f"intersection    : {x & y}")
    print(f"difference(X-Y) : {x - y}")
    print(f"difference(Y-X) : {y - x}")

    print(f"'se' in X? : {'se' in x}")
    print(f"'se' in Y? : {'se' in y}")
Ejemplo n.º 12
0
from knock05 import n_gram

X = set(n_gram("paraparaparadise"))
Y = set(n_gram("paragraph"))

print("X or Y: {}".format(X | Y))
print("X and Y: {}".format(X & Y))
print("X - Y: {}".format(X - Y))
print("Y - X: {}".format(Y - X))
print("'se' in X?: {}".format("se" in X))
print("'se' in Y?: {}".format("se" in Y))
Ejemplo n.º 13
0
from knock05 import n_gram
'''
"paraparaparadise"と"paragraph"に含まれる文字bi-gramの集合を,それぞれ, XとYとして求め,XとYの和集合,積集合,差集合を求めよ.
さらに,'se'というbi-gramがXおよびYに含まれるかどうかを調べよ.
'''

if __name__ == '__main__':
    s1 = "paraparaparadise"
    s2 = "paragraph"
    X = set(n_gram(s1, 2))
    Y = set(n_gram(s2, 2))
    print(X.union(Y), X.intersection(Y), X.difference(Y), Y.difference(X))

    if 'se' in X.intersection(Y):
        print('Yes')
    else:
        print('No')