http://www.perlmonks.org?node_id=240504


in reply to term weight

I see that better minds have not responded, and they usually do sooner than this, so I'll take a stab at it.

So, taking term weight to mean simply the ratio of the term frequency to the number of tokens in the text, basically you need to:

  1. Stem all the words in the files, save them in a hash (#words) using the tokens as the keys and the stems as the values.
  2. Count the total stems, calculate ratio of term instances (stemmed tokens) to total number of stems.
  3. Make a hash of arrays (#stems) with the stems as the keys and the tokens and their relative frequency as array values.
  4. Combine #words and #stems on the stems into a new hash of arrays, so that each token in the text has the corresponding array values of the stem itself and the term weight.

It would help us a lot if you posted your ideas about what you need to do as well and perhaps define "term weight" I'm hoping you mean my interpretation above, which is pretty well accepted as a general definition in linguistic circles.

Maybe someone a little smarter and a little more awake than I am can come up with a way to combine a few of these steps, but it looks like you may have to add stem tags to the text in order to accomplish your goal.

--
Allolex