All Downloads are FREE. Search and download functionalities are using the official Maven repository.

kr.bydelta.koala.POS.scala Maven / Gradle / Ivy

package kr.bydelta.koala

/**
  * 통합 품사 표기
  */
object POS extends Enumeration {
  /** 통합품사 타입 **/
  type POSTag = Value

  /** [체언] ''일반명사'': 일반 개념을 표시하는 명사. **/
  val NNG = Value
  /** [체언] ''고유명사'' : 낱낱의 특정한 사물이나 사람을 다른 것들과 구별하여 부르기 위하여 고유의 기호를 붙인 이름. **/
  val NNP = Value

  /** [체언] ''일반 의존명사'' : 의미가 형식적이어서 다른 말 아래에 기대어 쓰이는 명사.
    * ‘것1’, ‘따름1’, ‘뿐1’, ‘데1’ 따위가 있다.
    * */
  val NNB = Value

  /** [체언] ''단위성 의존명사'' : 수효나 분량 따위의 단위를 나타내는 의존 명사.
    * ‘쌀 한 말, 쇠고기 한 근, 굴비 한 두름, 북어 한 쾌, 고무신 한 켤레, 광목 한 필’에서 ‘말3’, ‘근3’, ‘두름1’, ‘쾌1’, ‘켤레2’, ‘필2’
    * */
  val NNM = Value
  /** [체언] ''수사'' : 사물의 수량이나 순서를 나타내는 품사. 양수사와 서수사가 있다. **/
  val NR = Value
  /** [체언] ''대명사'' : 사람이나 사물의 이름을 대신 나타내는 말. 또는 그런 말들을 지칭하는 품사 **/
  val NP = Value

  /** [용언] ''동사'' : 사물의 동작이나 작용을 나타내는 품사. **/
  val VV = Value
  /** [용언] ''형용사'' : 사물의 성질이나 상태를 나타내는 품사. **/
  val VA = Value
  /** [용언] ''보조용언'' : 본용언과 연결되어 그것의 뜻을 보충하는 역할을 하는 용언. 보조 동사, 보조 형용사가 있다.
    * ‘ 가지고 싶다’의 ‘싶다’, ‘먹어 보다’의 ‘보다1’ 따위이다.
    * */
  val VX = Value
  /** [용언] ''긍정지정사(이다)'': 무엇이 무엇이라고 지정하는 단어. (이다) **/
  val VCP = Value
  /** [용언] ''부정지정사(아니다)'': 무엇이 무엇이 아니라고 지정하는 단어. (아니다) **/
  val VCN = Value

  /** [수식언] ''관형사'' : 체언 앞에 놓여서, 그 체언의 내용을 자세히 꾸며 주는 품사. **/
  val MM = Value
  /** [수식언] ''부사'' : 용언 또는 다른 말 앞에 놓여 그 뜻을 분명하게 하는 품사. **/
  val MAG = Value
  /** [수식언] ''접속부사'' : 앞의 체언이나 문장의 뜻을 뒤의 체언이나 문장에 이어 주면서 뒤의 말을 꾸며 주는 부사.
    * ‘ 그러나’, ‘그런데’, ‘그리고’, ‘하지만’ 따위가 있다.
    * */
  val MAJ = Value

  /** [독립언] ''감탄사'' : 말하는 이의 본능적인 놀람이나 느낌, 부름, 응답 따위를 나타내는 말의 부류이다. **/
  val IC = Value

  /** [관계언] ''주격 조사'' :
    * 문장 안에서, 체언이 서술어의 주어임을 표시하는 격 조사. ‘이/가’, ‘께서’, ‘에서2’ 따위가 있다.
    * */
  val JKS = Value
  /** [관계언] ''보격 조사'' :
    * 문장 안에서, 체언이 보어임을 표시하는 격 조사.
    * ‘철수는 위대한 학자가 되었다.’에서의 ‘가11’, ‘그는 보통 인물이 아니다.’에서의 ‘이27’ 따위이다.
    * */
  val JKC = Value
  /** [관계언] ''관형격 조사'' : 문장 안에서, 앞에 오는 체언이 뒤에 오는 체언의 관형어임을 보이는 조사. **/
  val JKG = Value
  /** [관계언] ''목적격 조사'' : 문장 안에서, 체언이 서술어의 목적어임을 표시하는 격 조사. ‘을/를’이 있다. **/
  val JKO = Value
  /** [관계언] ''부사격 조사'' : 문장 안에서, 체언이 부사어임을 보이는 조사.
    * ‘ 에4’, ‘에서2’, ‘(으)로’, ‘와/과’, ‘보다4’ 따위가 있다. **/
  val JKB = Value
  /** [관계언] ''호격 조사'' :
    * 문장 안에서, 체언이 부름의 자리에 놓이게 하여 독립어가 되게 하는 조사.
    * ‘영숙아’의 ‘아9’, ‘철수야’의 ‘야12’ 따위가 있다. **/
  val JKV = Value
  /** [관계언] ''인용격 조사'': 앞의 말이 인용됨을 나타내는 조사. **/
  val JKQ = Value
  /** [관계언] ''접속 조사'' :
    * 둘 이상의 단어나 구 따위를 같은 자격으로 이어 주는 구실을 하는 조사.
    * ‘와4’, ‘과12’, ‘하고5’, ‘(이)나’, ‘(이)랑’ 따위가 있다. **/
  val JC = Value
  /** [관계언] ''보조사'' :
    * 체언, 부사, 활용 어미 따위에 붙어서 어떤 특별한 의미를 더해 주는 조사.
    * ‘은5’, ‘는1’, ‘도15’, ‘만14’, ‘까지3’, ‘마저’, ‘조차8’, ‘부터’ 따위가 있다.
    * */
  val JX = Value

  /** ''선어말 어미'' :
    * 어말 어미 앞에 나타나는 어미.
    * ‘-시-23’, ‘-옵-1’ 따위와 같이 높임법에 관한 것과
    * ‘-았-’, ‘-는-2’, ‘-더-2’, ‘-겠-’ 따위와 같이 시상(時相)에 관한 것이 있다.
    * */
  val EP = Value
  /** ''종결 어미'' :
    * 한 문장을 종결되게 하는 어말 어미.
    * 동사에는 평서형ㆍ감탄형ㆍ의문형ㆍ명령형ㆍ청유형이 있고, 형용사에는 평서형ㆍ감탄형ㆍ의문형이 있다.
    * */
  val EF = Value
  /** ''연결 어미''
    * 어간에 붙어 다음 말에 연결하는 구실을 하는 어미.
    * ‘-게10’, ‘-고25’, ‘-(으)며’, ‘-(으)면’, ‘-(으)니’, ‘-아/어’, ‘-지23’ 따위가 있다.
    * */
  val EC = Value
  /** ''명사형 전성어미'': 용언의 어간에 붙어 명사의 기능을 수행하게 하는 어미. **/
  val ETN = Value
  /** ''관형형 전성어미'': 용언의 어간에 붙어 관형사의 기능을 수행하게 하는 어미. **/
  val ETM = Value

  /** ''체언 접두사'' : 파생어를 만드는 접사로, 어근이나 단어의 앞에 붙어 새로운 단어가 되게 하는 말. **/
  val XPN = Value
  /** ''용언 접두사'' : 파생어를 만드는 접사로, 어근이나 단어의 앞에 붙어 새로운 단어가 되게 하는 말. **/
  val XPV = Value
  /** ''명사 파생 접미사'':
    * 파생어를 만드는 접사로, 어근이나 단어의 뒤에 붙어 새로운 명사가 되게 하는 말.
    * */
  val XSN = Value
  /** ''동사 파생 접미사'':
    * 파생어를 만드는 접사로, 어근이나 단어의 뒤에 붙어 새로운 동사가 되게 하는 말.
    * */
  val XSV = Value
  /** ''형용사 파생 접미사'':
    * 파생어를 만드는 접사로, 어근이나 단어의 뒤에 붙어 새로운 형용사가 되게 하는 말.
    * */
  val XSA = Value
  /** ''부사 파생 접미사'':
    * 파생어를 만드는 접사로, 어근이나 단어의 뒤에 붙어 새로운 부사가 되게 하는 말.
    * */
  val XSM = Value
  /** ''기타 접미사'':
    * 파생어를 만드는 접사로, 어근이나 단어의 뒤에 붙어 새로운 단어가 되게 하는 말.
    * */
  val XSO = Value
  /** ''어근'' :
    * 단어를 분석할 때, 실질적 의미를 나타내는 중심이 되는 부분. ‘덮개’의 ‘덮-’, ‘어른스럽다’의 ‘어른1’ 따위이다.
    * */
  val XR = Value

  /** 종결기호: 마침/물음/느낌표 **/
  val SF = Value
  /** 연결기호: 쉼표/가운뎃점/빗금 **/
  val SP = Value
  /** 묶음기호: 괄호/묶음표/따옴표 **/
  val SS = Value
  /** 생략기호: 줄임표 **/
  val SE = Value
  /** 기타기호 **/
  val SY = Value

  /** 명사 추정 범주 **/
  val UN = Value
  /** 동사 추정 범주 **/
  val UV = Value
  /** 분석 불능 범주 **/
  val UE = Value

  /** 외국어/한자 **/
  val SL = Value
  /** 숫자 **/
  val SN = Value


  /**
    * 체언인지 확인한다
    *
    * @return 체언인 경우 True
    */
  def isNoun: POSTag => Boolean = Set(NNG, NNP, NNB, NNM, NR, NP)

  /**
    * 용언인지 확인한다
    *
    * @return 용언인 경우 True
    */
  def isPredicate: POSTag => Boolean = Set(VV, VA, VX, VCP, VCN)

  /**
    * 수식언인지 확인한다
    *
    * @return 수식언인 경우 True
    */
  def isModifier: POSTag => Boolean = Set(MM, MAG, MAJ)

  /**
    * 관계언(조사)인지 확인한다
    *
    * @return 관계언인 경우 True
    */
  def isPostposition: POSTag => Boolean = Set(JKS, JKC, JKG, JKO, JKB, JKV, JKQ, JC, JX)

  /**
    * 어미인지 확인한다
    *
    * @return 어미인 경우 True
    */
  def isEnding: POSTag => Boolean = Set(EP, EF, EC, ETN, ETM)

  /**
    * 접사인지 확인한다
    *
    * @return 접사인 경우 True
    */
  def isAffix: POSTag => Boolean = Set(XPN, XPV, XSN, XSV, XSM, XSN, XSO, XR)

  /**
    * 접미사인지 확인한다
    *
    * @return 접사인 경우 True
    */
  def isSuffix: POSTag => Boolean = Set(XSN, XSV, XSM, XSN, XSO)

  /**
    * 기호인지 확인한다
    *
    * @return 기호인 경우 True
    */
  def isSymbol: POSTag => Boolean = Set(SF, SP, SS, SE, SY)

  /**
    * 미확인 단어인지 확인한다
    *
    * @return 미확인 단어인 경우 True
    */
  def isUnknown: POSTag => Boolean = Set(UN, UV, UE)
}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy