public function isAcademic($text)
    {
        if (empty($text)) {
            return false;
        }

        $domain = $this->getDomain($text);

        if ($domain === null) {
            return false;
        }

        foreach ($this->getBlacklistedTopLevelDomains() as $blacklistedDomain) {
            $name = (string) $domain['host'];

            if (preg_match('/' . preg_quote($blacklistedDomain) . '$/', $name)) {
                return false;
            }
        }

        if (in_array($domain['tld'], $this->getAcademicTopLevelDomains())) {
            return true;
        }

        if ($this->matchesAcademicDomain($domain)) {
            return true;
        }

        return false;
    }