Calculating a Hero: Computational Analysis and Chivalry in Chaucer’s the Canterbury Tales