GitHub は、コードの検索と分析に機械学習を使用する開発を開始しました

GitHubの 紹介された プロジェクト コードサーチネット、さまざまなプログラミング言語のコードを解析、分類、分析するために必要な機械学習モデルとデータセットが用意されています。 CodeSearchNet に似ています ImageNetには、コードの動作を形式化する注釈が付いたコード スニペットの大規模なコレクションが含まれています。 モデルをトレーニングするためのコンポーネントと CodeSearchNet の使用例は、Tensorflow フレームワークを使用して Python で記述されています。 によって配布 MITライセンスの下で。

CodeSearchNet の作成時には、自然言語テキスト解析テクノロジが使用され、機械学習システムが構文上の特徴だけでなく、コードによって実行されるアクションの意味も考慮できるようになりました。 GitHub システム 適用された クエリを使用したセマンティック コード検索の組織化に関する実験中 自然言語 (たとえば、「文字列のリストのソート」をリクエストすると、対応するアルゴリズムを実装したコードが表示されます)。

提案されたデータセットには、既存のオープン ライブラリのソース テキストに基づいて作成された 2 万以上のコード コメント リンクが含まれています。 コードには個々の関数またはメソッドの完全なソース テキストが含まれており、コメントでは関数によって実行されるアクションが説明されています (詳細なドキュメントが提供されています)。 現在、Python、JavaScript、Ruby、Go、Java、PHP 用のデータセットが用意されています。 提案されたデータセットを使用して、次のようなさまざまなタイプのニューラル ネットワークをトレーニングする例が提供されます。 ニューラルバッグオブワード, Rnn, 自己注意 (BERT) と 1D-CNN+セルフアテンションハイブリッド.

自然言語検索メカニズムを開発するために、次のような一連の CodeSearchNet チャレンジが追加で用意されています。
99 代表値 CodeSearchNet Corpus データセット内の最も可能性の高いコード バインディングを記述する約 4 の専門家の注釈を含むクエリで、約 6 万のメソッドと関数をカバーします (セットサイズ 約20GB)。 CodeSearchNet チャレンジは、自然言語コードを検索するための特定の方法の有効性を評価するためのベンチマークとして機能します。 ツールの使用 クベフロー 準備
コード検索エンジン。

出所: オープンネット.ru

コメントを追加します