1 / 77

Ch 4. Processing Text

Ch 4. Processing Text . 2011. 1. 17. 4.1 From Words to Terms. 검색하고자 하는 text 가 모아진 뒤 다음 할 일은 , 검색을 단순화하기 위한 텍스트의 수정 혹은 재구성 여부를 결정하는 것이다 . 이 단계를 text transformation 혹은 text processing 이라고 한다 . Text processing 의 목적은 , word 가 등장하는 여러 형태를 보다 일관된 index term 으로 변환하는 것이다 .

ekram
Download Presentation

Ch 4. Processing Text

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ch 4. Processing Text 2011. 1. 17.

  2. 4.1 From Words to Terms • 검색하고자 하는 text가 모아진 뒤다음 할 일은, 검색을 단순화하기 위한 텍스트의 수정 혹은 재구성 여부를 결정하는 것이다. • 이 단계를 text transformation 혹은 text processing이라고 한다. • Text processing의 목적은,word가 등장하는 여러 형태를 보다 일관된 index term으로 변환하는 것이다. • Index term이란 문서의 콘텐트를 나타내는 단어 중 검색에 사용되는 것이다.

  3. 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. 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

  5. 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”한 형태를 띄고 있다. • 몇몇 단어가 높은 빈도수를 가지고, 많은 단어들이 낮은 빈도수를 가진다.

  6. 4.2 Text Statistics • Zipf’s law • Associated Press collection of news stories from 1989 (AP89) • 20만개의 단어 중 7만개의 단어가 단 한번 등장 -> HapaxLegomena

  7. 4.2 Text Statistics • AP89의 빈도수 상위50개 단어

  8. 4.2 Text Statistics • log-log plot of the r.Pr values

  9. 4.2 Text Statistics • Zipf’s law를 이용해 단어의 빈도수가 주어질 때 단어의 등장 비율을 예측하는 공식을 만들 수 있다. • 어떤 단어가 n번 등장할 때 rank는 rn = k / n • 같은 빈도수를 가지는 단어가 하나 이상 있을 수 있다. • 여기서 rn은 같은 빈도수를 가지는 단어들 중 가장 마지막 순위라 가정한다 빈도수가 n인 단어의 수는 rn – rn+1로 나타낼 수 있다.

  10. 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)

  11. 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

  12. 4.2.1 Vocabulary Growth • GOV2 : contains more than 20 billion words

  13. 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

  14. 4.2.2 Estimating Collection and Result Set Sizes GOV2 Web Collection (Collection size N : 25,205,179)

  15. 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)

  16. 4.2.2 Estimating Collection and Result Set Sizes • Word triple 의 빈도수와 같은 추가 정보를 사용하지 않고도 Result size에 대한 합리적인 추정이 가능하다

  17. 4.2.2 Estimating Collection and Result Set Sizes • 검색 엔진에 저장된 문서의 전체 개수를 추정하는 일은 학문적으로(Web이 얼마나 큰가?), 비지니스적으로(어떤 검색엔진이 더 나은 coverage를 가지고 있나?) 큰 관심영역이다. • 한 가지 방법으로 word independence가정을 사용

  18. 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

  19. 4.3 Document Parsing • Parser는 markup language의 문법 및 문서에서 인식된 tag 및 다른 metadata를 이용해 문서의 구조를 해석하고 문서의 structure와 content를 포함하는 representation을 생성한다. • 가령 HTML parser의 경우 webpage의 구조를 해석해 DOM model representation을 생성한다. • 검색 엔진에서는 document parser의 출력물이 인덱스를 생성하는데 사용된다.

  20. 4.3.2 Tokenizing • Tokenizing : Forming words from sequence of characters • 버려지는 정보가 너무 많아, 대부분의 검색 엔진에서 적합하지 못하다

  21. 4.3.2 Tokenizing • Tokenization과 관련된 이슈들

  22. 4.3.2 Tokenizing

  23. 4.3.2 Tokenizing • 여러 language processing 기법들을 사용하기 위해서는 tokenizing process가 단순하면서 유연해야 한다 • 한 가지 방법으로, • First pass tokenizing에서는 문서의 markup 또는 tag를 인식하는데 집중하고, • Second pass tokenizing에서는 tag등을 제외한, 검색에 활용될 문서의 content에 집중한다 • Query에 따라 문서의 어떤 부분이 필요할지 모르므로, 모든 text가 중요하다. -> Tokenizing rule은 대부분의 content를 검색 가능한 token으로 변환할 수 있어야 한다.

  24. 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단계에서 이루어진다

  25. 4.3.2 Tokenizing • 하지만 이러한 단어간의 추론 과정을 query transformation에 완전히 의존하는 것은, 효과성 저하의 우려가 있다. • 이 경우 몇 가지 rule을 tokenizer에 추가할 수 있다. • O’connor -> oconnor

  26. 4.3.2 Tokenizing 요약 • 대부분의 tokenizing process는 대개 • 첫 번째로 문서의 구조를 식별하는 과정 • 두 번째로 text를 space 혹은 특수문자로 끊어 단어를 식별하는 과정 으로 이루어진다. • 일부 복잡한 이슈들은 information extraction 및 query transformation을 통해 해결할 수 있다. • 특수문자를 처리하기 위해몇 가지 Rule이 추가되기도 한다.

  27. 4.3.3 Stopping • 언어에는 많은 function word들이 있다. • ex > the, a, an, that, over, under, … • function word는 매우 흔하게 등장하기 때문에 document relevance에 대하여 별다른 의미를 전달하지 못한다. • 정보검색 분야에서는 이들을 stopword라 칭한다. • Stopword를 제거하는 것은 index 크기를 줄여서 검색의 효율성을 높이며 효과성 또한 향상시킨다.

  28. 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를 제거하는 방식으로 처리

  29. 4.3.4 Stemming • 자연언어의 풍부한 표현력은, 한 가지 생각을 여러 방법으로 표현할 수 있다는 점에서 일부 기인한다 • Relevant document를 찾기 위해 word matching을 사용하는 검색엔진에게는 문제가 될 수 있다 • 의미적으로 연관된 단어 간의 matching을 가능케 하기 위해 stemming을 사용한다 • Stemming은 • 복수형, 현재과거미래형 의 어미를 변환 : Inflection • 동사에 ‘-ation’등의 접미어를 추가하여 명사로 전환 :derivation 등의 방법을 통해, 단어의 common stem으로 환원시킨다

  30. 4.3.4 Stemming • 영어 Text의 경우, Stemmer를 사용하는 것은 일반적으로 검색결과에 작지만 분명한 향상을 가져온다. • 어미 부분에 변화가 많은 아랍어나 러시아어의 경우, stemming은 검색에 필수적이다.

  31. 4.3.4 Stemming • Stemmer에는 두 가지 종류가 있다. • Algorithmic stemmer : 접미어에 대한 지식에 기반한 프로그램을 사용 • Dictionary-based stemmer : 사전에 만들어진 연관어의 dictionary에 의존

  32. 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으로 진행되며, 접미어 제거를 위한 일련의 규칙을 담고 있다

  33. 4.3.4 Stemming

  34. 4.3.4 Stemming • 일부 문제점을 수정한 Porter2 stemmer가 최근에 등장

  35. 4.3.4 Stemming • Dictionary-based stemmer는 글자 패턴에서 단어들 간의 관계를 추론하기보다, 큰 dictionary에 연관된 단어 리스트를 저장하는 방식을 취한다 • 매뉴얼하게 생성 -> 신조어에 취약 -> Text corpus에 대한 통계적 분석을 통해 stem dictionary를 자동 생성하는 방법 • Krovetz Stemmer

  36. 4.3.4 Stemming

  37. 4.3.4 Stemming • Stemming을 하지 않는 것이 검색엔진의 유연성을 향상시킬 수도 있다 • 어떤 application에서는 full word와 stem 각각을 인덱스해서 활용하기도 한다.

  38. 4.3.5 Phrases and N-grams • Phrase가 ranking에 미치는 영향에 대한 논의는 7장에서 계속

  39. 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를 이용해 식별할 수 있다

  40. 4.3.5 Phrases and N-grams • POS tagger는 각 단어에 part-of-speech에 해당하는 label을 marking한다 • POS tagger는 statistical 혹은 rule-based approach를 적용 • 매뉴얼하게label된 대용량 corpora에서 training시킨다

  41. 4.3.5 Phrases and N-grams

  42. 4.3.5 Phrases and N-grams

  43. 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을 사용하고 있다

  44. 4.3.5 Phrases and N-grams

  45. 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에서 중요하게 쓰인다.

  46. 4.4 Document Structure and Markup

  47. 4.4 Document Structure and Markup

  48. 4.4 Document Structure and Markup

  49. 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가 더 낫다

  50. 4.5 Link Analysis

More Related