新聞中心
無(wú)論你是編程小白還是老司機(jī),coding過(guò)程中總會(huì)遇到不懂的問(wèn)題。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了定安免費(fèi)建站歡迎大家使用!
最常見(jiàn)的方法是去論壇詢(xún)問(wèn)、谷歌搜索,需要反復(fù)在網(wǎng)頁(yè)和編譯器頁(yè)面切換,即使有兩個(gè)很大的分屏,生產(chǎn)力也會(huì)受到影響。
[[341932]]
但是現(xiàn)在這個(gè)問(wèn)題有希望解決了,一個(gè)便捷編程Q&A工具codequestion可以幫到你。
直接在終端輸入「你要問(wèn)的問(wèn)題」,用普通的自然語(yǔ)言就行,和你去谷歌搜索沒(méi)什么兩樣。
然后馬上就能返回詳細(xì)操作教程,實(shí)現(xiàn)了直接在終端用對(duì)話形式來(lái)查詢(xún)操作手冊(cè)。
這么好用的工具安裝起來(lái)也不復(fù)雜。
安裝教程
安裝codequestion最簡(jiǎn)單的方法是通過(guò)pip或PyPI:
- pip install codequestion
當(dāng)然,你也可以克隆Github上的項(xiàng)目到本地:
- pip install git+https://github.com/neuml/codequestion
安裝codequestion需要Python 3.6版本以上。
對(duì)于Linux系統(tǒng)來(lái)說(shuō),可以直接運(yùn)行項(xiàng)目,但是Windows和Mac需要安裝額外項(xiàng)。
Windows需要安裝C++ Build Tools,地址如下:
- https://visualstudio.microsoft.com/visual-cpp-build-tools/
PyTorch Windows的二進(jìn)制文件不在PyPI上,安裝時(shí)必須添加以下url鏈接:
- pip install txtai -f https://download.pytorch.org/whl/torch_stable.html
對(duì)于Mac來(lái)說(shuō),安裝前需要運(yùn)行這個(gè)命令:
- brew install libomp
安裝步驟已經(jīng)完成了,接下來(lái)看看實(shí)例測(cè)試吧
AI驅(qū)動(dòng)的問(wèn)答機(jī)制
codequestion下載完成以后,還需要安裝一個(gè)模型。
- python -m codequestion.download
這個(gè)模型的核心就是作者David Mezzetti之前開(kāi)發(fā)的AI算法txtai。
txtai支持構(gòu)建文本索引,執(zhí)行相似性搜索,并創(chuàng)建基于提取式問(wèn)題回答的系統(tǒng)。
作者還提供了預(yù)訓(xùn)練的模型:
- unzip cqmodel.zip ~/.codequestion
codequestion是可以定制的,可以針對(duì)自定義的問(wèn)答庫(kù)運(yùn)行。目前,只支持Stack Exchange庫(kù)中的問(wèn)題幫助,未來(lái)會(huì)有更多的支持選項(xiàng)。
完成模型安裝后,可以通過(guò)以下命令運(yùn)行測(cè)試:
- mkdir -p ~/.codequestion/test/stackexchangewget https://raw.githubusercontent.com/neuml/codequestion/master/test/stackexchange/query.txt -P ~/.codequestion/test/stackexchangewget http://ixa2.si.ehu.es/stswiki/images/4/48/Stsbenchmark.tar.gztar -C ~/.codequestion/test -xvzf Stsbenchmark.tar.gzpython -m codequestion.evaluate -s test
代碼中包含將測(cè)試數(shù)據(jù)下載到?/ .codequestion / test中。
下面的表格顯示了各種詞向量/評(píng)分組合的測(cè)試結(jié)果。
SE 300d單詞向量與BM25評(píng)分在這個(gè)數(shù)據(jù)集中表現(xiàn)最好。即使減少了詞匯量的Stack Exchange問(wèn)題,SE 300d - BM25在STS基準(zhǔn)測(cè)試中的表現(xiàn)也相當(dāng)不錯(cuò)。
之前,量子位也介紹過(guò)一個(gè)相似的Linux命令行查詢(xún)工具,也是直接在終端輸入問(wèn)題,返回答案。
不同的是,當(dāng)時(shí)的工具howdoi是在在線技術(shù)論壇上搜索已有答案,范圍比較有限。
那么這次介紹的codequestion的AI驅(qū)動(dòng)機(jī)制,有什么先進(jìn)之處呢?
基本原理
第一步:原始數(shù)據(jù)轉(zhuǎn)儲(chǔ)處理
來(lái)自Stack Exchange庫(kù)的原始7z XML轉(zhuǎn)儲(chǔ)通過(guò)一系列步驟進(jìn)行處理。
只有高分的問(wèn)題和答案才會(huì)被檢索到,并存儲(chǔ)在模型中。
問(wèn)題和答案被整合到一個(gè)名為questions.db的單一SQLite文件中。questions.db 的模式如下:
- Id INTEGER PRIMARY KEYSource TEXTSourceId INTEGERDate DATETIMETags TEXTQuestionTEXTQuestionUser TEXTAnswer TEXTAnswerUser TEXTReference TEXT
第二步:檢索
codequestion工具為questions.db建立了一個(gè)句子嵌入索引。
questions.db模式中的每個(gè)問(wèn)題都會(huì)被標(biāo)記,并解析為單詞嵌入。
詞嵌入模型是建立在questions.db上的自定義fastText模型。一旦某個(gè)token被轉(zhuǎn)換為單詞嵌入,就會(huì)創(chuàng)建一個(gè)加權(quán)的句子嵌入。
詞嵌入使用BM25索引對(duì)資源庫(kù)中的所有token進(jìn)行加權(quán)。但有一個(gè)重要的修改:標(biāo)簽被用來(lái)提升標(biāo)簽標(biāo)記的權(quán)重。
一旦question.db被轉(zhuǎn)換為句子嵌入的集合,它們就會(huì)被歸一化并存儲(chǔ)在Faiss中,從而可以進(jìn)行快速的相似性搜索。
第三步:查詢(xún)
codequestion使用與索引相同的方法對(duì)每個(gè)查詢(xún)進(jìn)行標(biāo)記。這些標(biāo)記被用來(lái)建立一個(gè)句子嵌入。根據(jù)Faiss索引對(duì)該嵌入句進(jìn)行查詢(xún),以找到最相似的問(wèn)題。
離線開(kāi)發(fā)好幫手
可以看出,這個(gè)codequestion工具的優(yōu)勢(shì)在于靈活的搜索匹配問(wèn)題,并且能夠根據(jù)問(wèn)題回答的質(zhì)量?jī)?yōu)先推選好的回答。
這一點(diǎn)是類(lèi)似工具使用關(guān)鍵詞匹配搜索答案無(wú)法比擬的。
目前codequestion的局限在于只支持Stack Exchange中的問(wèn)題,但是,作者承諾后期會(huì)加入更多的庫(kù)。
不少網(wǎng)友都反應(yīng),這個(gè)工具十分實(shí)用,尤其是它支持本地庫(kù)中的問(wèn)答機(jī)制,對(duì)于有離線開(kāi)發(fā)需求的碼農(nóng)來(lái)說(shuō),幫助頗巨。
怎么樣?如果這個(gè)工具對(duì)你有用,那就趕快上手操作吧~
參考鏈接&傳送門(mén):
Github地址:
https://github.com/neuml/codequestion
C++ Build Tools安裝地址:
https://visualstudio.microsoft.com/visual-cpp-build-tools/
量子位之前介紹過(guò)的Linux命令行查詢(xún)工具:
https://mp.weixin.qq.com/s/5vfQRsAZ4zEKOJnUNT8Ebg
【編輯推薦】
- 華為開(kāi)發(fā)者大會(huì)正式發(fā)布HarmonyOS 2.0 點(diǎn)燃面向全場(chǎng)景智慧生態(tài)的星星之火
- 提升開(kāi)發(fā)效率N倍的20+命令行神器,趕緊收藏了
- 成為華為綜合性社區(qū)戰(zhàn)略合作伙伴 雙方合力打造HarmonyOS開(kāi)發(fā)者生態(tài)
- Java開(kāi)發(fā)中Websocket的技術(shù)選型參考
- 為什么阿里巴巴Java開(kāi)發(fā)手冊(cè)中強(qiáng)制要求超大整數(shù)禁止使用Long類(lèi)型返回?
當(dāng)前題目:寫(xiě)代碼、搜問(wèn)題,全部都在終端完成!如此編程神器,是時(shí)候入手了
分享路徑:http://fisionsoft.com.cn/article/cddcdhg.html


咨詢(xún)
建站咨詢(xún)
