def summarize(sentence_list, target, window, verbose, topk, dic_type):
    tokenize = GrpcTokenizer(target, dic_type=dic_type)
    summarizer = KeywordSummarizer(
        tokenize=tokenize,
        window=window,
        verbose=verbose,
    )
    try:
        return summarizer.summarize(sentence_list, topk=topk)
    except ValueError:
        return []
Ejemplo n.º 2
0
def cluster_keyword_summarizer(results, k):
    keyword_extractor = KeywordSummarizer(
        tokenize=mecab_tokenizer,
        min_count=2,
        window=-1,  # cooccurrence within a sentence
        min_cooccurrence=2,
        vocab_to_idx=None,  # you can specify vocabulary to build word graph
        df=0.85,  # PageRank damping factor
        max_iter=30,  # PageRank maximum iteration
        verbose=False)
    keyword_result = []
    for i in range(k):
        _tmp = keyword_extractor.summarize(results[i], topk=20)
        keyword_result.append(_tmp)
    return keyword_result
Ejemplo n.º 3
0
def summarize_without_ray(sentence_list,
                          target=TARGET_DEFAULT,
                          window=WINDOW_DEFAULT,
                          verbose=VERBOSE_DEFAULT,
                          topk=TOPK_DEFAULT,
                          dic_type=DIC_TYPE_DEFAULT,
                          min_count=MIN_COUNT_DEFAULT):
    tokenize = GrpcTokenizer(target, dic_type=dic_type)
    summarizer = KeywordSummarizer(
        tokenize=tokenize,
        window=window,
        min_count=min_count,
        verbose=verbose,
    )
    try:
        keyword_list = summarizer.summarize(sentence_list, topk=topk)
    except ValueError:
        return []

    # term1_regex 필터링 적용
    return [(word, rank) for (word, rank) in keyword_list
            if not term1_regex.remove(word) if not english_regex.remove(word)
            if not common_regex.remove(word)]
Ejemplo n.º 4
0
    '용의자 소지 사제총기 2정 서울 연합뉴스 임헌정 기자 서울 시내에서 폭행 용의자가 현장 조사를 벌이던 경찰관에게 사제총기를 발사해 경찰관이 숨졌다 19일 오후 6시28분 강북구 번동에서 둔기로 맞았다 는 폭행 피해 신고가 접수돼 현장에서 조사하던 강북경찰서 번동파출소 소속 김모 54 경위가 폭행 용의자 성모 45 씨가 쏜 사제총기에 맞고 쓰러진 뒤 병원에 옮겨졌으나 숨졌다 사진은 용의자가 소지한 사제총기',
    '신고를 받고 번동파출소에서 김창호 54 경위 등 경찰들이 오후 6시 29분께 현장으로 출동했다 성씨는 그사이 부동산 앞에 놓아뒀던 가방을 챙겨 오패산 쪽으로 도망간 후였다',
    '김 경위는 오패산 터널 입구 오른쪽의 급경사에서 성씨에게 접근하다가 오후 6시 33분께 풀숲에 숨은 성씨가 허공에 난사한 10여발의 총알 중 일부를 왼쪽 어깨 뒷부분에 맞고 쓰러졌다',
    '김 경위는 구급차가 도착했을 때 이미 의식이 없었고 심폐소생술을 하며 병원으로 옮겨졌으나 총알이 폐를 훼손해 오후 7시 40분께 사망했다',
    '김 경위는 외근용 조끼를 입고 있었으나 총알을 막기에는 역부족이었다',
    '머리에 부상을 입은 이씨도 함께 병원으로 이송됐으나 생명에는 지장이 없는 것으로 알려졌다',
    '성씨는 오패산 터널 밑쪽 숲에서 오후 6시 45분께 잡혔다',
    '총격현장 수색하는 경찰들 서울 연합뉴스 이효석 기자 19일 오후 서울 강북구 오패산 터널 인근에서 경찰들이 폭행 용의자가 사제총기를 발사해 경찰관이 사망한 사건을 조사 하고 있다',
    '총 때문에 쫓던 경관들과 민간인들이 몸을 숨겼는데 인근 신발가게 직원 이모씨가 다가가 성씨를 덮쳤고 이어 현장에 있던 다른 상인들과 경찰이 가세해 체포했다',
    '성씨는 경찰에 붙잡힌 직후 나 자살하려고 한 거다 맞아 죽어도 괜찮다 고 말한 것으로 전해졌다',
    '성씨 자신도 경찰이 발사한 공포탄 1발 실탄 3발 중 실탄 1발을 배에 맞았으나 방탄조끼를 입은 상태여서 부상하지는 않았다',
    '경찰은 인근을 수색해 성씨가 만든 사제총 16정과 칼 7개를 압수했다 실제 폭발할지는 알 수 없는 요구르트병에 무언가를 채워두고 심지를 꽂은 사제 폭탄도 발견됐다',
    '일부는 숲에서 발견됐고 일부는 성씨가 소지한 가방 안에 있었다'
]

keywords = keyword_extractor.summarize(sents, topk=30)


def komoran_tokenize(sent):
    return komoran.pos(sent, join=True)


keyword_extractor = KeywordSummarizer(tokenize=komoran_tokenize, window=-1)
keywords = keyword_extractor.summarize(sents, topk=30)


def komoran_tokenize(sent):
    words = komoran.pos(sent, join=True)
    words = [
        w for w in words
        if ('/NN' in w or '/XR' in w or '/VA' in w or '/VV' in w)
Ejemplo n.º 5
0
    lines = list(filter(None, lines))
    data = ' '
    for line in lines:
        if line == lines[0]:
            continue
        elif line == lines[1]:
            continue
        else:
            line = line.strip()
            data = data + line
            data = data + "\n"

    # 구 단위로
    sents = okt.phrases(data)
    summarizer = KeywordSummarizer(tokenize=okt_tokenizer_ox, min_count=0, min_cooccurrence=1)
    keywords1 = summarizer.summarize(sents, topk=30)

    # 띄어쓰기로 나눈거
    sents = subword_tokenizer(data)
    summarizer = KeywordSummarizer(tokenize=okt_tokenizer_ox, min_count=0, min_cooccurrence=1)
    keywords2 = summarizer.summarize(sents, topk=30)

    keywords_1 = []
    keywords_2 = []

    for j in range(1, 31):
        keywords_1.append(keywords1[j-1][0])
        keywords_2.append(keywords2[j-1][0])

    f = open("key_word_" + str(i) + ".txt", "w", encoding='UTF-8')
Ejemplo n.º 6
0
    return Difinitive_Title, Difinitive_Content


komoran = Komoran()


def komoran_tokenize(sent):
    words = komoran.pos(sent, join=True)
    words = [
        w for w in words
        if ('/NN' in w or '/XR' in w or '/VA' in w or '/VV' in w)
    ]
    return words


keyword_extractor = KeywordSummarizer(tokenize=komoran_tokenize,
                                      window=-1,
                                      verbose=False)


def komoran_tokenize(sent):
    return komoran.pos(sent, join=True)


title, Content = text_refine()

keyword_extractor = KeywordSummarizer(tokenize=komoran_tokenize, window=-1)
keywords = keyword_extractor.summarize(Content, topk=300)

print(keywords)
Ejemplo n.º 7
0
    with open('data/애매한영화/' + name, 'w', encoding='euc-kr', newline='') as f2:
        wr = csv.writer(f2)
        wr.writerow([
            'movie_id', 'text_rank', 'content', 'emotion', 'rating',
            'total_rank_pred', 'posneg_len', 'total_len'
        ])
        for i in pos_ks:
            wr.writerow(i)
        for i in neg_ks:
            wr.writerow(i)

    keyword_extractor = KeywordSummarizer(tokenize=mecab_noun_tokenizer,
                                          window=2,
                                          verbose=True)
    pos_keywords = keyword_extractor.summarize(pos_samples_sents, topk=100)
    neg_keywords = keyword_extractor.summarize(neg_samples_sents, topk=100)
    pos_wordrank = {}
    neg_wordrank = {}
    for i in range(len(pos_keywords)):
        pos_wordrank[pos_keywords[i][0]
                     [:pos_keywords[i][0].find('/')]] = pos_keywords[i][1]
    for i in range(len(neg_keywords)):
        neg_wordrank[neg_keywords[i][0]
                     [:neg_keywords[i][0].find('/')]] = neg_keywords[i][1]

    if '영화' in pos_wordrank.keys():
        del pos_wordrank['영화']
    if '것' in pos_wordrank.keys():
        del pos_wordrank['것']
    if '듯' in pos_wordrank.keys():