這個庫厲害了,自動補全Python代碼,節省95%敲碼時間(附教程)

這個庫厲害了,自動補全Python代碼,節省95%敲碼時間(附教程)

近日,Reddit 上的一篇帖子引起了網友的熱議。帖子作者「mlvpj」稱:

「我們使用深度學習完成了一個簡單的項目,可以自動進行 Python 代碼補全。」

根據介紹,該項目基於 LSTM 模型,訓練後,負責對代碼的缺失部分進行補全。評價模型的方法是判斷節省了多少的按鍵信息——即模型給出長度為 L 的代碼建議,如果和真實的代碼匹配,則節省 L - 1 個鍵入操作。實驗結果說明,大約可以節省 30%-50% 的時間鍵入成本

作者在帖子中表示,他們接下來會嘗試不同的架構,並提高推斷的表現。而現在的模型推斷很慢,不能實際使用。作者已在 GitHub 開源了項目代碼:

鏈接地址: https://github.com/vpj/python_autocomplete

在項目開發中,優秀的代碼自動補全工具可以提升工作效率。然而,近來的 IDE 基本都使用搜索方法進行補全,在一些場景下效果不佳。近日,有開源項目用深度學習模型進行代碼補全,顯示出非常有潛力的效果。

這個庫厲害了,自動補全Python代碼,節省95%敲碼時間(附教程)

我們知道很多 IDE 提供自動補全功能,這款工具又有什麼區別呢?

和 IDE 的自動補全有什麼區別

該項目對 Python 代碼的自動補全與傳統 IDE(如 PyCharm)等不同。IDE 補全基於檢索方法,需要從已有代碼中進行搜索。

以 PyCharm 中的基本補全(Basic Completion)方法為例。基本補全可幫助補全可見區域的類、方法、關鍵詞代碼。使用時,PyCharm 會分析補全使用情況,並提供當前位置可能的選擇。如果是對空間、參數或變量聲明進行補全,則 PyCharm 會基於類別提供一系列可能的命名。

這個庫厲害了,自動補全Python代碼,節省95%敲碼時間(附教程)

當出現已定義的類、函數、模塊和變量時,基本補全就會啟動。

此外,PyCharm 也提供智能補全等其他補全功能,但基本上都需要對已有文本進行搜索,根據位置和類型判斷補全的方法。這些方法都沒有配置機器學習模型。

Pycharm 的自動補全介紹:https://www.jetbrains.com/help/pycharm/auto-completing-code.html

網友評價

項目開源後,有些網友對作者提出了質疑:

這個庫厲害了,自動補全Python代碼,節省95%敲碼時間(附教程)

「我們已經有很多很好用的自動補全工具了,比如 kite(一個可以在 IDE 上使用的插件),為什麼還要費心搞個機器學習模型?」

在討論中,有人提出,一些無良的自動補全工具會悄悄上傳代碼到他們的服務器中,(而自行訓練的深度學習模型不存在這個問題)。

也有人提出,其實不一定要用 LSTM 模型,隱馬爾科夫模型在處理序列數據上效果也很好。

這個庫厲害了,自動補全Python代碼,節省95%敲碼時間(附教程)

此外,也有網友建議使用 CuDNN 加速 LSTM 的推斷過程。這樣能大大提升推斷速度,集成到 IDE 中也就有了可能。

2019年最新python教程

如果你處於想學python或者正在學習python,那麼你的python教程應該不少了吧,但是是最新的嗎?

說不定你學的可能是兩年前人家就學過的內容,在這小編分享一波2019最新的python全套教程最後小編為大家準備了6月份新出的python自學視頻教程,共計415集,免費分享給大家!

2019Python自學教程全新升級為《Python+數據分析+機器學習》,九大階段能力逐級提升,打造技能更全面的全棧工程師。

請大家轉發本文+關注並私信小編:“資料”即可免費領取哦!

這個庫厲害了,自動補全Python代碼,節省95%敲碼時間(附教程)
這個庫厲害了,自動補全Python代碼,節省95%敲碼時間(附教程)
這個庫厲害了,自動補全Python代碼,節省95%敲碼時間(附教程)


分享到:


相關文章: