Luke Humphries booked his place into the finals of the World Darts Championship after beating Scott Williams where he will face teenager Luke Littler.