770 likes | 1.09k Views
Ch 4. Processing Text . 2011. 1. 17. 4.1 From Words to Terms. 검색하고자 하는 text 가 모아진 뒤 다음 할 일은 , 검색을 단순화하기 위한 텍스트의 수정 혹은 재구성 여부를 결정하는 것이다 . 이 단계를 text transformation 혹은 text processing 이라고 한다 . Text processing 의 목적은 , word 가 등장하는 여러 형태를 보다 일관된 index term 으로 변환하는 것이다 .
E N D
Ch 4. Processing Text 2011. 1. 17.
4.1 From Words to Terms • 검색하고자 하는 text가 모아진 뒤다음 할 일은, 검색을 단순화하기 위한 텍스트의 수정 혹은 재구성 여부를 결정하는 것이다. • 이 단계를 text transformation 혹은 text processing이라고 한다. • Text processing의 목적은,word가 등장하는 여러 형태를 보다 일관된 index term으로 변환하는 것이다. • Index term이란 문서의 콘텐트를 나타내는 단어 중 검색에 사용되는 것이다.
4.1 From Words to Terms • Text Processing과 관련해 가장 단순한 방법은 아무 것도 하지 않는 것이다. • Ex > Word Processor의 “find” feature • 단점 : 제한적이다. • Ex> “computer software” “Computer software” • 이 경우 대소문자 구분을 무시하는 것은 원하는 문서를 찾을 수 있는 확률을 높여준다 -> text processing의 매우 기본적인 형태 • 많은 검색엔진들은 대소문자를 구분하지 않을 뿐 아니라 다른 작업을 하기도 한다. • 구두점 제거, tokenization, stopping, stemming, formatting change (web page에서 bold 혹은 large text를 변환), explicit structure(title, chapter등을 활용), link
4.1 From Words to Terms • 이런 text processing기법들은 매우 단순하다 • 컴퓨터가 복잡한 추론 과정을 하지 않는다. • 검색엔진이 동작할 수 있는 것은, 단어의 occurrences나 co-occurrences를 이용해 text의 의미를 capture할 수 있기 때문이다. • Text의 statistical nature를 이해하는 것이 검색 모델 및 랭킹 알고리즘을 이해하는데 기본이 되기 때문에, 이 장에서는 text statistics에 대해 논의해 본다. • Information extraction technique • 사람이름, 조직이름, 주소 등을 식별 • Natural language processing을 이용한 Question answering task -> Ch 11 • Classification : 단어의 semantic category를 식별 -> Ch 9
4.2 Text Statistics • Although language is incredibly rich and varied, it is also very predictable. • 1958년에 Luhn은 Significance of a word depended on its frequency in the document • 단어 빈도수에 대한 statistical model은 정보검색에서 매우 중요하며 Ranking algorithm, query transformation, indexing technique등에서 사용된다. • 통계적 관점에서, 단어 빈도수의 분포는 매우 “skewed”한 형태를 띄고 있다. • 몇몇 단어가 높은 빈도수를 가지고, 많은 단어들이 낮은 빈도수를 가진다.
4.2 Text Statistics • Zipf’s law • Associated Press collection of news stories from 1989 (AP89) • 20만개의 단어 중 7만개의 단어가 단 한번 등장 -> HapaxLegomena
4.2 Text Statistics • AP89의 빈도수 상위50개 단어
4.2 Text Statistics • log-log plot of the r.Pr values
4.2 Text Statistics • Zipf’s law를 이용해 단어의 빈도수가 주어질 때 단어의 등장 비율을 예측하는 공식을 만들 수 있다. • 어떤 단어가 n번 등장할 때 rank는 rn = k / n • 같은 빈도수를 가지는 단어가 하나 이상 있을 수 있다. • 여기서 rn은 같은 빈도수를 가지는 단어들 중 가장 마지막 순위라 가정한다 빈도수가 n인 단어의 수는 rn – rn+1로 나타낼 수 있다.
4.2 Text Statistics • 빈도수가 n인 단어의 수 : rn – rn+1 = k / n – k / (n+1) = k / n(n+1) • 가장 마지막 순위 단어의 rank는 rn = k / n -> k / 1 = k • TREC Volume 3 Corpus (336,310 documents, 508,209 unique words)
4.2.1 Vocabulary Growth Heap’s law v = k x nß • v : vocabulary size for a corpus of size n words • k, ß : parameters that vary for each collection • 10 ≤ k ≤ 100 ß ≈ 0.5 • AP89 : contains about 40 million words
4.2.1 Vocabulary Growth • GOV2 : contains more than 20 billion words
4.2.2 Estimating Collection and Result Set Sizes • Word occurrence statistics를 웹검색에서 검색결과 문서 수를 예측하는데 사용할 수 있다. Results : query word 모두를 가지고 있는 문서 로 가정 • 단어가 서로 독립적으로 등장한다고 가정 P (a ∩ b ∩ c ) = P(a) x P(b) x P(c) P(a) = fa / N … fabc= N x fa / N x fb / N x fc / N = (fa x fb x fc ) / N2
4.2.2 Estimating Collection and Result Set Sizes GOV2 Web Collection (Collection size N : 25,205,179)
4.2.2 Estimating Collection and Result Set Sizes • Co-occurrence 정보를 활용 P (a ∩ b ∩ c ) = P(a ∩ b) x P(c | (a ∩ b ) ) • P(c | (a ∩ b ) ) 을 P(c | a) 혹은 P(c | b)로 approximation해서 계산 P(a ∩ b) x P(c | (a ∩ b ) ) ≈ P(a ∩ b) x P(c | a ) = P(a ∩ b) x P(a ∩ c ) / P(a)
4.2.2 Estimating Collection and Result Set Sizes • Word triple 의 빈도수와 같은 추가 정보를 사용하지 않고도 Result size에 대한 합리적인 추정이 가능하다
4.2.2 Estimating Collection and Result Set Sizes • 검색 엔진에 저장된 문서의 전체 개수를 추정하는 일은 학문적으로(Web이 얼마나 큰가?), 비지니스적으로(어떤 검색엔진이 더 나은 coverage를 가지고 있나?) 큰 관심영역이다. • 한 가지 방법으로 word independence가정을 사용
4.3 Document Parsing 4.3.1 Overview • Document parsing은 text document의 content 및 structure에 대한 인식 과정을 포함한다 • 대부분 문서의 primary content는 word 이다. • 문서의 일련의 글자들에서 각 단어를 인식하는 일을 tokenizing 혹은 lexical analysis라고 한다 • 문서에는 단어 외에도 metadata, image, graphics, code, table등과 같이 다른 종류의 콘텐트 들도 있다. • Metadata : document에 대한 정보로서, text content에 포함되어 있지 않음 • ex > date, author, HTML tag
4.3 Document Parsing • Parser는 markup language의 문법 및 문서에서 인식된 tag 및 다른 metadata를 이용해 문서의 구조를 해석하고 문서의 structure와 content를 포함하는 representation을 생성한다. • 가령 HTML parser의 경우 webpage의 구조를 해석해 DOM model representation을 생성한다. • 검색 엔진에서는 document parser의 출력물이 인덱스를 생성하는데 사용된다.
4.3.2 Tokenizing • Tokenizing : Forming words from sequence of characters • 버려지는 정보가 너무 많아, 대부분의 검색 엔진에서 적합하지 못하다
4.3.2 Tokenizing • Tokenization과 관련된 이슈들
4.3.2 Tokenizing • 여러 language processing 기법들을 사용하기 위해서는 tokenizing process가 단순하면서 유연해야 한다 • 한 가지 방법으로, • First pass tokenizing에서는 문서의 markup 또는 tag를 인식하는데 집중하고, • Second pass tokenizing에서는 tag등을 제외한, 검색에 활용될 문서의 content에 집중한다 • Query에 따라 문서의 어떤 부분이 필요할지 모르므로, 모든 text가 중요하다. -> Tokenizing rule은 대부분의 content를 검색 가능한 token으로 변환할 수 있어야 한다.
4.3.2 Tokenizing • Tokenizer에서 모든 작업을 하기 보다 Word variant를 식별하는 작업 문자열이 이름 혹은 날짜인지를 식별하는 작업 등은 분리된 process에서 처리 – stemming, information extraction, query transformation • 위의 복잡한 이슈들이 별도의 Process에서 처리된다고 가정하면, tokenizing에서는 hyphen, apostrophes, period등은 word terminator로 가정하고 처리해도 된다 • rx-7 -> rx 7 • rx-7과 rx 7 을 연관시키는 작업은 query transformation단계에서 이루어진다
4.3.2 Tokenizing • 하지만 이러한 단어간의 추론 과정을 query transformation에 완전히 의존하는 것은, 효과성 저하의 우려가 있다. • 이 경우 몇 가지 rule을 tokenizer에 추가할 수 있다. • O’connor -> oconnor
4.3.2 Tokenizing 요약 • 대부분의 tokenizing process는 대개 • 첫 번째로 문서의 구조를 식별하는 과정 • 두 번째로 text를 space 혹은 특수문자로 끊어 단어를 식별하는 과정 으로 이루어진다. • 일부 복잡한 이슈들은 information extraction 및 query transformation을 통해 해결할 수 있다. • 특수문자를 처리하기 위해몇 가지 Rule이 추가되기도 한다.
4.3.3 Stopping • 언어에는 많은 function word들이 있다. • ex > the, a, an, that, over, under, … • function word는 매우 흔하게 등장하기 때문에 document relevance에 대하여 별다른 의미를 전달하지 못한다. • 정보검색 분야에서는 이들을 stopword라 칭한다. • Stopword를 제거하는 것은 index 크기를 줄여서 검색의 효율성을 높이며 효과성 또한 향상시킨다.
4.3.3 Stopping • Stop word list를 만들 때 주의를 기울여야 한다. • 지나치게 많은 단어를 삭제하는 것은 검색 효과성을 저하시킬 수 있다 • Most frequent words top n을 이용해 Stop word list를 만들 수 있다. • 이 경우 Stop word list를 manual하게 편집해서, 의미 있는 단어는 제외시킬 수 있다. • Stopword list를 생성할 때 field와 같은 문서 구조를 활용할 수도 있다. • Anchor text를 처리할 때, “click”, “here”, “privacy”와 같은 단어는 stopword라 할 수 있다. • 만약 저장공간이 허락된다면, 문서의 모든 단어를 인덱스하는 것이 최선일 수 있다. • Stopping이 요구된다면 query에서 stop word를 제거하는 방식으로 처리
4.3.4 Stemming • 자연언어의 풍부한 표현력은, 한 가지 생각을 여러 방법으로 표현할 수 있다는 점에서 일부 기인한다 • Relevant document를 찾기 위해 word matching을 사용하는 검색엔진에게는 문제가 될 수 있다 • 의미적으로 연관된 단어 간의 matching을 가능케 하기 위해 stemming을 사용한다 • Stemming은 • 복수형, 현재과거미래형 의 어미를 변환 : Inflection • 동사에 ‘-ation’등의 접미어를 추가하여 명사로 전환 :derivation 등의 방법을 통해, 단어의 common stem으로 환원시킨다
4.3.4 Stemming • 영어 Text의 경우, Stemmer를 사용하는 것은 일반적으로 검색결과에 작지만 분명한 향상을 가져온다. • 어미 부분에 변화가 많은 아랍어나 러시아어의 경우, stemming은 검색에 필수적이다.
4.3.4 Stemming • Stemmer에는 두 가지 종류가 있다. • Algorithmic stemmer : 접미어에 대한 지식에 기반한 프로그램을 사용 • Dictionary-based stemmer : 사전에 만들어진 연관어의 dictionary에 의존
4.3.4 Stemming • 매우 단순한 영어 algorithmic stemmer는 suffix-s stemmer이다 • ex> cakes -> cake century centuries false negative is I false positive • 좀 더 복잡한 stemmer는‘–ing’ 나 ‘–ed’ 와 같은 접미어도 고려한다 • 보다 많은 suffix type을 처리함으로서 false negative는 줄어들지만 false positive는 일반적으로 증가한다. • 가장 많이 쓰이는 stemmer는 Porter stemmer이다. • 1970년대부터 검색 실험 등에서 사용되어 왔다 • 몇몇 TREC evaluation에서 효과적인 것으로 알려져왔다 • Stemming은 몇 가지 step으로 진행되며, 접미어 제거를 위한 일련의 규칙을 담고 있다
4.3.4 Stemming • 일부 문제점을 수정한 Porter2 stemmer가 최근에 등장
4.3.4 Stemming • Dictionary-based stemmer는 글자 패턴에서 단어들 간의 관계를 추론하기보다, 큰 dictionary에 연관된 단어 리스트를 저장하는 방식을 취한다 • 매뉴얼하게 생성 -> 신조어에 취약 -> Text corpus에 대한 통계적 분석을 통해 stem dictionary를 자동 생성하는 방법 • Krovetz Stemmer
4.3.4 Stemming • Stemming을 하지 않는 것이 검색엔진의 유연성을 향상시킬 수도 있다 • 어떤 application에서는 full word와 stem 각각을 인덱스해서 활용하기도 한다.
4.3.5 Phrases and N-grams • Phrase가 ranking에 미치는 영향에 대한 논의는 7장에서 계속
4.3.5 Phrases and N-grams • Text processing의 관점에서 볼 때 중요한 이슈는, phrase를 인식하는 일이 tokenizing 및 stemming을 할 때 같이 이루어져야 하는가 이다. • 정보 검색 연구 분야에서가장 많이 사용되는 Phrase에 대한 정의는 Phrase를 simple noun phrase로 간주하는 것이다. • 여기에 추가로 sequences of nouns, adjectives followed by nouns으로 제한 • 이렇게 정의된 Phrase는 part-of-speech (POS) tagger를 이용해 식별할 수 있다
4.3.5 Phrases and N-grams • POS tagger는 각 단어에 part-of-speech에 해당하는 label을 marking한다 • POS tagger는 statistical 혹은 rule-based approach를 적용 • 매뉴얼하게label된 대용량 corpora에서 training시킨다
4.3.5 Phrases and N-grams • POS taggingtoo slow for large collections • Simpler and faster alternatives • One approach • Index에 word position을 기록 • Query를 처리할 때 이 정보를 활용해 phrase를 인식 • Second approach • Web search와 같이, 대용량 collection에서 빠른 반응속도를 가져야 하는 경우 query처리 시 word proximity를 체크하는 작업 또한 시간이 많이 걸림 • Text processing시에 미리 phrase를 처리하되, phrase의 정의를 단순하게 해서 처리 -> n-grams : phrase is any sequence of n-word • 2 word sequence : bigram, 3 word sequence : trigram • N-gram에 기반한 Index는 word index보다 크기가 더 커진다 • 이것은 indexing time 및 disk space측면에서 낭비라고 생각될 수 있지만 많은 검색엔진들이, phrase feature를 ranking에 활용하는데 있어 빠른 방법이라 생각해서 n-gram indexing을 사용하고 있다
4.4 Document Structure and Markup • Database application에서 database record의 field 혹은 attribute는 검색에 중요한 부분이다. • 이메일 검색 혹은 문헌 검색에서 author, date는 query specification에서 역시 중요한 부분이다. • web search 에서는 일반적으로 query에서 document structure나 field를 특정하지 않는다. • 하지만 그렇다고 문서 구조가 중요하지 않은 것은 아니다. • HTML markup에서 특정 문서 구조는 ranking algorithm에서 중요하게 쓰인다.
4.4 Document Structure and Markup • HTML에서는 element type이 predefined되어 있다. 모든 문서가 동일 • XML에서는 각 application이 element type 및 tag를 정의할 수 있다 • XML schema로 표현 • 따라서 XML element는 data의 semantic에 보다 밀접하게 연관되어 있다 • Database community에서는, XML을 이용해 구조화된 data를 검색하기 위해 XQuery query language가 정의되어 있다. • XQuery는 structural constraint 및 content constraint 모두를 특정할 수 있다. • XML data를 대상으로한 검색엔진을 만드는데 database 접근법과 information retrieval접근법 중 어느 것이 더 좋은가 • 11.4장에서 • 일반적인 답변은, 그것은 data, application, user가 원하는 바에 따라 다르다. • XML data에서 text의 비중이 매우 높은 경우에는 information retrieval approach가 더 낫다