A semiconductor is a material with an energy gap between its conduction and valence band, and the Fermi level located in this gap. The valence band is filled with electrons and the conduction band is empty. Thus there are no "free" charge carriers.
In contrast, in a semi-metal the conduction and valence band have an energy overlap and the Fermi level is located in the overlap region. The top of the valence band has empty states, while the bottom of the conduction band contains electrons. This makes the material "a little" conductive.
The transition from a semi-metal to a semiconductor behaviour occurs if the valence and conduction bands are "moved" one away from another.
This "movement" is a result of a change in the electronic band structure of the material, induced for instance by a structural phase transition or quantum confinement.