BigQuery로 n-gram 만들기

3190 단어 BigQuery
BigQuery에 전처리 함수가 있다는 것을 발견했습니다.
텍스트 분석에 사용할 수 있는 NGRAM 함수가 있으므로 메모.

ML.NGRAMS


ML.NGRAMS(array_input, range[, separator])

사용법



링크처의 페이지에 있지만, seapator나 range()를 지정할 수 있는 것이 기쁘다.
※range는, 보통 2gram 밖에 사용하지 않지만( 참고서 하지만 n을 3이상으로 해도 정밀도(퍼플렉시티)는
별로 오르지 않는다는 것이다).
그리고, 일본어에서도 ngram 작성해 주면 좋겠다고 생각했지만, 아마 없다.

분할 대상의 열을 공백이나 쉼표로 구분하여 넣으면 다음과 같이
SPLIT()를 사용하지 않고 array_input으로 바꾸고 나서 사용할 수 있다.
SELECT application_number,ML.NGRAMS(SPLIT(STRING_AGG(titles.text),' '), [1,2])
FROM `patents-public-data.patents.publications`,UNNEST(title_localized) as titles
WHERE filing_date > 20191201 AND SUBSTR(publication_number,0,2) = 'US'
GROUP BY application_number

제대로 2-gram을 만들어 출력해 준다.



기타



만든 n-gram은 그대로 AutoML Tables에 돌진하면 n-gram을 이용한 모델을 만들 수 있고,
BigQuery ML에서도 특징량으로 사용할 수 있다.
BigQuery의 온라인 수업을 받았는데, GCP상에서 기계 학습을 할 때의 선택사항이 이하 3개 있다는 것.
  • BigQueryML로 완결하는 방법 ( LOGISTIC_REG )
  • Auto ML
  • 직접 만든다(tensorflow 등)

  • 3가지 병렬로 이번 해보자.
    그 외에도 ML.POLYNOMIAL_EXPAND, ML.QUANTILE_BUCKETIZE, MIN_MAX_SCALER 등 원하는 기능이 있습니다.
    존재한다!
    지금 python이나 pipeline으로 가고 있는 것을, BigQuery가 점점 삼켜 가는 것 같은 생각이 든다.
    tensorflow의 모델도 BQML 안에서 처리해주는 것 같고. .

    좋은 웹페이지 즐겨찾기