將喬姆斯基的著名句子概括為句法奇異向量。
考慮一下喬姆斯基的句子:
無色的綠色思想瘋狂地沉睡。
該句子在語法上(語法)正確,但毫無意義(語義)。很難想像一個想法既是綠色的又是無色的,而且是一個可以在憤怒中入睡的想法。它被假定為一個以前從未在英語中說過的句子,如果沒有喬姆斯基的構造,可能永遠不會出現。它的荒謬是美麗的,所以讓我們創造更多!
自然語言處理很困難,所以讓我們將問題限制在名義項目上,即Colorless green idea
。這是一個名詞短語,具有JJ JJ NN*
結構的特殊短語,其中JJ
指形容詞, NN*
指任何名詞變體(WordNet 語法)。如果我們有一些大型文本語料庫,我們可以找到JJ ... JJ NN*
類型的所有名詞短語,並將每個形容詞與相應的名詞相關聯,本質上是一個二元資料庫。
如果目標是創建無意義的名詞短語,那麼二元資料庫不會為我們提供任何我們以前從未見過的東西。這是不可接受的。因此,我們尋求分解並對(名詞)標準化資料庫執行奇異值分解。我們特別將解釋的變異數保持在較低水平,如果它太高,它只會重新建立二元資料庫,如果它太低,我們將丟失所有單字關係。這自然會模糊數據;左奇異向量表示一個子空間,其中名詞與共享共同形容詞的其他名詞相關,右奇異向量表示一個子空間,其中形容詞與共享共同名詞的其他形容詞相關。簡單吧?
JJ JJ NN
從名詞NN
開始,我們選擇一組距離該名詞「很遠」的形容詞。選擇第一個形容詞JJ1
,我們選擇遠離第一個形容詞JJ1
的第二個形容詞JJ2
。這為我們提供了每個配對(JJ1,JJ2)
、 (JJ1,NN)
和(JJ2,NN)
的分數。使用樣本資料庫,人們任意確定-0.075 < s < -0.010
範圍內的組合分數是最佳的。為什麼要有下限?事實證明,得分非常荒謬的短語只是常見的單詞,它們彼此正交,就像地方和顏色一樣,輸出正確但很無聊。我比較喜歡「工業立法之鷹」。
以下是我最喜歡的一些:
-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
首先,建立一個名詞片語資料庫。我從維基百科建立了我的工具,可以在這個儲存庫中找到它的工具。如果您不想建立自己的資料庫,則可以使用附帶的資料庫JJ_noun_phrase.db
並只需執行:
python absurd_noun_pairs.py
很多模組... pandas
、 sqlite
、 numpy
、 sklearn
、 BeautifulSoup
、 nltk
、 pattern.en
。