1. 程式人生 > >針對科技文章的多標籤分類

針對科技文章的多標籤分類

0. 起

  最近沒有更新。暑假之後學的東西也比較雜,看了一下基於DL的智慧美顏,感覺入了個大坑。前前後後看了傳統的輪廓提取演算法和FCN等等,調程式碼巴拉巴拉幾個星期就這麼過了。前幾天看ACM的best paper也覺得很有意思,兩個步驟:1)給圖片打標題,屬於多媒體計算和NLP的結合 2)由標題生成詩歌。感覺這裡面可以學的東西也有很多。等專案結束論文寫完一定好好的順著學一遍,看京都大學團隊說近期會公佈資料集,不錯不錯。

  最近是在看論文和弄實驗室的專案。之前的短評預測預訂明年的一個專案,而今年的題目是:新知識抽取與發現。主要是針對科技文章的,也就是知網文章。我在想怎麼做這個題目的時候也是百般思考(因為這個題目是去年訂的,沒有經過我的手),如何體現新知識?抽取與發現在NLP倒是老生常談,提取主題、摘要、關鍵字,發現無非也就是分類或者打標籤。

  之前已經畢業的師兄是有一套完整的單標籤程式碼的,包含他的畢業論文一同給了我參考。這裡也可以簡單說一下打標籤和分類的區別,也方便捋清思路。好比你在淘票票上買電影票,點進電影介紹,它會告訴你這是一部18R/成人向/.../的電影,這就是一個分類;而電影的型別是Comedy/Tragedy/.../Family and Comedy,這就是多標籤,即可以存在交叉項或是合併項。所以我合計著師兄的單標籤其實也就是分類....

  為什麼我不用師兄的呢,可以省很多事情,連答辯PPT都有改一改去糊弄一下甲方就完事。在我的理解裡面,交叉學科最容易產生新知識,甚至是新科學。計算機+智慧形成了近年來很火的人工智慧領域,金融+數學的結合成為了金融工程,這都是新知識新領域的誕生。IG進入S賽決賽,那提及一下傳媒+電競+主持等等你能想到什麼呢,不僅是新知識,新崗位也出現了。所以,從多標籤

的角度去闡述新知識更有意義

1. 承

  前面廢話了很多,其實也就是想說明白我這個偽邏輯。既然針對知網文章,那麼如何爬取一個文字--多標籤對的資料集就尤為關鍵了。在這裡我們也想了很多辦法,包括知網本身也有一些奇奇怪怪的反爬機制,這一塊我交給學弟去做了,也是煞費時間。

  知網本身沒有明顯的多標籤痕跡,它把文章的分類放在一個動態載入frame裡面。我們按照高階檢索欄的10來個大類*10來個子欄進行爬取,選取每篇文章的標題、摘要、多標籤。目前進展有10W+資料,資料還在更新中。(用的學校的公網ip,似乎沒有被封)為什麼要按照這種方式爬取呢,主要是為了各個類別標籤下的文章數量分佈均勻。不然訓練出某些詞向量會導致比重失衡。

圖1 按知網的分類進行爬取

  然後具體每篇文章的爬取內容如下,多標籤可以爬取一級、二級甚至三級標籤。我們爬取了一級和二級。主要是防止三級標籤太多導致稀疏問題,訓練時難以收斂,測試時結果可以也會和預期相去甚遠。當然具體的選擇可以根據自己的專案來做決定。

圖2 爬取內容

  存放呢。所有資料先寫入excel之後再進行整理。第一列設定一個ID,第二列標題,第三列摘要,第四列一級標籤,第五列二級標籤。然後將按文章,將題目和摘要整理到一個txt,標題一行摘要一行;將label整理到一個txt。這兩個檔案按id命名,只是字尾不同。最後再將所有的標籤彙總到一個檔案方便讀寫,一個標籤一行。目前為止我們總共收集了120+標籤。

2. 轉

10.29寫完上面的。直到現在還是沒時間更新後面的。專案結項了,然後施工論文ing。累。先貼幾張圖吧,之後有時間再繼續更,大概過年的時候了吧。


2018.12.10 16:53 更新

To be continue