這個庫厲害了,自動補全 Python 代碼,節省 50% 敲碼時間


原文:https://blog.csdn.net/qq_4320...html

摘要:介紹一個優秀代碼自動補全工具庫。python

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

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

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

做者在帖子中表示,他們接下來會嘗試不一樣的架構,並提升推斷的表現。而如今的模型推斷很慢,不能實際使用。做者已在 GitHub 開源了項目代碼:服務器

連接地址: https://github.com/vpj/python_autocomplete架構

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

咱們知道不少 IDE 提供自動補全功能,這款工具又有什麼區別呢? 機器學習

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

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

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

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

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

Pycharm 的自動補全介紹:https://www.jetbrains.com/hel...

網友評價

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

「咱們已經有不少很好用的自動補全工具了,好比 kite(一個能夠在 IDE 上使用的插件),爲何還要費心搞個機器學習模型?」

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

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

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

對於使用深度學習自動補全代碼,你有什麼想法呢?

歡迎小夥伴留言評論。若有幫助,歡迎點贊+轉發分享。

歡迎你們關注民工哥的公衆號:民工哥技術之路
image.png

相關文章
相關標籤/搜索