Web services have become the main paradigm for the development of distributed software systems using a common set of technologies, including SOAP, WSDL and UDDI. This allows accessing to software components residing on different platforms and written in different programming languages. However, several tasks, including service discovery and composition, remain difficult to be automated. Thus, a new technology has emerged to solve this problem; it is the Semantic Web Services (SWS). One way to produce SWS is the annotation. In this paper, an approach to annotate Web services is presented. The approach consists of two main processes, categorization and matching. Both processes use ontology matching techniques. In particular, the two processes use similarity measures between entities, strategies to calculate similarities between sets and a threshold corresponding to the accuracy. Thus, an internal comparative study has been done to determine which strategy is appropriate to this approach, which measure gives best results and which threshold is optimum for the selected measure and strategy. An external comparative study has been also carried out to prove the efficacy of this approach compared to existing annotation approaches.