Chaining chunk transformations
The transform functions defined in the previous recipes can be chained together to normalize chunks. The resulting chunks are often shorter with no loss of meaning.
How to do it...
In transforms.py
is the function transform_chunk()
. It takes a single chunk and an optional list of transform functions. It calls each transform function on the chunk, one at a time, and returns the final chunk:
def transform_chunk(chunk, chain=[filter_insignificant, swap_verb_phrase, swap_infinitive_phrase, singularize_plural_noun], trace=0): for f in chain: chunk = f(chunk) if trace: print f.__name__, ':', chunk return chunk
Using it on the phrase the book of recipes is delicious
, we get delicious recipe book
:
>>> from transforms import transform_chunk >>> transform_chunk([('the', 'DT'), ('book', 'NN'), ('of', 'IN'), ('recipes', 'NNS'), ('is', 'VBZ'), ('delicious', 'JJ')]) [('delicious', 'JJ'), ('recipe', 'NN'), ('book', 'NN')]
How it works...
The...