自然語言處理---文本表示

1. 引言

所謂文本表示既是通過某種形式將文本字符串表示成計算機所能處理的數(shù)值向量。那么為什么要進行文本表示坑资,根本原因是計算機不能直接對文本字符串進行處理,因此需要進行數(shù)值化或者向量化穆端。不僅傳統(tǒng)的機器學(xué)習(xí)算法需要這個過程袱贮,深度學(xué)習(xí)也需要這個過程,只不過這個過程可能直接包含在了深度學(xué)習(xí)網(wǎng)絡(luò)中体啰;同時攒巍,良好的文本表示形式也可以極大的提升算法效果。

1.1 表示方法分類

文本表示一直以來都是自然語言處理研究領(lǐng)域中的一個熱點問題荒勇,總體來講主要分為二大類柒莉,

  • One-hot Representation ,直譯是獨熱編碼,但筆者不建議去強硬翻譯沽翔,因為有些時候中文并不一定有確切的詞與其對應(yīng)兢孝,這樣會有失偏頗。這種編碼格式首先建立一個全局的完備的詞典仅偎,該詞典包含所有文本中的詞跨蟹,因此該方式表示后的形式為一個很大的vector,vector中只在該詞出現(xiàn)的位置設(shè)置為1哨颂,表示該詞出現(xiàn)喷市,其余全部為0.這種形式的弊端,未考慮詞序信息威恼,未考慮詞的上下文信息品姓,造成維數(shù)災(zāi)難寝并,出現(xiàn)語義鴻溝現(xiàn)象,僅從向量上無法表示兩個詞之間是否相近腹备。
  • Distributional Representation, 分布式表示衬潦。該算法的思想主要基于1954年Harris提出的分布式假說,“上下文相似的詞植酥,其語義也相似”镀岛,后來又經(jīng)過Firth對該假說進行闡述和論證,“詞的語義由其上下文確定”友驮。該方法的思路是選擇一種方式描述詞的上下文漂羊,通過某種模型找出詞(目標詞)與上下文之間的關(guān)系。根據(jù)建模方式的不同卸留,將分布式算法歸納為三大類走越,基于矩陣模型,基于聚類模型耻瑟,基于神經(jīng)網(wǎng)絡(luò)模型旨指。下文會對各模型中設(shè)計到的算法進行簡單解釋。

2. 分布表示算法

2.1 基于矩陣模型

該模型的思路主要是喳整,根據(jù)文本內(nèi)容構(gòu)建一個詞-上下文矩陣谆构,每一行代表一個詞,每一列代表一個文本或者上下文框都,那么每行就可以作為一個term的表示搬素。

  • 詞 -上下文 矩陣構(gòu)造
    給定一篇文章或者一個語料庫,首先將其轉(zhuǎn)換為為 term-document 或者是** term-context ** 矩陣
  • 矩陣元素值 表示
    矩陣中每個元素的value可以是該 term的TF-IDF值瞬项,通常此種方法簡潔高效蔗蹋,工程中應(yīng)用也最為廣泛何荚。
  • 降維
    對于文本數(shù)據(jù)來說囱淋,構(gòu)造出來的矩陣是高維、稀疏矩陣餐塘,因此為便于后續(xù)的處理通常會采用降維方法對矩陣進行降維妥衣,保留更有意義的內(nèi)容,常用的方式為SVD(Singular Value Decomposition)戒傻。為了更加直觀的理解這個算法税手,通過一個具體的文本數(shù)據(jù)來感知基于矩陣建模的過程。
    首先給定文檔內(nèi)容如下:

doc1 : "NBA2K16 視頻 設(shè)置 存儲 位置 _NBA 視頻 設(shè)置 存儲 位置 解析 攻略 玩游戲"
doc2 : "NBA2K16 ncaa 豪門 大學(xué) 選擇 推薦 NBA ncaa 大學(xué) 選擇 游戲網(wǎng) 攻略"
doc3 : "NBA2K16 學(xué)好 NBA2K16 大學(xué) 名校 選擇 攻略 攻略 心得 單機"

1)構(gòu)造 term-document matrix需纳,矩陣的元素為該詞在不同doc里出現(xiàn)的次數(shù)

term-DocMatrix ^T= [[1, 1, 0, 2, 0, 0, 0, 2, 0, 0, 0, 1, 0, 1, 2, 1, 2, 0, 0],
                    [1, 1, 2, 0, 0, 0, 2, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 2],
                    [0, 2, 0, 0, 1, 1, 1, 0, 1, 1, 0, 2, 0, 0, 0, 0, 0, 0, 1]] 
term^T = [ nba , nba2k16 , ncaa , 位置 , 單機 ,名校 , 大學(xué) , 存儲 , 
學(xué)好 , 心得 , 推薦 , 攻略 , 游戲網(wǎng) , 玩游戲 , 視頻 , 解析 , 設(shè)置 , 豪門 , 選擇]

如上圖所示芦倒,term-DocMatrix 是詞-文檔矩陣,每一列是一個doc不翩,每一行代表每個詞在不同doc中的詞頻兵扬。(本示例中采用的是分好詞的文本麻裳,token之間用space隔開)
2) 采用TF-IDF 模型填充term-docMatrix中每個元素值。

term-docValueMatrix^T = [
       [ 0.17322273,  0.1345229 ,  0.        ,  0.45553413,  0.        ,
         0.        ,  0.        ,  0.45553413,  0.        ,  0.        ,
         0.        ,  0.1345229 ,  0.        ,  0.22776707,  0.45553413,
         0.22776707,  0.45553413,  0.        ,  0.        ],
       [ 0.21172122,  0.16442041,  0.55677592,  0.        ,  0.        ,
         0.        ,  0.42344244,  0.        ,  0.        ,  0.        ,
         0.27838796,  0.16442041,  0.27838796,  0.        ,  0.        ,
         0.        ,  0.        ,  0.27838796,  0.42344244],
       [ 0.        ,  0.41900794,  0.        ,  0.        ,  0.35472106,
         0.35472106,  0.26977451,  0.        ,  0.35472106,  0.35472106,
         0.        ,  0.41900794,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.26977451]]

3)采用SVD 降維
term-docMatrix = USigmaV

U^T = [[-0.31592434,  0.94651327, -0.06560826],
       [-0.66440088, -0.27006617, -0.6968757 ],
       [-0.67732067, -0.17656981,  0.71418472]]

Sigma^T = [ 1.18821321,  0.97769309,  0.79515131]

V^T = [[-0.16444274, -0.36655279, -0.31132663, -0.12111826, -0.20220269,
        -0.20220269, -0.39055228, -0.12111826, -0.20220269, -0.20220269,
        -0.15566331, -0.36655279, -0.15566331, -0.06055913, -0.12111826,
        -0.06055913, -0.12111826, -0.15566331, -0.39055228],
       [ 0.10921512,  0.00914312, -0.15379708,  0.4410066 , -0.06406206,
        -0.06406206, -0.16568749,  0.4410066 , -0.06406206, -0.06406206,
        -0.07689854,  0.00914312, -0.07689854,  0.2205033 ,  0.4410066 ,
         0.2205033 ,  0.4410066 , -0.07689854, -0.16568749],
       [-0.19984651,  0.22114366, -0.48796198, -0.03758631,  0.31860145,
         0.31860145, -0.12880305, -0.03758631,  0.31860145,  0.31860145,
        -0.24398099,  0.22114366, -0.24398099, -0.01879315, -0.03758631,
        -0.01879315, -0.03758631, -0.24398099, -0.12880305],
       [-0.44741306,  0.03857492,  0.08025905,  0.81630905, -0.00975885,
        -0.00975885,  0.03422628, -0.18369095, -0.00975885, -0.00975885,
         0.02738115, -0.04960114,  0.02738115, -0.09184548, -0.18369095,
        -0.09184548, -0.18369095,  0.02738115,  0.03422628],
       [ 0.01801602, -0.25523251,  0.25570126,  0.02316318,  0.89589932,
        -0.10410068, -0.09155289,  0.02316318, -0.10410068, -0.10410068,
        -0.00814018, -0.12093452, -0.00814018,  0.01158159,  0.02316318,
         0.01158159,  0.02316318, -0.00814018, -0.09155289],
       [ 0.01801602, -0.25523251,  0.25570126,  0.02316318, -0.10410068,
         0.89589932, -0.09155289,  0.02316318, -0.10410068, -0.10410068,
        -0.00814018, -0.12093452, -0.00814018,  0.01158159,  0.02316318,
         0.01158159,  0.02316318, -0.00814018, -0.09155289],
       [-0.02484861, -0.41515297, -0.22222725,  0.03237328,  0.00507016,
         0.00507016,  0.84492088,  0.03237328,  0.00507016,  0.00507016,
        -0.10449028, -0.04616452, -0.10449028,  0.01618664,  0.03237328,
         0.01618664,  0.03237328, -0.10449028, -0.15507912],
       [-0.44741306,  0.03857492,  0.08025905, -0.18369095, -0.00975885,
        -0.00975885,  0.03422628,  0.81630905, -0.00975885, -0.00975885,
         0.02738115, -0.04960114,  0.02738115, -0.09184548, -0.18369095,
        -0.09184548, -0.18369095,  0.02738115,  0.03422628],
       [ 0.01801602, -0.25523251,  0.25570126,  0.02316318, -0.10410068,
        -0.10410068, -0.09155289,  0.02316318,  0.89589932, -0.10410068,
        -0.00814018, -0.12093452, -0.00814018,  0.01158159,  0.02316318,
         0.01158159,  0.02316318, -0.00814018, -0.09155289],
       [ 0.01801602, -0.25523251,  0.25570126,  0.02316318, -0.10410068,
        -0.10410068, -0.09155289,  0.02316318, -0.10410068,  0.89589932,
        -0.00814018, -0.12093452, -0.00814018,  0.01158159,  0.02316318,
         0.01158159,  0.02316318, -0.00814018, -0.09155289],
       [-0.02534448, -0.14532188, -0.2739517 ,  0.0097019 ,  0.05538366,
         0.05538366, -0.05617876,  0.0097019 ,  0.05538366,  0.05538366,
         0.93537401,  0.03011687, -0.06462599,  0.00485095,  0.0097019 ,
         0.00485095,  0.0097019 , -0.06462599, -0.05617876],
       [-0.12581243, -0.37592682,  0.16394342, -0.02115422, -0.09313846,
        -0.09313846, -0.131218  , -0.02115422, -0.09313846, -0.09313846,
        -0.03969872,  0.86028813, -0.03969872, -0.01057711, -0.02115422,
        -0.01057711, -0.02115422, -0.03969872, -0.131218  ],
       [-0.02534448, -0.14532188, -0.2739517 ,  0.0097019 ,  0.05538366,
         0.05538366, -0.05617876,  0.0097019 ,  0.05538366,  0.05538366,
        -0.06462599,  0.03011687,  0.93537401,  0.00485095,  0.0097019 ,
         0.00485095,  0.0097019 , -0.06462599, -0.05617876],
       [-0.22370653,  0.01928746,  0.04012952, -0.09184548, -0.00487943,
        -0.00487943,  0.01711314, -0.09184548, -0.00487943, -0.00487943,
         0.01369058, -0.02480057,  0.01369058,  0.95407726, -0.09184548,
        -0.04592274, -0.09184548,  0.01369058,  0.01711314],
       [-0.44741306,  0.03857492,  0.08025905, -0.18369095, -0.00975885,
        -0.00975885,  0.03422628, -0.18369095, -0.00975885, -0.00975885,
         0.02738115, -0.04960114,  0.02738115, -0.09184548,  0.81630905,
        -0.09184548, -0.18369095,  0.02738115,  0.03422628],
       [-0.22370653,  0.01928746,  0.04012952, -0.09184548, -0.00487943,
        -0.00487943,  0.01711314, -0.09184548, -0.00487943, -0.00487943,
         0.01369058, -0.02480057,  0.01369058, -0.04592274, -0.09184548,
         0.95407726, -0.09184548,  0.01369058,  0.01711314],
       [-0.44741306,  0.03857492,  0.08025905, -0.18369095, -0.00975885,
        -0.00975885,  0.03422628, -0.18369095, -0.00975885, -0.00975885,
         0.02738115, -0.04960114,  0.02738115, -0.09184548, -0.18369095,
        -0.09184548,  0.81630905,  0.02738115,  0.03422628],
       [-0.02534448, -0.14532188, -0.2739517 ,  0.0097019 ,  0.05538366,
         0.05538366, -0.05617876,  0.0097019 ,  0.05538366,  0.05538366,
        -0.06462599,  0.03011687, -0.06462599,  0.00485095,  0.0097019 ,
         0.00485095,  0.0097019 ,  0.93537401, -0.05617876],
       [-0.02484861, -0.41515297, -0.22222725,  0.03237328,  0.00507016,
         0.00507016, -0.15507912,  0.03237328,  0.00507016,  0.00507016,
        -0.10449028, -0.04616452, -0.10449028,  0.01618664,  0.03237328,
         0.01618664,  0.03237328, -0.10449028,  0.84492088]]

4)根據(jù)SVD的分解結(jié)果器钟,因為只有3個奇異值津坑,我們可以根據(jù)分解之后的結(jié)果重構(gòu)原來的term-docMatrix,此時傲霸,我們只需要U的前三列U[:,:3]疆瑰,V的前三行V[:3,:],重構(gòu)結(jié)果:

term-DocMatrix^T = [[-0.11278275,  0.33070808, -0.30923603,  0.01264451,  0.35411661,
          0.35411661,  0.03413284,  0.01264451,  0.35411661,  0.35411661,
         -0.15461801,  0.33070808, -0.15461801,  0.00632225,  0.01264451,
          0.00632225,  0.01264451, -0.15461801,  0.03413284],
        [ 0.29332642,  0.1084434 ,  0.64500943,  0.12636854, -0.10103917,
         -0.10103917,  0.4137034 ,  0.12636854, -0.10103917, -0.10103917,
          0.32250471,  0.1084434 ,  0.32250471,  0.06318427,  0.12636854,
          0.06318427,  0.12636854,  0.32250471,  0.4137034 ],
        [ 0.05335364,  0.38241006,  0.05768725,  0.08262001,  0.28866144,
          0.28866144,  0.26340711,  0.08262001,  0.28866144,  0.28866144,
          0.02884362,  0.38241006,  0.02884362,  0.04131001,  0.08262001,
          0.04131001,  0.08262001,  0.02884362,  0.26340711]]

經(jīng)過svd計算之后重新生成的term-docMatrix中的每個詞的表示已經(jīng)包含了部分語義了昙啄,因此可以直接用于后續(xù)NLP任務(wù)中穆役。

2.1.1 基于矩陣模型的算法

  • LSA/LSI(Latent Semantic Analysis/ Indexing)
    前一節(jié)示例的過程其實就是LSA 算法的運行過程。LSI可以說是LSA在search場景下的一個應(yīng)用梳凛,給定一個document collection和一個query孵睬,返回query對應(yīng)的查詢。首先將document collection 轉(zhuǎn)換為term-document matrix伶跷,term通常來源于document的title掰读,keywords list,abstract叭莫,同時也將query轉(zhuǎn)換為一個vector蹈集,vector中元素的值為每個詞的平均權(quán)重,可以用TF-IDF模型計算得出雇初,從而可以根據(jù)向量計算出query對應(yīng)的document拢肆。
    為什么LSA可以有效解詞語同義和多義的問題:
    LSA/I 本質(zhì)是挖掘詞與詞在文檔層面共現(xiàn)模式,如果兩個詞經(jīng)常同時出現(xiàn)靖诗,那么他們很容易被理解為具有相同的語義郭怪,同時如果兩個詞的背景上下文經(jīng)常相同或相似,他們也被理解為具有相同語義刊橘。LSA通過捕獲這些共現(xiàn)模式鄙才,使得在同一個主題中,具有高權(quán)重的詞聚合在一起促绵,也說明這些詞語義相近攒庵。
    優(yōu)點是能夠避免簡單語義鴻溝,解決此的歧義問題败晴。缺點是對于大規(guī)模語料處理時會很耗費時間浓冒,因為文本通常維數(shù)較高,
  • HAL
  • GloVe
  • Jones & Mewhort

基于 聚類方式:

  • Brown Clustering

基于神經(jīng)網(wǎng)絡(luò):

  • Skip-gram
  • CBOW
  • Order
  • LBL
  • NNLM
  • C&W

2. 每個詞向量算法原理探究

3. 不同算法對比

4. 總結(jié)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末尖坤,一起剝皮案震驚了整個濱河市稳懒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌慢味,老刑警劉巖场梆,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件佛致,死亡現(xiàn)場離奇詭異,居然都是意外死亡辙谜,警方通過查閱死者的電腦和手機俺榆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來装哆,“玉大人罐脊,你說我怎么就攤上這事⊥汕伲” “怎么了萍桌?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長凌简。 經(jīng)常有香客問我上炎,道長,這世上最難降的妖魔是什么雏搂? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任藕施,我火速辦了婚禮,結(jié)果婚禮上凸郑,老公的妹妹穿的比我還像新娘裳食。我一直安慰自己,他們只是感情好芙沥,可當(dāng)我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布诲祸。 她就那樣靜靜地躺著,像睡著了一般而昨。 火紅的嫁衣襯著肌膚如雪救氯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天歌憨,我揣著相機與錄音着憨,去河邊找鬼。 笑死躺孝,一個胖子當(dāng)著我的面吹牛享扔,可吹牛的內(nèi)容都是我干的底桂。 我是一名探鬼主播植袍,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼籽懦!你這毒婦竟也來了于个?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤暮顺,失蹤者是張志新(化名)和其女友劉穎厅篓,沒想到半個月后秀存,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡羽氮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年或链,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片档押。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡澳盐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出令宿,到底是詐尸還是另有隱情叼耙,我是刑警寧澤,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布粒没,位于F島的核電站筛婉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏癞松。R本人自食惡果不足惜爽撒,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望响蓉。 院中可真熱鬧匆浙,春花似錦、人聲如沸厕妖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽言秸。三九已至软能,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間举畸,已是汗流浹背查排。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抄沮,地道東北人跋核。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像叛买,于是被迫代替她去往敵國和親砂代。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內(nèi)容