tokenizer

개요

지정한 필드에 대해 tokenizer를 진행하는 명령어 입니다.

타입

TEXT

설명

input으로 받은 DataFrame과 tokenize할 field명을 입력받습니다. 선택한 필드를 tokenizer를 이용해 원하는 단위로 잘라 그 결과값을 새로운 필드를 추가해 출력합니다.

Examples

데이터가 다음과 같이 존재합니다.

id

Sentence

0

Hi I heard about Spark

1

I wish Java could use case classes

2

Logistic,regression,models,are,neat

Sentence 필드값을 이용해 word단위로 쪼개 테이블에 추가하는 예

... | tokenizer Sentence to words

명령어 이후 테이블

id

Sentence

words

0

Hi I heard about Spark

[Hi, I , heard , about , Spark]

1

I wish Java could use case classes

[I , wish , Jave , could , use , classes]

2

Logistic,regression,models,are,neat

[Logistic , regression , models , are , neat]

Parameters

... | tokenizer fields (pattern)

이름

설명

필수/옵션

fields

tokenizer를 사용할 필드명 입니다.
input_col to output_col 또는 input_col 으로 이루어져 있습니다.
예 :

필수

pattern

tokenize를 할 때 사용할 단위에 대한 정보입니다.
Default는 공백단위로 tokenize를 진행하고, option을 설정해 공백 이외에 추가적으로 tokenize를 진행합니다.
현재 미개발 상태입니다.

옵션

Parameters BNF

tokenizer_command : fields pattern

fields : field
       | fields COMMA field

field : WORD TO WORD
      | WORD

pattern : WORD EQUALS QUOTE COMMA QUOTE
        | WORD EQUALS QUOTE WORD QUOTE
        | WORD EQUALS QUOTE DOT QUOTE
        |

WORD = \w+
QUOTE = \'
EQUALS = \=
COMMA = \,
DOT = \.

개발사항

  • field를 1개가 아니라 여러개를 입력할 수 있는지 -> 구현 완료

  • pattern 을 잘못 이해하고 있었음 -> 추가 개발 사항

    • pattern = ‘,’ -> , 단위로 토큰을 자른다

    • pattern = ‘w+’ -> word 단위로 토큰을 자른다

    • 정규표현식 입력해야함

    • 그냥 Tokenizer() 에는 pattern 파라미터가 없음

    • RegExTokenizer() 안에 pattern 포함

    • 우선 pattern 고려 안하고 Tokenizer만 사용