From ce1b5c0bc57f09d969d0ae9426d94d1454a96828 Mon Sep 17 00:00:00 2001 From: hrbrmstr Date: Mon, 10 Sep 2018 12:46:18 -0400 Subject: [PATCH] Faster than urltools --- R/RcppExports.R | 2 +- README.md | 75 +++++++++++++++++---- README_files/figure-gfm/bench-1.png | Bin 76117 -> 81209 bytes src/RcppExports.cpp | 2 +- src/psl-main.cpp | 131 ++++++++++++------------------------ 5 files changed, 107 insertions(+), 103 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index 91d718b..d895ae3 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -41,7 +41,7 @@ suffix_extract <- function(domains) { .Call('_psl_suffix_extract', PACKAGE = 'psl', domains) } -#' Separate a domain into component parts +#' Separate a domain into component parts (`urltools` compatibility function) #' #' Compatibility function for those using `urltools::suffix_extract()` #' diff --git a/README.md b/README.md index fec7905..c3d7514 100644 --- a/README.md +++ b/README.md @@ -116,20 +116,67 @@ suffix_extract(doms) ## # ... with 50 more rows suffix_extract2(doms) # urltools compatible output -## # A tibble: 60 x 4 -## host subdomain domain suffix -## -## 1 "" "" -## 2 com com -## 3 example.com "" example com -## 4 www.example.com www example com -## 5 .com .com -## 6 .example .example -## 7 .example.com com -## 8 .example.example example -## 9 example example -## 10 example.example "" example example -## # ... with 50 more rows +## host subdomain domain suffix +## 1 +## 2 com com +## 3 example.com example com +## 4 www.example.com www example com +## 5 .com .com +## 6 .example .example +## 7 .example.com com +## 8 .example.example example +## 9 example example +## 10 example.example example example +## 11 b.example.example b example example +## 12 a.b.example.example a.b example example +## 13 biz biz +## 14 domain.biz domain biz +## 15 b.domain.biz b domain biz +## 16 a.b.domain.biz a.b domain biz +## 17 com com +## 18 example.com example com +## 19 b.example.com b example com +## 20 a.b.example.com a.b example com +## 21 uk.com uk.com +## 22 example.uk.com example uk.com +## 23 b.example.uk.com b example uk.com +## 24 a.b.example.uk.com a.b example uk.com +## 25 test.ac test ac +## 26 cy cy +## 27 c.cy c cy +## 28 b.c.cy b c cy +## 29 a.b.c.cy a.b c cy +## 30 jp jp +## 31 test.jp test jp +## 32 www.test.jp www test jp +## 33 ac.jp ac.jp +## 34 test.ac.jp test ac.jp +## 35 www.test.ac.jp www test ac.jp +## 36 kyoto.jp kyoto.jp +## 37 test.kyoto.jp test kyoto.jp +## 38 ide.kyoto.jp ide.kyoto.jp +## 39 b.ide.kyoto.jp b ide.kyoto.jp +## 40 a.b.ide.kyoto.jp a b ide.kyoto.jp +## 41 c.kobe.jp c.kobe.jp +## 42 b.c.kobe.jp b c.kobe.jp +## 43 a.b.c.kobe.jp a b c.kobe.jp +## 44 city.kobe.jp city kobe.jp +## 45 www.city.kobe.jp www city kobe.jp +## 46 ck ck +## 47 test.ck test.ck +## 48 b.test.ck b test.ck +## 49 a.b.test.ck a b test.ck +## 50 www.ck www ck +## 51 www.www.ck www www ck +## 52 us us +## 53 test.us test us +## 54 www.test.us www test us +## 55 ak.us ak.us +## 56 test.ak.us test ak.us +## 57 www.test.ak.us www test ak.us +## 58 k12.ak.us k12.ak.us +## 59 test.k12.ak.us test k12.ak.us +## 60 www.test.k12.ak.us www test k12.ak.us ``` ``` r diff --git a/README_files/figure-gfm/bench-1.png b/README_files/figure-gfm/bench-1.png index c95c841a3681e5d53ba5432b87d67ddd65ca0d56..94c6c4fde3d807ae920effc55ac762caf4ad87b5 100644 GIT binary patch literal 81209 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

`CF)G)J5S)^C& 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 is_public_suffix(CharacterVector domains); +LogicalVector is_public_suffix(CharacterVector domains); RcppExport SEXP _psl_is_public_suffix(SEXP domainsSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; diff --git a/src/psl-main.cpp b/src/psl-main.cpp index 9e68e45..f9d0883 100644 --- a/src/psl-main.cpp +++ b/src/psl-main.cpp @@ -1,5 +1,4 @@ #include -#include #include using namespace Rcpp; @@ -24,24 +23,14 @@ CharacterVector apex_domain(CharacterVector domains) { // remove trailing period if any std::string cleaned = Rcpp::as(domains[i]); - if (cleaned.length() > 0) { - if (cleaned.at(cleaned.length()-1) == '.') cleaned.pop_back(); - } + if ((cleaned.length() > 0) && (cleaned.at(cleaned.length()-1) == '.')) cleaned.pop_back(); // lowercase it - rc = psl_str_to_utf8lower( - cleaned.c_str(), - "utf-8", "en", - &lower - ); + rc = psl_str_to_utf8lower(cleaned.c_str(), "utf-8", "en", &lower); if (rc == PSL_SUCCESS) { result = psl_registrable_domain(psl, lower); - if (result) { - output[i] = std::string(result); - } else { - output[i] = NA_STRING; - } + output[i] = (result) ? String(result) : NA_STRING; } else { output[i] = NA_STRING; } @@ -74,24 +63,14 @@ CharacterVector public_suffix(CharacterVector domains) { // remove trailing period if any std::string cleaned = Rcpp::as(domains[i]); - if (cleaned.length() > 0) { - if (cleaned.at(cleaned.length()-1) == '.') cleaned.pop_back(); - } + if ((cleaned.length() > 0) && (cleaned.at(cleaned.length()-1) == '.')) cleaned.pop_back(); // lowercase it - rc = psl_str_to_utf8lower( - cleaned.c_str(), - "utf-8", "en", - &lower - ); + rc = psl_str_to_utf8lower(cleaned.c_str(), "utf-8", "en", &lower); if (rc == PSL_SUCCESS) { result = psl_unregistrable_domain(psl, lower); - if (result) { - output[i] = std::string(result); - } else { - output[i] = NA_STRING; - } + output[i] = (result) ? String(result) : NA_STRING; } else { output[i] = NA_STRING; } @@ -111,10 +90,10 @@ CharacterVector public_suffix(CharacterVector domains) { //' @return character vector //' @export // [[Rcpp::export]] -std::vector< bool > is_public_suffix(CharacterVector domains) { +LogicalVector is_public_suffix(CharacterVector domains) { unsigned int input_size = domains.size(); - std::vector < bool > output(input_size); + LogicalVector output(input_size); char *lower = NULL; int rc; const psl_ctx_t *psl = psl_builtin(); @@ -123,22 +102,12 @@ std::vector< bool > is_public_suffix(CharacterVector domains) { // remove trailing period if any std::string cleaned = Rcpp::as(domains[i]); - if (cleaned.length() > 0) { - if (cleaned.at(cleaned.length()-1) == '.') cleaned.pop_back(); - } + if ((cleaned.length() > 0) && (cleaned.at(cleaned.length()-1) == '.')) cleaned.pop_back(); // lowercase it - rc = psl_str_to_utf8lower( - cleaned.c_str(), - "utf-8", "en", - &lower - ); + rc = psl_str_to_utf8lower(cleaned.c_str(), "utf-8", "en", &lower); - if (rc == PSL_SUCCESS) { - output[i] = (psl_is_public_suffix(psl, lower) == 1); - } else { - output[i] = NA_LOGICAL; - } + output[i] =(rc == PSL_SUCCESS) ? (psl_is_public_suffix(psl, lower) == 1) : NA_LOGICAL; psl_free_string(lower); @@ -174,51 +143,41 @@ DataFrame suffix_extract(CharacterVector domains) { // remove trailing period if any std::string cleaned = Rcpp::as(domains[i]); - if (cleaned.length() > 0) { - if (cleaned.at(cleaned.length()-1) == '.') cleaned.pop_back(); - } + if ((cleaned.length() > 0) && (cleaned.at(cleaned.length()-1) == '.')) cleaned.pop_back(); // lowercase it - rc = psl_str_to_utf8lower( - cleaned.c_str(), - "utf-8", "en", - &lower - ); + rc = psl_str_to_utf8lower(cleaned.c_str(), "utf-8", "en", &lower); if (rc == PSL_SUCCESS) { // no dots at end and lowercased - normalized[i] = std::string(lower); + std::string normd = std::string(lower); + normalized[i] = normd; // try to get the suffix result = psl_unregistrable_domain(psl, lower); - if (result) { - suffix[i] = std::string(result); - } else { - suffix[i] = NA_STRING; - } + std::string suf = std::string(result); + suffix[i] = (result) ? String(result) : NA_STRING; // try to get the apex result = psl_registrable_domain(psl, lower); + apex[i] = (result) ? String(result) : NA_STRING; + if (result) { - apex[i] = std::string(result); - } else { - apex[i] = NA_STRING; - } - if ((suffix[i] != NA_STRING) && (apex[i] != NA_STRING)) { + std::string apx = std::string(result); + + int suf_pos = apx.rfind(suf); + std::string dom = apx.substr(0, suf_pos); + + int apex_pos = normd.rfind(apx); + std::string subdom = (apex_pos == 0) ? "" : normd.substr(0, apex_pos); - std::regex trail_suf("[\\.]*" + Rcpp::as(suffix[i]) + "$"); - domain[i] = std::regex_replace( - Rcpp::as(apex[i]), - trail_suf, "" - ); + if ((dom.length() > 0) && (dom.at(dom.length()-1) == '.')) dom.pop_back(); + if ((subdom.length() > 0) && (subdom.at(subdom.length()-1) == '.')) subdom.pop_back(); - std::regex apex_suf("[\\.]*" + Rcpp::as(apex[i]) + "$"); - subdomain[i] = std::regex_replace( - Rcpp::as(normalized[i]), - apex_suf, "" - ); + domain[i] = dom; + subdomain[i] = subdom; } else { domain[i] = NA_STRING; @@ -253,7 +212,7 @@ DataFrame suffix_extract(CharacterVector domains) { } -//' Separate a domain into component parts +//' Separate a domain into component parts (`urltools` compatibility function) //' //' Compatibility function for those using `urltools::suffix_extract()` //' @@ -272,22 +231,16 @@ DataFrame suffix_extract2(CharacterVector domains) { char *lower = NULL; int rc; - const char * result; + const char *result; const psl_ctx_t *psl = psl_builtin(); for (unsigned int i = 0; i < input_size; i++) { std::string cleaned = Rcpp::as(domains[i]); - if (cleaned.length() > 0) { - if (cleaned.at(cleaned.length()-1) == '.') cleaned.pop_back(); - } + if ((cleaned.length() > 0) && (cleaned.at(cleaned.length()-1) == '.')) cleaned.pop_back(); // lowercase it - rc = psl_str_to_utf8lower( - cleaned.c_str(), - "utf-8", "en", - &lower - ); + rc = psl_str_to_utf8lower(cleaned.c_str(), "utf-8", "en", &lower); if (rc == PSL_SUCCESS) { @@ -307,11 +260,17 @@ DataFrame suffix_extract2(CharacterVector domains) { std::string apex(result); - std::regex trail_suf("[\\.]*" + suf + "$"); - std::regex apex_suf("[\\.]*" + apex + "$"); + int suf_pos = apex.rfind(suf); + std::string dom = apex.substr(0, suf_pos); + + int apex_pos = normalized.rfind(apex); + std::string subdom = (apex_pos == 0) ? "" : normalized.substr(0, apex_pos); - domain[i] = std::regex_replace(apex, trail_suf, ""); - subdomain[i] = std::regex_replace(normalized, apex_suf, ""); + if ((dom.length() > 0) && (dom.at(dom.length()-1) == '.')) dom.pop_back(); + if ((subdom.length() > 0) && (subdom.at(subdom.length()-1) == '.')) subdom.pop_back(); + + domain[i] = (dom); + subdomain[i] = (subdom); } else { subdomain[i] = NA_STRING; @@ -341,8 +300,6 @@ DataFrame suffix_extract2(CharacterVector domains) { _["stringsAsFactors"] = false ); - out.attr("class") = CharacterVector::create("tbl_df", "tbl", "data.frame"); - return(out); }