Fron%ers  of   Computa%onal  Journalism  

  Columbia  Journalism  School   Week  2:  Text  Analysis     September  11,  2013      

Lecture  2:  Text  Analysis  
  What  is  text  analysis?     Vector  Space  Model  and  Cosine  Distance     TF-­‐IDF     Topic  Models      

Basic  idea:  quan%ta%ve  informa%on  can  tell  stories  

When  Hu  Jintao  came  to  power  in  2002,  China  was  already  experiencing  a  worsening   social  crisis.  In  2004,  President  Hu  offered  a  rhetorical  response  to  growing  internal   instability,  trumpe%ng  what  he  called  a  “harmonious  society.”  For  some  %me,  this  new   watchword  burgeoned,  becoming  visible  everywhere  in  the  Party’s  propaganda.        -­‐  Qian  Gang,  Watchwords:  Reading  China  through  its  Party  Vocabulary  

But  by  2007  it  was  already  on  the  decline,  as  “stability  preserva%on”  made  its  rapid   ascent.  ...    Together,  these  contras%ng  pictures  of  the  “harmonious  society”  and  “stability   preserva%on”  form  a  portrait  of  the  real  predicament  facing  President  Hu  Jintao.  A   “harmonious  society”  may  be  a  pleasing  idea,  but  it’s  the  iron  will  behind  “stability   preserva%on”  that  packs  the  real  punch.        -­‐  Qian  Gang,  Watchwords:  Reading  China  through  its  Party  Vocabulary  

Google  ngrams  viewer  –  12%  of  all  books  ever  published  

Data  can  give  a  wider  view  
Let  me  talk  about  Downton  Abbey  for  a  minute.  The  show's   popularity  has  led  many  nitpickers  to  dra^  up  lists  of  mistakes.  ...   But  all  of  these  have  relied,  so  far  as  I  can  tell,  on  finding  a   phrase  or  two  that  sounds  a  bit  off,  and  checking  the  online   sources  for  earliest  use.     I  lack  such  social  graces.  So  I  thought:  why  not  just  check  every   single  line  in  the  show  for  historical  accuracy?  ...  So  I  found  some   copies  of  the  Downton  Abbey  scripts  online,  and  fed  every  single   two-­‐word  phrase  through  the  Google  Ngram  database  to  see   how  characteris%c  of  the  English  Language,  c.  1917,  Downton   Abbey  really  is.        -­‐  Ben  Schmidt,  Making  Downton  more  tradi=onal  

Bigrams  that  do  not  appear  in  English  books  between  1912  and   1921.  

Bigrams  that  are  at  least  100  %mes  more  common  today  than   they  were  in  1912-­‐1921  

Lecture  2:  Text  Analysis  
  What  is  text  analysis?     Vector  Space  Model  and  Cosine  Distance     TF-­‐IDF     Topic  Models      

Documents,  not  words  
We  can  use  clustering  techniques  if  we  can   convert  documents  into  vectors.     As  before,  we  want  to  find  numerical  “features”   that  describe  the  document.       How  do  we  capture  the  meaning  of  a  document   in  numbers?  

What  is  this  document  "about"?  
Most  commonly  occurring  words  a  preey  good   indicator.  
!

30 !the! 23 !to! 19 !and! 19 !a! 18 !animal! 17 !cruelty! 15 !of! 15 !crimes! 14 !in! 14 !for! 11 !that! 8 !crime! 7 !we!

Turns  out  features  =  words  works  fine  
Encode  each  document  as  the  list  of  words  it   contains.     Dimensions  =  vocabulary  of  document  set.     Value  on  each  dimension  =  #  of  %mes  word   appears  in  document  

Example  
D1  =  “I  like  databases”   D2  =  “I  hate  hate  databases”             Each  row  =  document  vector   All  rows  =  term-­‐document  matrix   Individual  entry  =  h(t,d)  =  “term  frequency”  

 

Aka  “Bag  of  words”  model  
Throws  out  word  order.       e.g.  “soldiers  shot  civilians”  and  “civilians  shot  soldiers”   encoded  iden%cally.    

Tokeniza%on  
The  documents  come  to  us  as  long  strings,  not   individual  words.  Tokeniza%on  is  the  process  of   conver%ng  the  string  into  individual  words,  or  "tokens."     For  this  course,  we  will  assume  a  very  simple  strategy:  
–  convert  all  leeers  to  lowercase   –  remove  all  punctua%on  characters   –  separate  words  based  on  spaces    

Note  that  this  won't  work  at  all  for  Chinese.  It  will  fail   in  some  ways  even  for  English.  How?  

Distance  func%on  
Useful  for:   •  clustering  documents   •  finding  docs  similar  to  example   •  matching  a  search  query   Basic  idea:  look  for  overlapping  terms  

Cosine  similarity  
Given  document  vectors  a,b  define       similarity(a, b) ≡ a • b  
If  each  word  occurs  exactly  once  in  each  document,  equivalent   to  coun%ng  overlapping  words.     Note:  not  a  distance  func%on,  as  similarity  increases  when   documents  are…  similar.  (What  part  of  the  defini%on  of  a   distance  func%on  is  violated  here?)    

Problem:  long  documents  always  win  
Let  a  =  “This  car  runs  fast.”     Let  b  =  “My  car  is  old.  I  want  a  new  car,  a  shiny  car”   Let  query  =  “fast  car”  

    a    b  
q  

this   1   0   0  

car   1   3   1  

runs   1   0   0  

fast   1   0   1  

my   0   1   0  

is   0   1   0  

old   0   1   0  

I   0   1   0  

want   0   1   0  

a   0   1   0  

new   0   1   0  

shiny   0   1   0  

Problem:  long  documents  always  win  
 

 similarity(a,q)  =  1*1  [car]  +  1*1  [fast]  =  2    similarity(b,q)  =  3*1  [car]  +  0*1  [fast]  =  3     Longer  document  more  “similar”,  by  virtue  of   repea%ng  words.      

Normalize  document  vectors  
a•b similarity(a, b) ≡ a b

=  cos(Θ)   returns  result  in  [0,1]  

Normalized  query  example  
this   a   b   q   1   0   0   car   1   3   1   runs   1   0   0   fast   1   0   1   my   0   1   0   is   0   1   0   old   0   1   0   I   0   1   0   want   0   1   0   a   0   1   0   new   0   1   0   shiny   0   1   0  

2 1 similarity(a, q ) = = ≈ 0.707 4 2 2 3 similarity(b, q ) = ≈ 0.514 17 2

Cosine  similarity  
a•b cosθ = similarity(a, b) ≡ a b

Cosine  distance  (finally)  

a•b dist (a, b) ≡ 1 − a b

Lecture  2:  Text  Analysis  
  What  is  text  analysis?     Vector  Space  Model  and  Cosine  Distance     TF-­‐IDF     Topic  Models      

Problem:  common  words  
We  want  to  look  at  words  that  “discriminate”   among  documents.      
Stopwords:  if  all  documents  contain  “the,”  are  all  documents   similar?     Common  words:  if  most  documents  contain  “car”  then  car   doesn’t  tell  us  much  about  (contextual)  similarity.    

Context  maeers  
General  News  

Car  Reviews  

=  contains  “car”   =  does  not  contain  “car”  

Document  Frequency  
Idea:  de-­‐weight  common  words   Common  =  appears  in  many  documents     df (t, D ) = d ∈ D : t ∈ d D    
“document  frequency”  =  frac%on  of  docs  containing   term  

Inverse  Document  Frequency  
Invert  (so  more  common  =  smaller  weight)  and   take  log       idf (t, D ) = log D d ∈ D : t ∈ d      

(

)

TF-­‐IDF  
Mul%ply  term  frequency  by  inverse  document   frequency       tfidf (t, d, D ) = tf (t, d ) ⋅ idf (d, D )     = n ( t , d ) ⋅ log D n ( t , D )     n(t,d)  =  number  of  %mes  term  t  in  doc  d   n(t,D)  =  number  docs  in  D  containing  t  

(

)

TF-­‐IDF  depends  on  en%re  corpus  
The  TF-­‐IDF  vector  for  a  document  changes  if  we  add   another  document  to  the  corpus.  

    tfidf (t, d, D ) = tf (t, d ) ⋅ idf (d, D )     if  we  add  a  document,  D  changes!     TF-­‐IDF  is  sensi%ve  to  context.  The  context  is  all   other  documents    

What  is  this  document  "about"?  
Each  document  is  now  a  vector  of  TF-­‐IDF  scores  for   every  word  in  the  document.  We  can  look  at  which   words  have  the  top  scores.     crimes ! ! !0.0675591652263963!
!

cruelty ! crime ! ! reporting! animals ! michael ! category ! commit ! ! criminal ! societal ! trends ! ! conviction patterns !  

!0.0585772393867342! !0.0257614113616027! !0.0208838148975406! !0.0179258756717422! !0.0156575858658684! !0.0154564813388897! !0.0137447439653709! !0.0134312894429112! !0.0124164973052386! !0.0119505837811614! !0.0115699047136248! !0.011248045148093!

Salton’s  descrip%on  of  h-­‐idf  

-­‐  from  Salton,  Wong,  Yang,  A  Vector  Space  Model  for  Automa=c   Indexing,  1975  

TF  

TF-­‐IDF  

nj-­‐sentator-­‐menendez  corpus,  Overview  sample  files   color  =  human  tags  generated  from  TF-­‐IDF  clusters  

Cluster  Hypothesis  
“documents  in  the  same  cluster  behave  similarly   with  respect  to  relevance  to  informa%on  needs”  
  -­‐  Manning,  Raghavan,  Schütze,  Introduc=on  to  Informa=on  Retrieval  

Not  really  a  precise  statement  –  but  the  crucial  link  between   human  seman%cs  and  mathema%cal  proper%es.     Ar%culated  as  early  as  1971,  has  been  shown  to  hold  at  web   scale,  widely  assumed.  

Bag  of  words  +  TF-­‐IDF  hard  to  beat  
Prac%cal  win:  good  precision-­‐recall  metrics  in  tests  with   human-­‐tagged  document  sets.       S%ll  the  dominant  text  indexing  scheme  used  today.   (Lucene,  FAST,  Google…)  Many  variants.       Some,  but  not  much,  theory  to  explain  why  this  works.  (E.g.   why  that  par%cular  idf  formula?  why  doesn’t  indexing   bigrams  improve  performance?)  

Collec%vely:     the  vector  space  document  model  

Lecture  2:  Text  Analysis  
  What  is  text  analysis?     Vector  Space  Model  and  Cosine  Distance     TF-­‐IDF     Topic  Models      

Problem  Statement  
Can  the  computer  tell  us  the  “topics”  in  a   document  set?  Can  the  computer  organize  the   documents  by  “topic”?    
Note:  TF-­‐IDF  tells  us  the  topics  of  a  single  document,  but  here   we  want  topics  of  an  en%re  document  set.  

Simplest  possible  technique  
Sum  TF-­‐IDF  scores  for  each  word  across  en%re   document  set,  choose  top  ranking  words.  

 

This  is  how  Overview  generates  cluster  descrip%ons.  It  will  also  be   your  first  homework  assignment.  

Topic  Modeling  Algorithms  
Basic  idea:  reduce  dimensionality  of  document   vector  space,  so  each  dimension  is  a  topic.  
  Each  document  is  then  a  vector  of  topic  weights.  We   want  to  figure  out  what  dimensions  and  weights  give  a   good  approxima%on  of  the  full  set  of  words  in  each   document.     Many  variants:  LSI,  PLSI,  LDA,  NMF      

Matrix  Factoriza%on  
Approximate  term-­‐document  matrix  V  as   product  of  two  lower  rank  matrixes  

V  
m  docs  by  n  terms  

=  

W  

H  

m  docs  by  r  "topics"  

r  "topics"  by  n  terms  

Matrix  Factoriza%on  
A  "topic"  is  a  group  of  words  that  occur   together.  

paeern  of  words  in  this  topic  

Non-­‐nega%ve  Matrix  Factoriza%on  
All  elements  of  document  coordinate  matrix  W   and  topic  matrix  H  must  be  >=  0     Simple  itera%ve  algorithm  to  compute.           S%ll  have  to  choose  number  of  topics  r  

Latent  Dirichlet  Alloca%on  
Imagine  that  each  document  is  wrieen  by  someone   going  through  the  following  process:     1.  For  each  doc  d,  choose  mixture  of  topics  p(z|d)   2.  For  each  word  w  in  d,  choose  a  topic  z  from  p(z|d)   3.  Then  choose  word  from  p(w|z)   A  document  has  a  distribu%on  of  topics.   Each  topic  is  a  distribu%on  of  words.   LDA  tries  to  find  these  two  sets  of  distribu%ons.  

"Documents"  

LDA  models  each  document  as  a  distribu%on  over  topics.  Each   word  belongs  to  a  single  topic.  

"Topics"  

LDA  models  a  topic  as  a  distribu%on  over  all  the  words  in  the   corpus.  In  each  topic,  some  words  are  more  likely,  some  are  less   likely.  

Dimensionality  reduc%on  
Output  of  NMF  and  LDA  is  a  vector  of  much  lower   dimension  for  each  document.  ("Document   coordinates  in  topic  space.")     Dimensions  are  “concepts”  or  “topics”  instead  of   words.     Can  measure  cosine  distance,  cluster,  etc.  in  this  new   space.  

Sign up to vote on this title
UsefulNot useful