단어집 모델

Bag-of-words model

단어 가방 모델은 자연어 처리정보 검색(IR)에서 사용되는 단순화된 표현입니다.이 모델에서 텍스트(예: 문장 또는 문서)는 단어의 가방(멀티셋)으로 표현되며, 문법과 어순은 무시하고 다중성은 유지합니다.단어 가방 모델은 컴퓨터 [1]비전에도 사용되었습니다.

단어 가방 모델은 분류자훈련시키기 위한 기능으로 [2]각 단어의 발생 빈도(빈도)를 사용하는 문서 분류 방법에서 일반적으로 사용됩니다.

언어적 맥락에서 "단어 모음"에 대한 초기 참조는 1954년 배포 [3]구조에 관한 젤리그 해리스의 기사에서 찾을 수 있다.

단어 가방 모델은 벡터 공간 모델의 한 예입니다.

구현 예시

다음 예제에서는 단어 가방을 사용하여 텍스트 문서를 모델링합니다.다음은 두 가지 간단한 텍스트 문서입니다.

(1) 존은 영화 보는 것을 좋아한다.Mary도 영화를 좋아한다. 
메리는 축구 경기 보는 것도 좋아한다. 

이 두 개의 텍스트 문서를 기반으로 각 문서에 대해 다음과 같이 목록이 구성됩니다.

"존',"실패","to",'시계',"실패","메리',"실패","실패",'너무'  "메리',"또한","실패","to",'시계',"실패","실패" 

단어 가방을 JSON 개체로 나타내 각 JavaScript 변수에 속성을 부여합니다.

BoW1 = {"존':1,"실패":2,"to":1,'시계':1,"실패":2,"메리':1,'너무':1}; BoW2 = {"메리':1,"또한":1,"실패":1,"to":1,'시계':1,"실패":1,"실패":1}; 

각 키는 단어이며, 각 값은 지정된 텍스트 문서에서 해당 단어의 발생 횟수입니다.

요소의 순서가 자유롭기 때문에 예를 들어{"too":1,"Mary":1,"movies":2,"John":1,"watch":1,"likes":2,"to":1}BoW1과도 동일합니다.이것은 엄밀한 JSON 오브젝트 표현에서도 기대할 수 있는 것입니다.

주의: 다른 문서가 이 두 개의 결합과 같은 경우,

(3) 존은 영화 보는 것을 좋아한다.Mary도 영화를 좋아한다.Mary는 또한 축구 경기를 보는 것을 좋아한다. 

JavaScript의 표현은 다음과 같습니다.

BoW3 = {"존':1,"실패":3,"to":2,'시계':2,"실패":2,"메리':2,'너무':1,"또한":1,"실패":1,"실패":1}; 

따라서 백 대수에서 볼 수 있듯이, 단어 가방 표현에서 두 문서의 "합집합"은 형식적으로 각 원소의 곱셈을 합친 분리된 합집합이다.


3 W 2 ( \ 3 = 1 \ BoW 2)

어플

실제로 Bag-of-words 모델은 주로 기능 생성 도구로 사용됩니다.텍스트를 "단어 묶음"으로 변환한 후 텍스트를 특징짓기 위한 다양한 척도를 계산할 수 있습니다.단어집 모델에서 계산되는 특징 또는 특징의 가장 일반적인 유형은 용어 빈도, 즉 용어가 텍스트에 나타나는 횟수입니다.위의 예에서는 다음 2개의 목록을 작성하여 모든 고유 단어(BoW1 및 BoW2)의 용어 빈도를 기록할 수 있습니다(BoW3과 같이 순서부여됨).

(1) [1, 2, 1, 1, 2, 1, 1, 0, 0, 0] (2) [0, 1, 1, 1, 0, 1, 0, 1, 1, 1] 

목록의 각 항목은 목록 내 해당 항목의 카운트를 나타냅니다(이것도 히스토그램 표현).예를 들어, 첫 번째 목록(문서 1을 나타냄)에서 처음 두 개의 항목은 "1,2"입니다.

  • 첫 번째 항목은 목록의 첫 번째 단어인 "John"에 해당하며, "John"이 첫 번째 문서에 한 번 나타나기 때문에 값이 "1"입니다.
  • 두 번째 항목은 목록의 두 번째 단어인 "좋아요"에 해당하며, 첫 번째 문서에 "좋아요"가 두 번 나타나므로 값은 "2"입니다.

이 목록(또는 벡터) 표현은 원래 문장의 단어 순서를 유지하지 않습니다.이것이 백 오브 워즈 모델의 주요 특징입니다.이러한 종류의 표현에는 이메일 [1]필터링과 같은 몇 가지 응용 프로그램이 있습니다.

단, 용어 빈도가 반드시 텍스트를 가장 잘 나타내는 것은 아닙니다."the", "a", "to"와 같은 일반적인 단어는 거의 항상 텍스트에서 빈도가 가장 높은 용어입니다.따라서 raw count가 높다고 해서 반드시 대응하는 단어가 더 중요한 것은 아닙니다.이 문제에 대처하기 위해 용어 빈도를 "정규화"하는 가장 일반적인 방법 중 하나는 문서 빈도의 역수(tf–idf)로 용어에 가중치를 부여하는 것입니다.또한 분류의 특정 목적을 위해 문서의 [4]등급 라벨을 설명하기 위해 감독된 대안이 개발되었다.마지막으로, 일부 문제에 대한 주파수 대신 이진수(존재/부재 또는 1/0) 가중치가 사용됩니다(예: 이 옵션은 WEKA 기계 학습 소프트웨어 시스템에서 구현됩니다).

n그램 모델

단어 가방 모델은 순서가 없는 문서 표현이며 단어 수만 중요합니다.예를 들어 위의 예에서 존은 영화 보는 것을 좋아한다.메리는 영화도 좋아한다"라고 말했을 때, 동사 "likes"가 항상 이 텍스트에서 사람의 이름 뒤에 따라온다는 것을 드러내지 않을 것이다.대안으로, n-그램 모델은 이 공간 정보를 저장할 수 있습니다.의 동일한 예에 적용하면, bigram 모델은 텍스트를 다음 단위로 해석하고 이전과 같이 각 단위의 용어 빈도를 저장합니다.

[     "존이 좋아해",     "접수처",     '보는 것',     "영화 보기",     "메리가 좋아",     "영화 보기",     '도대체', ] 

개념적으로 단어 백오브워드 모델은 n=1인 n그램 모델의 특수한 경우로 볼 수 있습니다.n>1의 경우 모델은 w-singling으로 명명됩니다(여기서 w는 그룹화된 단어의 수를 나타내는n과 동일합니다).자세한 내용은 언어 모델을 참조하십시오.

Python 구현

부터 keras.reprocessing. 수입품 토큰라이저  문장. = [존은 영화 보는 걸 좋아해요.메리도 영화를 좋아해요.]  방어하다 print_bow(문장.: 목록.[스트레이트]) -> 없음.:     토큰라이저 = 토큰라이저()     토큰라이저.fit_on_filters (적합)(문장.)     시퀀스 = 토큰라이저.텍스트에서 텍스트로(문장.)     word_index = 토큰라이저.word_index      절하다 = {}     위해서 열쇠  word_index:         절하다[열쇠] = 시퀀스[0].세어보세요(word_index[열쇠])      인쇄물(f"단어 문장 1:\n{절하다}")     인쇄물(f'찾았다'{(word_index)}고유 토큰입니다.')  print_bow(문장.) 

해싱 트릭

사전을 사용하는 일반적인 대안은 해싱 트릭입니다. 이 트릭에서는 단어가 해싱 [5]함수로 인덱스에 직접 매핑됩니다.따라서 사전을 저장하는 데 메모리가 필요하지 않습니다.해시 충돌은 일반적으로 해시 버킷 수를 늘리기 위해 해방된 메모리를 통해 처리됩니다.실제로 해시는 단어 백오브워드 모델의 구현을 단순화하고 확장성을 향상시킵니다.

사용 예: 스팸 필터링

베이지안 스팸 필터링에서 전자 메일 메시지는 스팸을 나타내는 것과 합법적인 전자 메일("햄")을 나타내는 두 가지 확률 분포 중 하나에서 선택된 무질서한 단어 집합으로 모델링됩니다.말로 가득 찬 두 개의 가방이 있다고 상상해 보세요.한 가방은 스팸 메시지에서 찾을 수 있는 단어로 채워져 있고, 다른 가방은 합법적인 이메일에서 찾을 수 있는 단어로 채워져 있습니다.어떤 단어가든 두 가방의 어딘가에 있을 수 있지만, "스팸" 가방에는 "스톡", "비아그라", "구매"와 같은 스팸 관련 단어가 훨씬 더 많이 들어 있고, "햄" 가방에는 사용자의 친구나 직장과 관련된 단어가 더 많이 들어 있습니다.

전자 메일 메시지를 분류하기 위해 베이지안 스팸 필터는 메시지가 두 가방 중 하나에서 무작위로 쏟아진 단어 더미라고 가정하고 베이지안 확률을 사용하여 전자 메일 메시지가 어떤 가방에 들어 있을 가능성이 더 높은지 판단합니다.

「 」를 참조해 주세요.

메모들

  1. ^ a b Sivic, Josef (April 2009). "Efficient visual search of videos cast as text retrieval" (PDF). IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL. 31, NO. 4. IEEE. pp. 591–605.
  2. ^ McTear et al. 2016, 페이지 167
  3. ^ Harris, Zellig (1954). "Distributional Structure". Word. 10 (2/3): 146–62. doi:10.1080/00437956.1954.11659520. And this stock of combinations of elements becomes a factor in the way later choices are made ... for language is not merely a bag of words but a tool with particular properties which have been fashioned in the course of its use
  4. ^ Youngjoong Ko (2012). "A study of term weighting schemes using class information for text classification". SIGIR'12. ACM.
  5. ^ Weinberger, K. Q.; Dasgupta A.; Langford J.; Smola A.; Attenberg, J. (2009). "Feature hashing for large scale multitask learning". Proceedings of the 26th Annual International Conference on Machine Learning: 1113–1120. arXiv:0902.2206. Bibcode:2009arXiv0902.2206W.

레퍼런스

  • McTear, Michael (et al) (2016).컨버세이션인터페이스Springer International Publishing.