If there is a text layer inside the request, try to find a matching
        text in the specified intent.

async def rank(self) -> Optional[float]:
        """
        If there is a text layer inside the request, try to find a matching
        text in the specified intent.
        """

        if not self.request.has_layer(l.RawText):
            return

        tl = self.request.get_layer(l.RawText)
        matcher = Matcher([
            tuple(Trigram(y) for y in x)
            for x in await self.intent.strings(self.request)
        ])

        return matcher % Trigram(tl.text)