Menggeneralisasikan kalimat terkenal Chomsky ke dalam vektor tunggal sintaksis.
Perhatikan kalimat Chomsky:
Ide-ide hijau tak berwarna tertidur lelap.
Kalimat tersebut benar secara tata bahasa (sintaksis) tetapi tidak bermakna (semantik). Sulit membayangkan sebuah ide yang hijau dan tidak berwarna serta sebuah ide yang bisa membuat marah. Kalimat ini dikemukakan sebagai kalimat yang belum pernah diucapkan sebelumnya dalam bahasa Inggris, dan tanpa konstruksi Chomsky mungkin tidak akan pernah ada. Ini indah dalam absurditasnya, jadi mari kita ciptakan lebih banyak lagi!
Pemrosesan bahasa alami itu sulit, jadi mari kita batasi masalahnya pada proyek tituler, Colorless green idea
. Ini adalah frasa kata benda , yang khusus dengan struktur JJ JJ NN*
di mana JJ
mengacu pada kata sifat dan NN*
mengacu pada varian kata benda apa pun (sintaksis WordNet). Jika kita memiliki korpus teks yang besar, kita dapat menemukan semua frasa kata benda bertipe JJ ... JJ NN*
dan mengasosiasikan setiap kata sifat dengan kata benda yang bersangkutan, yang pada dasarnya merupakan basis data bigram.
Jika tujuannya adalah untuk membuat frasa kata benda yang tidak berarti, database bigram tidak akan memberikan apa pun yang belum pernah kita lihat sebelumnya. Ini tidak bisa diterima. Oleh karena itu, kami mencari dekomposisi dan melakukan dekomposisi nilai tunggal pada database (kata benda) yang dinormalisasi. Kami secara khusus menjaga varians yang dijelaskan agak rendah, jika terlalu tinggi maka hanya akan membuat ulang database bigram, jika terlalu rendah kami akan kehilangan semua hubungan kata. Hal ini tentu saja mengaburkan data; vektor tunggal kiri mewakili subruang di mana kata benda dikorelasikan dengan kata benda lain yang memiliki kata sifat yang sama dan vektor tunggal kanan mewakili subruang di mana kata sifat dikorelasikan dengan kata sifat lain yang memiliki kata benda yang sama. Sederhana bukan?
JJ JJ NN
Dimulai dengan kata benda NN
, kita memilih sekumpulan kata sifat yang “jauh” dari kata benda tersebut. Memilih JJ1
yang pertama, kita memilih kata sifat kedua JJ2
yang jauh dari kata sifat pertama JJ1
. Ini memberi kita skor untuk setiap pasangan, (JJ1,JJ2)
, (JJ1,NN)
, dan (JJ2,NN)
. Dengan menggunakan database sampel, manusia secara sewenang-wenang memutuskan bahwa skor gabungan, dalam kisaran -0.075 < s < -0.010
adalah optimal. Mengapa memiliki batas bawah? Ternyata frasa yang memiliki skor sangat absurd hanyalah kata-kata umum yang ortogonal satu sama lain seperti tempat dan warna, keluarannya benar tapi membosankan. Saya lebih suka "elang legislatif industri".
Berikut ini beberapa favorit saya:
-0.0290 severe municipal jazz
-0.0329 old sole beard
-0.0371 hot racial archbishop
-0.0428 municipal professional everything
-0.0427 legal high ballad
-0.0427 single spanish sin
-0.0420 successful specific seal
-0.0419 chief live foliage
-0.0417 spiritual guilty warship
-0.0393 agricultural professional click
-0.0382 possible urban king
-0.0381 coastal senior methodology
-0.0365 entire dry institutes
-0.0328 federal minor upbringing
-0.0308 secret psychological fragment
-0.0305 professional free gown
-0.0297 earliest electric litigation
Untuk memulai, buatlah database frase kata benda. Saya membuatnya dari Wikipedia, dan alatnya dapat ditemukan di repositori ini di sini. Jika Anda memilih untuk tidak membuatnya sendiri, Anda dapat menggunakan database yang disertakan, JJ_noun_phrase.db
dan jalankan saja:
python absurd_noun_pairs.py
Banyak modul ... pandas
, sqlite
, numpy
, sklearn
, BeautifulSoup
, nltk
, pattern.en
.