python自动补全库_叼炸天的库! 自动补全 Python 代码,能节省 60% 敲码时间
近日,Reddit 上的一篇帖子引起了網(wǎng)友的熱議。帖子作者「mlvpj」稱:
「我們使用深度學(xué)習(xí)完成了一個(gè)簡單的項(xiàng)目,可以自動(dòng)進(jìn)行 Python 代碼補(bǔ)全。」
根據(jù)介紹,該項(xiàng)目基于 LSTM 模型,訓(xùn)練后,負(fù)責(zé)對代碼的缺失部分進(jìn)行補(bǔ)全。評價(jià)模型的方法是判斷節(jié)省了多少的按鍵信息——即模型給出長度為 L 的代碼建議,如果和真實(shí)的代碼匹配,則節(jié)省 L - 1 個(gè)鍵入操作。實(shí)驗(yàn)結(jié)果說明,大約可?以節(jié)省 30%-50% 的?時(shí)間鍵入成本?。
作者在帖子中表示,他們接下來會(huì)嘗試不同的架構(gòu),并提高推斷的表現(xiàn)。而現(xiàn)在的模型推斷很慢,不能實(shí)際使用。作者已在 GitHub 開源了項(xiàng)目代碼:
鏈接地址:
加python學(xué)習(xí)qq群:775690737 送python零基礎(chǔ)入門學(xué)習(xí)資料+99個(gè)源碼
在項(xiàng)目開發(fā)中,優(yōu)秀的代碼自動(dòng)補(bǔ)全工具可以提升工作效率。然而,近來的 IDE 基本都使用搜索方法進(jìn)行補(bǔ)全,在一些場景下效果不佳。近日,有開源項(xiàng)目用深度學(xué)習(xí)模型進(jìn)行代碼補(bǔ)全,顯示出非常有潛力的效果。
我們知道很多 IDE 提供自動(dòng)補(bǔ)全功能,這款工具又有什么區(qū)別呢?
和 IDE 的自動(dòng)補(bǔ)全有什么區(qū)別
該項(xiàng)目對 Python 代碼的自動(dòng)補(bǔ)全與傳統(tǒng) IDE(如 PyCharm)等不同。IDE 補(bǔ)全基于檢索方法,需要從已有代碼中進(jìn)行搜索。
以 PyCharm 中的基本補(bǔ)全(Basic Completion)方法為例。基本補(bǔ)全可幫助補(bǔ)全可見區(qū)域的類、方法、關(guān)鍵詞代碼。使用時(shí),PyCharm 會(huì)分析補(bǔ)全使用情況,并提供當(dāng)前位置可能的選擇。如果是對空間、參數(shù)或變量聲明進(jìn)行補(bǔ)全,則 PyCharm 會(huì)基于類別提供一系列可能的命名。
當(dāng)出現(xiàn)已定義的類、函數(shù)、模塊和變量時(shí),基本補(bǔ)全就會(huì)啟動(dòng)。
此外,PyCharm 也提供智能補(bǔ)全等其他補(bǔ)全功能,但基本上都需要對已有文本進(jìn)行搜索,根據(jù)位置和類型判斷補(bǔ)全的方法。這些方法都沒有配置機(jī)器學(xué)習(xí)模型。
Pycharm 的自動(dòng)補(bǔ)全介紹:
加python學(xué)習(xí)qq群:775690737 送python零基礎(chǔ)入門學(xué)習(xí)資料+99個(gè)源碼
網(wǎng)友評價(jià)
項(xiàng)目開源后,有些網(wǎng)友對作者提出了質(zhì)疑:
「我們已經(jīng)有很多很好用的自動(dòng)補(bǔ)全工具了,比如 kite(一個(gè)可以在 IDE 上使用的插件),為什么還要費(fèi)心搞個(gè)機(jī)器學(xué)習(xí)模型?」
在討論中,有人提出,一些無良的自動(dòng)補(bǔ)全工具會(huì)悄悄上傳代碼到他們的服務(wù)器中,(而自行訓(xùn)練的深度學(xué)習(xí)模型不存在這個(gè)問題)。
也有人提出,其實(shí)不一定要用 LSTM 模型,隱馬爾科夫模型在處理序列數(shù)據(jù)上效果也很好。
此外,也有網(wǎng)友建議使用 CuDNN 加速 LSTM 的推斷過程。這樣能大大提升推斷速度,集成到 IDE 中也就有了可能。.
..
總結(jié)
以上是生活随笔為你收集整理的python自动补全库_叼炸天的库! 自动补全 Python 代码,能节省 60% 敲码时间的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不干胶标贴打印模板下载_A4纸打印17*
- 下一篇: python类包含对象的个数_pytho