人生苦短 我用Python

這裏寫圖片描述

專利信息,顧名思義,是一個「專利」與「信息」的交叉學科。往大了說,「專利」可歸屬於法律領域,而「信息」則歸屬於計算機領域,這兩個領域本身就有極高的門檻,尤其是計算機領域的專業性極強,相比而言,專利知識反倒是更易於學習。

因此,有不少從計算機領域跨界到專利領域,而鮮有從專利領域跨界到計算機領域的。但是,隨着高級編程語言的逐步普及,普通人學習編程的難度正在逐步降低。今天,筆者給各位讀者介紹Python編程語言,以期幫助感興趣的專利人士找到一條跨界捷徑。
若宮雅子的故事
這裏寫圖片描述
很多讀者一談到「編程」、「代碼」、「程序員」等詞彙,再看到花花綠綠的代碼,還沒開始學習就先打了退堂鼓,大學時代受「C語言」虐待的恐懼感油然而生。畢竟現在社會化分工越來越細,並不是每個專利信息從業人員都非得去學一門編程語言。但是,對於那些希望在專利信息領域深耕或對編程有濃厚興趣的人,筆者認爲是確有必要的。

爲給大家打氣,在介紹Python語言之前,先講一個日本老太太的故事。老太太叫若宮雅子,今年已經82歲高齡,60歲退休後她購買了自己的第一臺電腦並開始自學編程。2017年2月,她開發的第一款遊戲「雛壇」(Hinadan)在 App Store 日本區上架,迄今下載量已超過4.2萬次,她也成爲全球年齡最大的 iOS 開發者。可見,只要有一顆想學習的心,任何時候開始都不算晚!
初識Python

Python語言是在八十年代末和九十年代初,由Guido van Rossum在荷蘭國家數學和計算機科學研究所設計出來的。「Python」這個詞實際是來自於作者喜歡的一個喜劇團體(Monty Python),也是「大蟒蛇」的意思,因此,Python語言的logo也是蟒蛇的形象。關於Python語言的標籤一般有「簡單易學」、「優雅」、「膠水語言」,還有「人生苦短、我用Python」的情懷標語。用專業一點的描述來說,Python是一種面向對象、動態的、強類型解釋型語言。

Python本來是一個比較小衆的語言,但是近年來隨着機器學習及人工智能的興起,Python在數據處理方面的優勢,Python語言一下子就火熱起來。根據2017年IEEE Spectrum 發佈了第四屆頂級編程語言交互排行榜,Python甚至榮登榜首[1]。在2018年1月HankerRank發佈了2018年開發者技能調查報告中,在「最受僱主青睞的編程語言」中排名第三,而在愛恨指數排名中,Python 則贏得了全年齡段開發者的芳心[2]。

關於Python的基礎知識,本文不打算展開,而是重點介紹Python與專利數據處理相關幾個工具包:Pandas、NLTK和Scikit-learn。
數據處理工具包:Pandas
Pandas是python的一個數據分析包,最初由AQR Capital Management於2008年4月開發,並於2009年底開源出來。Pandas的名稱來自於面板數據(panel data)和python數據分析(data analysis),從其名稱就可以反映出,這個工具包就是專門來處理數據的。

對於首次接觸Pandas的讀者,可以用Excel來進行一個簡單的類比。Pandas中提供了一種二維表格型數據結構:Dataframe,可以將其類比於Excel 中的一張表。這樣所有Excel中的數據處理和數據分析的功能可以全部在DataFrame上來實現。

下面以讀取Excel專利數據文件,對數據進行遍歷並進行簡單分析示例。可見,利用Pandas可以將在Excel中的分析過程進行自動化,從而減少重複工作,提升分析效率。

這裏寫圖片描述
以上只是以利用Pandas來模擬Excel中的分析操作,實際上,Pandas的數據處理功能遠遠要強於Excel,如果要深入研究數據處理,Pandas是非常值得學習和研究的。
自然語言處理工具包:NLTK
NLTK的全稱是natural language toolkit,是一套基於python的自然語言處理工具集。在NLTK集成了常用的文本分析功能,例如詞頻統計、相似詞的查找、二詞搭配情況、單詞出現的位置圖、分詞、詞性標註、文本分類等等。關於nltk的應用涉及到大量自然語言處理的知識,本文僅以處理專利文本作爲一個簡單示例,讓各位讀者簡單瞭解這個工具。
這裏寫圖片描述
輸出結果:

1
2

上述結果僅是示例性的初步結果,其中明顯還有很多專利中的高頻詞、標點符號以及虛詞,對於中文分詞還需要進一步的優化。
機器學習工具包:Scikit-learn
這裏寫圖片描述
Python真正火起來,是因爲機器學習以及人工智能的興起。在Coursera上早期推出的一系列機器學習公開課均是非常推崇Python。目前,Python在機器學習領域有很多開源工具包,Scikit-learn是非常重要的一個。

Scikit-learn項目最早由數據科學家 David Cournapeau 在 2007 年發起,是Python語言中專門針對機器學習應用而發展起來的一款開源框架。Scikit-learn的基本功能主要被分爲六大部分:分類,迴歸,聚類,數據降維,模型選擇和數據預處理。

對於機器學習來說,比較複雜的在於各種機器學習的算法,例如支持向量機(SVM),最近鄰,邏輯迴歸,隨機森林,決策樹以及多層感知器(MLP)神經網絡等,而這些算法均在Scikit-learn中實現,也就是說只需要調用簡單的命令就可以運用各種複雜的機器學習算法,而讓人將重點放在訓練集的獲取以及結果的分析和調試上。

下面將針對某專利數據集採用邏輯迴歸預測的簡單示例。
這裏寫圖片描述
本文只是概要地爲大家介紹了Python以及在專利數據處理中非常著名的幾個工具包,對於python的基礎知識並沒有詳細涉及,因爲這些內容通過搜索很容易獲取。此外,上述三個工具包也對應着三個重要的數據處理方向,其內容也非常博大精深,需要在實踐中進一步學習積累。

學習一門編程語言,筆者認爲並不是一定要從事開發工作,而是有其他多種意義:一方面是可以更好理解編程思想,從而清楚地認識當下的互聯網世界;另一方面是可以將開源世界中的資源爲我所用,以更好的來解決本領域中遇到的問題;再者,掌握一門編程語言,可以脫離既有軟件工具的束縛,能夠獲得更加自由的想象力。而以Python作爲開始,無疑是一個比較合適的選擇。

最後以Python的標誌性標語來結束本文:
人生苦短 我用Python