Pages

Kamis, 19 Juni 2014

RelEx Language Extractor

RelEx adalah modul OpenCog yang bertugas mengekstrasi struktur dan keterhubungan kata dari sebuah kalimat dalam bahasa Inggris.


(Saya pikir RelEx berasal dari "relation extractor", tapi juga sebagai permainan kata/anagram dari "lexer")

RelEx dapat mengekstraksi:
  1. Kalimat berita
  2. Kalimat tanya
  3. Kalimat perintah

Secara umum, RelEx dapat mengkategorikan masih-masing bagian kalimat sebagai subjek, predikat, objek, dan keterangan.

Untuk tiap kata, RelEx akan mengklasifikasikan kata tersebut sebagai noun, verb, pronoun, adjective.
RelEx juga dapat mengenali tense sebuah kata, misalnya membedakan "look" (present), "looked" (past), "looking" (present continuous), dan sebagainya.

Saya belum tahu bagaimana Relex menangani bentuk-bentuk irregular seperti catch>caught dan yang sama misalnya read>read.

Relex juga dapat mengira-ira (tanpa tingkat probabilitas) sebuah pronoun menunjuk ke apa/siapa, misalnya:
  1. Alice loves me
  2. She is beautiful

kata ganti "She" menunjuk ke "Alice" di kalimat sebelumnya.

Contoh operasi RelEx untuk kalimat:

Alice looked at the cover of Shonen Jump.

outputnya adalah:

(S (NP Alice) (VP looked (PP at (NP (NP the cover) (PP of (NP Shonen Jump))))) .)

    +--------------------------Xp--------------------------+
    |                         +---Js---+     +----Js----+  |
    +---Wd---+----Ss---+--MVp-+  +--Ds-+--Mp-+    +--G--+  |
    |        |         |      |  |     |     |    |     |  |
LEFT-WALL Alice.f looked.v-d at the cover.n of Shonen Jump . 

Andai saja ada Relex untuk bahasa Indonesia, dengan fitur:
  1. Stemming, karena bahasa Indonesia penuh dengan imbuhan seperti me-, ber-, per-kan, dsb.
  2. mengenali singkatan (termasuk bahasa gaul dan bahasa alay he..he)

Saya terpikir untuk coba-coba bikin relex-id (project di GitHub), tapi bagaimana bila effortnya besar sekali dan takutnya waktunya tidak terkejar untuk menyelesaikan thesis?