Forritaskil Greynis (API)

Forritaskil Greynis taka við beiðnum um að málgreina texta í UTF-8 sniði í gegn um HTTPS. Þau skila niðurstöðum í JSON formi.

Ef til stendur að málgreina mikið magn texta getur verið hyggilegt að sækja Python-pakkann Reyni (pip install reynir) og nota hann á eigin vélbúnaði fremur en að reiða sig á þessa vefþjónustu.

Aðvörun!

Forritaskilin eru ennþá á prófunarstigi og geta breyst. Notendur eru hvattir til að koma athugasemdum og ábendingum á framfæri, til dæmis í Facebook-hópi Greynis.

Mörkun POS tagging

Þjónustan postag.api tekur inn texta og skilar til baka hverju orði hans með ítarlegri mörkun (part-of-speech tag), þ.e. upplýsingum um orðflokk, stofn, beygingu o.fl. Einnig fylgir með nafnalisti yfir fólk og fyrirbæri með sérnöfn.

Stutta texta sem eru einungis ein málsgrein má málgreina með einföldu HTTPS GET þar sem textinn er sendur sem hluti af vefslóð (URL):

GET https://greynir.is/postag.api/v1?t=Hér er dæmi um texta til að málgreina

Lengri texta má senda með HTTP POST í application/x-www-form-urlencoded formi, í svæði sem heitir text.

Dæmi um hvernig nota má POST kallið frá curl í GNU/Linux:

$ curl -d "text=Í dag er ágætt veður en mikil hálka er á götum." https://greynir.is/postag.api/v1

Enn lengri texta má senda með HTTP POST í text/plain formi, kóðaða í UTF-8 og með línuskiptum (newline, \n) milli málsgreina. Dæmi:

$ curl -d @example.txt https://greynir.is/postag.api/v1 --header "Content-Type: text/plain"

postag.api/v1 þjónustan skilar JSON skjali með eftirfarandi undirgreinum:

um mörkun málsgreinarinnar Halldór Laxness fékk nóbelsverðlaunin í bókmenntum árið 1955.

{
  "register": {
    "Halldór Laxness": {
      "kind": "name", 
      "title": "rithöfundur"
    }
  }, 
  "result": [
    [
      {
        "c": "kk",
        "k": "PERSON",
        "t": "person_nf_kk", 
        "s": "Halldór Laxness", 
        "x": "Halldór Laxness"
      }, 
      {
        "b": "GM-FH-ÞT-3P-ET", 
        "c": "so", 
        "f": "alm", 
        "k": "WORD", 
        "s": "fá", 
        "t": "so_1_þf_et_p3", 
        "x": "fékk"
      }, 
      {
        "b": "ÞFFTgr", 
        "c": "hk", 
        "f": "alm", 
        "k": "WORD", 
        "s": "nóbelsverðlaun", 
        "t": "no_ft_þf_hk", 
        "x": "nóbelsverðlaunin"
      }, 
      {
        "b": "ÞGF", 
        "c": "fs", 
        "f": "alm", 
        "k": "WORD", 
        "s": "í", 
        "t": "fs_þgf", 
        "x": "í"
      }, 
      {
        "b": "ÞGFFT", 
        "c": "kvk", 
        "f": "alm", 
        "k": "WORD", 
        "s": "bókmennt", 
        "t": "no_ft_þgf_kvk", 
        "x": "bókmenntum"
      }, 
      {
        "b": "ÞFETgr", 
        "c": "hk", 
        "f": "alm", 
        "k": "WORD", 
        "s": "ár", 
        "t": "no_gr_et_þf", 
        "x": "árið"
      }, 
      {
        "k": "YEAR", 
        "t": "ártal", 
        "v": 1955, 
        "x": "1955"
      }, 
      {
        "k": "PUNCTUATION", 
        "x": "."
      }
    ]
  ], 
  "stats": {
    "ambiguity": 1.0905077326652577, 
    "num_parsed": 1, 
    "num_sentences": 1, 
    "num_tokens": 8, 
    "parse_time": 0.18756818771362305, 
    "tok_time": 0.019917011260986328, 
    "total_time": 0.20748519897460938
  }
}

Þjónustan ifdtag.api tekur inn texta og skilar til baka hverju orði hans með einfaldri mörkun (part-of-speech tag) úr markaskrá Íslensku orðtíðnibókarinnar (IFD).

ifdtag.api notar markara sem byggir á tölfræði úr stóru textasafni, ekki á málfræðireglum. Þjónustan getur því markað texta sem Greyni tekst ekki að þátta. Á móti kemur að nákvæmnin er tilviljanakenndari og samkvæmni stundum minni en í postag.api sem byggir á þáttun.

Stutta texta sem eru einungis ein málsgrein má málgreina með einföldu HTTPS GET þar sem textinn er sendur sem hluti af vefslóð (URL):

GET https://greynir.is/ifdtag.api/v1?t=Hér er dæmi um texta til að málgreina

Lengri texta má senda með HTTP POST í application/x-www-form-urlencoded formi, í svæði sem heitir text.

Dæmi um hvernig nota má POST kallið frá curl í GNU/Linux:

$ curl -d "text=Í dag er ágætt veður en mikil hálka er á götum." https://greynir.is/ifdtag.api/v1

Enn lengri texta má senda með HTTP POST í text/plain formi, kóðaða í UTF-8 og með línuskiptum (newline, \n) milli málsgreina. Dæmi:

$ curl -d @example.txt https://greynir.is/ifdtag.api/v1 --header "Content-Type: text/plain"

ifdtag.api/v1 þjónustan skilar JSON skjali með eftirfarandi undirgreinum:

um mörkun málsgreinarinnar Halldór Laxness fékk nóbelsverðlaunin í bókmenntum árið 1955.

{
  "result": [
    [
      [
        "Halldór", 
        "nken-m"
      ], 
      [
        "Laxness", 
        "nken-m"
      ], 
      [
        "fékk", 
        "sfg3eþ"
      ], 
      [
        "nóbelsverðlaunin", 
        "nhfog"
      ], 
      [
        "í", 
        "aþ"
      ], 
      [
        "bókmenntum", 
        "nvfþ"
      ], 
      [
        "árið", 
        "nheog"
      ], 
      [
        "1955", 
        "ta"
      ], 
      [
        ".", 
        "."
      ]
    ]
  ], 
  "valid": true
}

Fyrirspurnir

Þjónustan query.api svarar fyrirspurnum um fólk og titla og um skilgreiningar sérnafna. Einnig er unnt að spyrja um orð sem tengjast gefnum orðum.

Nánar til tekið má spyrja um eftirfarandi:

Einfaldast er að senda fyrirspurn með HTTPS GET þar sem hún er hluti af vefslóð (URL):

GET https://greynir.is/query.api/v1?q=Fyrirspurnin kemur hér

Fyrirspurn má einnig senda með HTTP POST í application/x-www-form-urlencoded formi, í svæði sem heitir q.

Dæmi um hvernig nota má POST kallið frá curl í GNU/Linux:

$ curl -d "q=Hver er bankastjóri Landsbankans?" https://greynir.is/query.api/v1

query.api/v1 þjónustan skilar JSON skjali með eftirfarandi undirgreinum:

um svar við fyrirspurninni Hver er dómsmálaráðherra Bretlands?

{
   "valid": true, 
   "key": "dómsmálaráðherra Bretlands", 
   "num_parsed_sent": 1, 
   "num_sent": 1, 
   "q": "Hver er dómsmálaráðherra Bretlands?", 
   "qtype": "Title", 
   "response": [
     {
       "answer": "Michael Gove", 
       "sources": [
         {
           "domain": "mbl.is", 
           "heading": "Theresa May sigraði í fyrstu umferð", 
           "ts": "2016-07-05T20:42", 
           "url": "http://www.mbl.is/frettir/erlent/2016/07/05/theresa_may_sigradi_i_fyrstu_umferd/", 
           "uuid": "2133214a-4533-11e6-8429-04014c605401"
         }, 
         {
           "domain": "ruv.is", 
           "heading": "Sækjast eftir að stýra Íhaldsflokknum", 
           "ts": "2016-06-30T09:28", 
           "url": "http://www.ruv.is/frett/saekjast-eftir-ad-styra-ihaldsflokknum", 
           "uuid": "1f86a9f2-4533-11e6-8429-04014c605401"
         }, 
         {
           "domain": "mbl.is", 
           "heading": "Johnson, Gove og May bítast um formanninn", 
           "ts": "2016-06-30T08:18", 
           "url": "http://www.mbl.is/frettir/erlent/2016/06/30/johnson_gove_og_may_bitast_um_formanninn/", 
           "uuid": "1ee101df-4533-11e6-8429-04014c605401"
         }
       ]
     }
   ]
}

Greinar

Þjónustan article.api skilar upplýsingum um tiltekna grein eða frétt í gagnagrunni Greynis, m.a. sérnöfnum, nöfnum og titlum fólks sem kemur fyrir í greininni, og efnisflokkum greinarinnar.

Sækja má grein eftir vefslóð (URL) eða einkenni hennar í gagnagrunni Greynis (UUID).

Spyrja má um grein með HTTPS GET ásamt url eða id:

GET https://greynir.is/article.api/v1?url=Vefslóð kemur hér

eða:

GET https://greynir.is/article.api/v1?id=Einkenni (UUID) kemur hér

Sama gildir um HTTP POST í application/x-www-form-urlencoded formi.

Dæmi um hvernig nota má POST kallið frá curl í GNU/Linux:

$ curl -d "url=http://www.ruv.is/frett/segir-nafn-svavars-gudnasonar-eydilagt" https://greynir.is/article.api/v1

article.api/v1 þjónustan skilar JSON skjali með eftirfarandi undirgreinum:

um upplýsingar um greinina http://www.ruv.is/frett/segir-nafn-svavars-gudnasonar-eydilagt

{
  "ambiguity": 1.58401878459231, 
  "author": "Sigríður Hagalín Björnsdóttir", 
  "heading": "Segir nafn Svavars Guðnasonar eyðilagt", 
  "id": "e3701936-bc78-11e6-b57e-04014c605401", 
  "num_parsed": 16, 
  "num_sentences": 17, 
  "register": {
    "Bruun Rasmussen": {
      "kind": "entity", 
      "title": "danskt uppboðshús"
    }, 
    "Svavar Guðnason": {
      "kind": "name", 
      "title": "abstraktlistamaður"
    }, 
    "Ólafur Ingi Jónsson": {
      "kind": "name", 
      "title": "forvörður hjá Listasafni Íslands"
    }
  }, 
  "topics": [
    {
      "id": "culture", 
      "name": "Menning og listir"
    }
  ], 
  "ts": "2016-12-07T12:20:02", 
  "url": "http://www.ruv.is/frett/segir-nafn-svavars-gudnasonar-eydilagt", 
  "valid": true
}