PyKomoran.core module

class PyKomoran.core.Komoran(model_path, max_heap=1024)

Bases: object

Komoran(Java)의 Python Wrapper Class입니다.

Parameters:
  • model_path (str) – Komoran 객체 초기화를 위한 model path (절대 경로)
  • max_heap (int) – JVM의 Max Heap Size (기본값: 1024, 단위: MB)

Examples

기본 모델( STABLE , EXP ) 외에 사용자가 직접 생성한 모델이 위치하는 절대 경로 를 이용하여 Komoran 객체를 생성할 수 있습니다.

>>> # 기본으로 제공하는 LIGHT 모델로 Komoran 객체를 생성합니다.
>>> komoran = Komoran("STABLE")
>>> # 기본으로 제공하는 FULL 모델로 Komoran 객체를 생성합니다.
>>> komoran = Komoran("EXP")
>>> # 사용자가 미리 생성 모델로 Komoran 객체를 생성합니다.
>>> komoran_user = Komoran("/some/where/path/Komoran/Model")
get_list(sentence)

입력 문장의 형태소 분석 결과를 Pair 의 목록으로 반환합니다.

Parameters:sentence (str) – 분석할 문장
Returns:형태소 Pair 의 List
Return type:list

Examples

>>> # komoran은 Komoran 객체입니다.
>>> komoran.get_list("① 대한민국은 민주공화국이다.")
[①/SW, 대한민국/NNP, 은/JX, 민주공화국/NNP, 이/VCP, 다/EF, ./SF]
get_morphes_by_tags(sentence, tag_list=None)

입력 문장의 형태소 분석 결과 중, 주어진 품사들만 반환합니다. 주어진 품사가 없을 경우 전체 형태소를 반환합니다.

Parameters:
  • sentence (str) – 분석할 문장
  • tag_list (list) – 반환받을 품사 목록 (기본값: 전체 형태소)
Returns:

입력 문장의 주어진 품사들에 해당하는 형태소(str) List

Return type:

list

Examples

>>> # komoran은 Komoran 객체입니다.
>>> komoran.get_morphes_by_tags("① 대한민국은 민주공화국이다.", tag_list=['NNP', 'NNG', 'SF'])
['대한민국', '민주공화국', '.']
>>> # tag_list를 지정하지 않으면(=빈 List를 tag_list로 제공하면) 아무런 형태소도 반환하지 않습니다.
>>> komoran.get_morphes_by_tags("① 대한민국은 민주공화국이다.", tag_list=[])
[]
get_nouns(sentence)

입력 문장의 형태소 분석 결과 중, 명사류만 반환합니다.

Parameters:sentence (str) – 분석할 문장
Returns:입력 문장의 명사류에 해당하는 형태소(str) List
Return type:list

Examples

>>> # komoran은 Komoran 객체입니다.
>>> komoran.get_nouns("① 대한민국은 민주공화국이다.")
['대한민국', '민주공화국']
get_plain_text(sentence)

입력 문장의 형태소 분석 결과를 품사 태깅된 형태로 반환합니다.

Parameters:sentence (str) – 분석할 문장
Returns:입력 문장에 형태소 별로 품사 태깅된 형태
Return type:str

Examples

>>> # komoran은 Komoran 객체입니다.
>>> komoran.get_plain_text("① 대한민국은 민주공화국이다.")
'①/SW 대한민국/NNP 은/JX 민주공화국/NNP 이/VCP 다/EF ./SF'
get_token_list(sentence, flatten=True, use_pos_name=False)

입력 문장의 형태소 분석 결과를 Token 의 목록으로 반환합니다.

Parameters:
  • sentence (str) – 분석할 문장
  • flatten (bool) –

    어절 무시 여부 (기본값: True)

    True 인 경우 어절을 무시하고 하나의 List로 반환합니다.

    False 인 경우 어절별로 List를 만들어 List of List로 반환합니다.

  • use_pos_name (bool) –

    품사 이름 사용 여부 (기본값: False)

    True 인 경우 품사 기호 대신 품사 이름을 사용합니다.

    False 인 경우 품사 기호를 사용합니다.

Returns:

형태소 Token 의 List

Return type:

list

Examples

>>> # komoran은 Komoran 객체입니다.
>>> komoran.get_token_list("① 대한민국은 민주공화국이다.")
[①/SW(0,1), 대한민국/NNP(2,6), 은/JX(6,7), 민주공화국/NNP(8,13), 이/VCP(13,14), 다/EF(14,15), ./SF(15,16)]
>>> komoran.get_token_list("① 대한민국은 민주공화국이다.", flatten=False)
[[①/SW(0,1)], [대한민국/NNP(2,6), 은/JX(6,7)], [민주공화국/NNP(8,13), 이/VCP(13,14), 다/EF(14,15), ./SF(15,16)]]
>>> komoran.get_token_list("① 대한민국은 민주공화국이다.", use_pos_name=True)
[①/기타기호(논리수학기호,화폐기호)(0,1), 대한민국/고유 명사(2,6), 은/보조사(6,7), 민주공화국/고유 명사(8,13), 이/긍정 지정사(13,14), 다/종결 어미(14,15), ./마침표,물음표,느낌표(15,16)]
morphes(sentence)

konlpy에 익숙한 분들을 위한 get_morphes_by_tags() 메소드의 별칭입니다.

전체 형태소를 목록 형태로 반환합니다.

nouns(sentence)

konlpy에 익숙한 분들을 위한 get_nouns() 메소드의 별칭입니다.

명사 형태소를 목록 형태로 반환합니다.

pos(sentence, flatten=True)

konlpy에 익숙한 분들을 위한 get_token_list() 메소드의 별칭입니다.

전체 형태소를 Token 의 목록 형태로 반환하기 때문에 join 은 사용하지 않습니다.

set_fw_dic(dic_path)

기분석 사전을 적용합니다.

Parameters:dic_path (str) – 기분석 사전이 존재하는 경로 (절대 경로)

Examples

이 예제에서는 사용자 사전 적용 전/후의 형태소 분석 결과를 비교합니다.

사용자 사전이 위치한 경로는 /Users/9bow/Workspace/KOMORAN/fwd.user 이고, 파일 내용은 아래와 같다고 가정합니다.

# 이 파일은 기분석 사전입니다.
# 기분석 사전은 어절이 100% 일치하는 경우에만 적용이 됩니다.
# 분석된 결과의 품사열은 grammar에서 출현 가능한 형태여야 합니다.
샤인웨어    NNP
>>> # komoran은 Komoran 객체입니다.
>>> komoran.get_plain_text("샤인웨어는 자연어 처리를 연구합니다.")
'샤인/NNP 웨어/NNG 는/JX 자연어/NNP 처리/NNG 를/JKO 연구/NNG 하/XSV ㅂ니다/EF ./SF'
>>> komoran.set_user_dic("/Users/9bow/Workspace/KOMORAN/fwd.user")
>>> komoran.get_plain_text("샤인웨어는 자연어 처리를 연구합니다.")
'샤인웨어/NNP 는/JX 자연어/NNP 처리/NNG 를/JKO 연구/NNG 하/XSV ㅂ니다/EF ./SF'
set_user_dic(dic_path)

사용자 사전을 적용합니다.

Parameters:dic_path (str) – 사용자 사전이 존재하는 경로 (절대 경로)

Examples

이 예제에서는 사용자 사전 적용 전/후의 형태소 분석 결과를 비교합니다.

사용자 사전이 위치한 경로는 /Users/9bow/Workspace/KOMORAN/dic.user 이고, 파일 내용은 아래와 같다고 가정합니다.

# 이 파일은 사용자 사전 파일입니다.
# 입력 문장 내에 사용자 사전에 포함된 내용이 있는 구간에 대해서는 해당 품사를 출력하게 됩니다.
# 형태소의 품사를 적지 않으면 기본적으로 고유명사(NNP)로 인지합니다.
샤인웨어    NNP
TV는 사랑을 싣고      NNP
>>> # komoran은 Komoran 객체입니다.
>>> komoran.get_plain_text("샤인웨어에서 단체로 캡틴 마블을 관람했습니다.")
'샤인/NNP 웨어/NNG 에서/JKB 단체/NNG 로/JKB 캡틴 마블/NNP 을/JKO 관람/NNG 하/XSV 았/EP 습니다/EF ./SF'
>>> komoran.set_user_dic("/Users/9bow/Workspace/KOMORAN/dic.user")
>>> komoran.get_plain_text("샤인웨어에서 단체로 캡틴 마블을 관람했습니다.")
'샤인웨어/NNP 에서/JKB 단체/NNG 로/JKB 캡틴 마블/NNP 을/JKO 관람/NNG 하/XSV 았/EP 습니다/EF ./SF'