The paper presents a framework for selecting and ranking web services based on Quality of Service (QoS) and semantic similarity to meet users' preferences in a Service Oriented Computing context. It employs an associative classification algorithm to categorize candidate web services into different QoS levels and then ranks them according to their functional quality through semantic matching. Experimental results demonstrate that the proposed framework effectively satisfies non-functional requirements of service requesters.